Многоядерный анализ с использованием области Dataflow

Этот пример показывает, как анализировать многоядерное поведение выполнения области dataflow в Simulink.

Создайте Семейство систему радиосвязи

Модель в этом примере использует блоки Digital Up-Converter (DUC) и Digital Down-Converter (DDC), чтобы создать передатчик и приемник Family Radio Service (FRS). Блок DUC преобразует комплексный цифровой сгенерированный модулированный сигнал в реальный сигнал полосы пропускания. Блок DDC преобразует оцифрованный действительный сигнал назад в комплексный сигнал основной полосы частот.

Откройте familyRadioServiceMulticoreAnalysisExample модель.

model_name = 'familyRadioServiceMulticoreAnalysisExample';
open_system(model_name);
close_system([model_name '/UpConverted Signal Spectrum Analyzer'], 0);
close_system([model_name '/Baseband  Spectrum Analyzer'], 0);

Задайте область выполнения Dataflow

В Simulink ®, чтобы задать dataflow в качестве области выполнения для подсистемы, используйте Property Inspector, чтобы задать параметр Domain Dataflow. Чтобы просмотреть Property Inspector для подсистемы, выберите подсистему, а затем выберите View > Property Inspector. Выберите Задать область выполнения, затем щелкните Область и выберите Dataflow. Можно также использовать блок Dataflow Subsystem из библиотеки Dataflow DSP System toolbox, чтобы получить подсистему, которая предварительно сконфигурирована с областью выполнения dataflow.

set_param([model_name,'/Dataflow Subsystem'],'SetDomainSpec','on');
set_param([model_name,'/Dataflow Subsystem'],'DomainSpecType','Dataflow');
set_param([model_name,'/Dataflow Subsystem'],'Latency','0');
set_param([model_name,'/Dataflow Subsystem'],'AutoFrameSizeCalculation','off');

Выполните многоядерный анализ с использованием профилирования SIL

После определения области выполнения dataflow на панели инструментов Simulink откроется вкладка Multicore.

На многоядерной вкладке щелкните Оценка затрат. В списке выберите SIL/PIL Profiling.

Нажмите «Профиль».

После концов профилирования значения затрат отображаются в редакторе затрат. Здесь среднее время выполнения (стоимость) для каждого блока отображается в микросекундах. Относительная нагрузка каждого блока относительно самого дорогого блока в подсистеме dataflow обозначена полосами различной длины.

Например, блок DDC является самым дорогим блоком в таблице и имеет стоимость 119905 микросекунды. Щелкните имя блока в столбце Block, чтобы выделить соответствующий блок в блок-схеме.

Щелкните Выполнить анализ (Run Analysis).

После анализа модели откроется «Легенда подсветки резьбы». Легенда подсветки потоков показывает один поток, потому что зависимость данных между блоками в модели препятствует одновременному выполнению блоков. На панели «Предложения по увеличению параллелизма», которая находится в нижней части полотна, показано, как увеличить параллелизм и получить более высокую пропускную способность данных путем конвейеризации зависящих от данных блоков.

Подсистема Dataflow задает значение задержки 0. Предлагаемая задержка для системы 3.

Установите флажок Принять, чтобы использовать рекомендуемую задержку для Подсистемы Dataflow в последующем анализе. Это значение также может быть введено непосредственно в параметр Property Inspector for Latency. Simulink показывает значение параметров Latency с помощью$Z^{-1}$ тегов в выходных портах подсистемы dataflow.

Еще раз щелкните Выполнить анализ. Легенда подсветки потоков показывает два потока, указывающих, что блоки внутри подсистемы dataflow могут выполняться в двух параллельных потоках.

Чтобы просмотреть вставленные задержки трубопровода, в разделе Review Результатов на панели инструментов щелкните Показом задержки трубопровода.

Вставленные задержки трубопровода показаны на холсте с помощью$Z^{-1}$ тегов.

Проверяйте теоретическую скорость

Ускоренная панель указывает максимальное теоретическое ускорение 1.9706 для модели в результате разбиения, выполненного во время анализа.

Переопределение затрат вручную

Чтобы выполнить проект исследование пространства, можно вручную изменить стоимость блоков. Первые два блока относительно дороже, чем другие блоки подсистемы, что должно существенно повлиять на то, как блоки отображаются в потоки. Разделите общую сумму затрат для первых двух блоков на три, затем вручную присвойте это число первым трем блокам путем снятия флажков в столбце «Авто» и редактирования значений в столбце «Затраты».

Щелкните Выполнить анализ (Run Analysis), чтобы перезапустить анализ, а затем примите предоставленное предложение о задержке. Новый результат указывает, что подсистема теперь разделена на четыре потока с соответствующим теоретическим значением скорости 2.9621.

См. также

Похожие темы