Генерация кода графического процессора для исправления вуали модель Simulink

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

  • Верификация среды графического процессора.

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

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

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

Сторонние необходимые условия

Необходимый

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

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

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

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

Проверьте среду графического процессора

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

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

Вуалируйте исправление модель Simulink

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

mdl = 'fog_rectification_model';
open_system(mdl);

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

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

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

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

Чтобы создать и симулировать графический процессор ускоренная модель, выберите, работает на вкладке Simulation или используют следующую команду 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');

Смотрите также

Функции

Похожие темы