Сконфигурировать модель Simulink®, чтобы сгенерировать код SIMD:
Во вкладке Modeling панели инструментов модели нажмите Model Settings.
В диалоговом окне Configuration Parameters, которое открывается в панели Code Generation, устанавливает System target file на ert.tlc
.
Под Code Generation, в панели Interface, устанавливает Code Replacement libraries на любой Intel AVX (Windows)
или Intel AVX (Linux)
. Пользуясь этими библиотеками, можно сгенерировать код, который обрабатывает больше данных в одной инструкции. Для получения дополнительной информации о Заменяющих Библиотеках Кода смотрите то, Что Замена Кода? (Embedded Coder).
В окне модели инициируйте генерацию кода и процесс сборки для модели при помощи одной из этих общих опций:
Нажмите кнопку Build Model.
Нажмите Ctrl+B.
Для примера о том, как выбрать системный конечный файл для модели Simulink и как сгенерировать код С для встраиваемых систем, смотрите, Генерируют Код Используя Embedded Coder® (Embedded Coder).
Код SIMD сгенерирован с помощью технологии Intel® AVX2. Внутренние параметры Intel AVX2 SIMD значительно улучшают производительность кода, сгенерированного из поддерживаемых алгоритмов на платформах Intel, в большинстве случаев встречаясь или превышая эффективность симуляции и простого кода С.
Рассмотрите эту модель Simulink, которая моделирует систему цифровой связи. Модель содержит корневой фильтр приподнятого косинуса на передатчике и стороне приемника, нескольких КИХ-Интерполяциях и КИХ-блоках Децимации, чтобы увеличить и уменьшить частоту дискретизации сигнала, соответственно, и канал связи аддитивного белого Гауссова шума (AWGN), чтобы передать сигнал. Корневые фильтры приподнятого косинуса с обеих сторон выполняют согласованную фильтрацию. Объединенный ответ этих двух корневых фильтров приподнятого косинуса формирует фильтр приподнятого косинуса, который помогает в минимизации интерференции межсимвола (ISI). Из-за согласованной фильтрации, сигнал, полученный при выходе, имеет высокий сигнал к шумовому отношению (ОСШ) и низкая вероятность ошибки. Чтобы подтвердить, просмотрите вывод в схеме созвездия, которая следует.
Чтобы открыть модель, введите ex_qam_matchedfilter
в командной строке MATLAB®.
Во вкладке Modeling модели нажмите Model Settings. В окне параметров конфигурации, которое открывается под Code Generation в панели Interface, устанавливает Code replacement libraries на None
. Создайте модель, и эта установка генерирует простой исполняемый файл кода С в текущей директории MATLAB. Измерьте время, оно исполняется исполняемый файл.
tic;
system('ex_qam_matchedfilter');
tplain = toc
tplain = 42.64
Повторите процесс путем установки Code replacement libraries на Intel AVX (Windows)
или Intel AVX (Linux)
, В зависимости от платформы вы используете. Создайте модель и измерьте время, это исполняется сгенерированный исполняемый файл.
tic;
system('ex_qam_matchedfilter');
tAVX2 = toc
tAVX2 = 14.67
Сгенерированный код SIMD вокруг 3x по сравнению с простым кодом С на машине Windows® 10.