exponenta event banner

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

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

  • Проверка среды GPU.

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

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

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

Предварительные условия для сторонних производителей

Необходимый

В этом примере создается CUDA MEX со следующими требованиями сторонних производителей.

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

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

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

Проверка среды графического процессора

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

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

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

Модель Simulink для выпрямления тумана состоит из Fog Rectification подсистема, которая содержит MATLAB Function блок, который принимает туманное изображение в качестве входного и возвращает дефогированное изображение в качестве выходного. Он использует 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');

Ускоренная модель графического процессора сборки

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

См. также

Функции

Связанные темы