Этот пример демонстрирует, как сгенерировать код CUDA® из модели Simulink®, которая берет туманное изображение, как введено и производит изображение defogged, как выведено. Этим примером является типичная реализация алгоритма исправления вуали. Пример использует conv2, im2gray, и imhist (Image Processing Toolbox) функции. Этот пример сопровождает пример Исправления Вуали. Этот пример иллюстрирует следующие концепции:
Верификация среды графического процессора.
Приложение исправления вуали модели в Simulink при помощи функций обработки изображений.
Сконфигурируйте модель для генерации кода графического процессора.
Сгенерируйте исполняемый файл CUDA для модели Simulink.
Необходимый
Этот пример генерирует MEX CUDA и имеет следующие сторонние требования.
CUDA включил NVIDIA® графический процессор и совместимый драйвер.
Дополнительный
Для сборок неMEX, таких как статические, динамические библиотеки или исполняемые файлы, этот пример имеет следующие дополнительные требования.
Инструментарий NVIDIA.
Переменные окружения для компиляторов и библиотек. Для получения дополнительной информации смотрите Стороннее Оборудование и Подготовку Необходимых как условие продуктов.
Чтобы проверить, что компиляторы и библиотеки, необходимые для выполнения этого примера, настраиваются правильно, используйте coder.checkGpuInstall функция.
envCfg = coder.gpuEnvConfig('host');
envCfg.BasicCodegen = 1;
envCfg.Quiet = 1;
coder.checkGpuInstall(envCfg);
Модель 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');
Сгенерируйте и создайте модель Simulink на хосте графический процессор при помощи slbuild команда. Генератор кода помещает файлы в папку сборки, подпапку под названием fog_rectification_model_ert_rtw под вашей текущей рабочей папкой.
status = evalc("slbuild('fog_rectification_model')");
Закройте модель Simulink.
close_system('fog_rectification_model');
bdclose (Simulink) | close_system (Simulink) | get_param (Simulink) | load_system (Simulink) | open_system (Simulink) | save_system (Simulink) | set_param (Simulink) | sim (Simulink) | slbuild (Simulink)