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