Этот пример демонстрирует, как сгенерировать код 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');
open_system
(Simulink) | load_system
(Simulink) | save_system
(Simulink) | close_system
(Simulink) | bdclose
(Simulink) | get_param
(Simulink) | set_param
(Simulink) | sim
(Simulink) | slbuild
(Simulink)