Генерация кода GPU для модели Simulink с выпрямлением тумана

Этот пример демонстрирует, как сгенерировать код CUDA ® из модели Simulink ®, которая принимает туманное изображение в качестве входных данных и производит отключенное изображение в качестве выходных данных. Этот пример является типичной реализацией алгоритма выпрямления тумана. В примере используются conv2, im2gray, и imhist (Image Processing Toolbox) функции. Этот пример тесно соответствует примеру выпрямления тумана. Этот пример иллюстрирует следующие концепции:

  • Верификация окружения графического процессора.

  • Моделируйте приложение выпрямления тумана в Simulink с помощью функций обработки изображений.

  • Сконфигурируйте модель для генерации кода GPU.

  • Сгенерируйте исполняемый файл CUDA для модели Simulink.

Необходимые условия для третьих лиц

Необходимый

Этот пример генерирует CUDA MEX и имеет следующие требования к третьим лицам.

  • CUDA включает графический процессор NVIDIA ® и совместимый драйвер.

Дополнительный

Для сборок, не являющихся MEX, таких как статические, динамические библиотеки или исполняемые файлы, этот пример имеет следующие дополнительные требования.

Проверьте окружение GPU

Чтобы убедиться, что компиляторы и библиотеки, необходимые для выполнения этого примера, настроены правильно, используйте coder.checkGpuInstall функция.

envCfg = coder.gpuEnvConfig('host');
envCfg.BasicCodegen = 1;
envCfg.Quiet = 1;
coder.checkGpuInstall(envCfg);

Модель Simulink для выпрямления тумана

Модель Simulink для выпрямления тумана состоит из Fog Rectification подсистема, содержащая MATLAB Function блок, который принимает туманное изображение как вход и возвращает отключенное изображение как выход. В нем используются fog_rectification алгоритм, описанный в примере Fog Rectification. Когда модель запускается, Visualization блок отображает туманное входное изображение и отключенное выходное изображение.

mdl = 'fog_rectification_model';
open_system(mdl);

Сконфигурируйте модель для ускорения графического процессора

Параметры конфигурации модели определяют метод ускорения, используемый во время симуляции.

set_param(mdl,'Solver','FixedStepAuto');
set_param(mdl,'GPUAcceleration','on');
set_param(mdl, 'SimulationMode','Normal');

Построение модели ускоренного графического процессора

Чтобы создать и симулировать модель ускорения графического процессора, выберите Запуск на вкладке Симуляции или используйте следующую команду MATLAB:

out = sim(mdl);

Сконфигурируйте модель для генерации кода

Установите следующие параметры для генерации кода.

set_param(mdl,'TargetLang','C++');
set_param(mdl,'GenerateGPUCode','CUDA');
set_param(mdl,'GPUcuBLAS','on');
set_param(mdl,'GPUcuSOLVER','on');
set_param(mdl,'GPUcuFFT','on');

Сгенерируйте код CUDA для модели

Сгенерируйте и создайте модель Simulink на главном графическом процессоре с помощью slbuild команда. Генератор кода помещает файлы в папку сборки, подпапку с именем fog_rectification_model_ert_rtw в текущей рабочей папке.

status = evalc("slbuild('fog_rectification_model')");

Очистка

Закройте модель Simulink.

close_system('fog_rectification_model');

См. также

Функции

Похожие темы