Сгенерируйте высокоэффективный код SIMD по Intel от блоков Simulink в DSP System Toolbox

Сконфигурировать Simulink® модель, чтобы сгенерировать код SIMD по Intel®:

  • Во вкладке Modeling панели инструментов модели нажмите Model Settings.

    Click on the gear icon (the third icon) under the Modeling tab.

  • В диалоговом окне Configuration Parameters, которое открывается в панели Code Generation, устанавливает System target file на ert.tlc.

    Примечание

    Этот рабочий процесс не поддерживает компилятор C/C++ MinGW. Можно выбрать любой другой компилятор, перечисленный в Поддерживаемых Компиляторах. Выбрать различный компилятор, который установлен на вашей машине, запуске mex -setup в MATLAB® командная строка и следует инструкциям.

    Choose Code Generation on the left. In the middle section of the window, enter ert.tlc for the System target file.

  • Под Code Generation, в панели Interface, устанавливает Code Replacement libraries на любой DSP Intel AVX2-FMA (Windows), DSP Intel AVX2-FMA (Linux), или DSP Intel AVX2-FMA (Mac). Пользуясь этими библиотеками, можно сгенерировать высокоэффективный код SIMD. Для получения дополнительной информации о Заменяющих Библиотеках Кода смотрите то, Что Замена Кода? (Embedded Coder).

    Click on the Select button for the Code replacement libraries and choose the appropriate CRL.

  • В окне модели инициируйте генерацию кода и процесс сборки для модели при помощи одной из этих общих опций:

    • Нажмите кнопку Build Model.

    • Нажмите Ctrl+B.

    Для примера о том, как выбрать системный конечный файл для модели Simulink и как сгенерировать код С для встраиваемых систем, смотрите, Генерируют Код Используя Embedded Coder® (Embedded Coder).

    Код SIMD сгенерирован с помощью технологии Intel AVX2-FMA. Внутренние параметры Intel AVX2 SIMD значительно улучшают производительность кода, сгенерированного из поддерживаемых алгоритмов на платформах Intel, в большинстве случаев встречаясь или превышая эффективность симуляции и простого кода С.

Сравните эффективность кода SIMD со сгенерированным простым кодом С

Рассмотрите эту модель Simulink, которая моделирует систему цифровой связи. Модель содержит корневой фильтр приподнятого косинуса на передатчике и стороне приемника, нескольких КИХ-Интерполяциях и КИХ-блоках Децимации, чтобы увеличить и уменьшить частоту дискретизации сигнала, соответственно, и канал связи аддитивного белого Гауссова шума (AWGN), чтобы передать сигнал. Корневые фильтры приподнятого косинуса с обеих сторон выполняют согласованную фильтрацию. Объединенный ответ этих двух корневых фильтров приподнятого косинуса формирует фильтр приподнятого косинуса, который помогает в минимизации интерференции межсимвола (ISI). Из-за согласованной фильтрации, сигнал, полученный при выходе, имеет высокий сигнал к шумовому отношению (ОСШ) и низкая вероятность ошибки. Чтобы подтвердить, просмотрите вывод в схеме созвездия, которая следует.

Чтобы открыть модель, введите ex_qam_matchedfilter в командной строке MATLAB.

Block diagram showing blocks in the digital communication system. Sequence of blocks: 16 QAM data generator, root-raised cosine transmit filter, FIR Interpolator, FIR Interpolator, AWGN channel, FIR Decimator, FIR decimator, Matched root-raised cosine receive filter, constellation diagram.

Во вкладке 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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте