雾校正Simulink模型的GPU代码生成
本示例演示了如何从Simulink®模型生成CUDA®代码,该模型将模糊图像作为输入,并将去雾图像作为输出。本例是雾校正算法的典型实现。示例使用conv2
,im2gray
,imhist
(图像处理工具箱)功能。下面是这个例子雾整改的例子。本例说明了以下概念:
GPU环境验证。
利用图像处理功能在Simulink中模拟雾校正应用。
配置GPU代码生成模型
为Simulink模型生成一个CUDA可执行文件。
第三方的先决条件
要求
本例生成CUDA MEX,第三方需求如下。
CUDA支持NVIDIA®GPU和兼容的驱动程序。
可选
对于非mex构建,例如静态、动态库或可执行文件,此示例具有以下附加要求。
英伟达工具包。
编译器和库的环境变量。有关更多信息,请参见第三方硬件而且设置必备产品2022世界杯八强谁会赢?.
检查GPU环境
要验证运行此示例所需的编译器和库是否已正确设置,请使用coder.checkGpuInstall
函数。
envCfg = code . gpuenvconfig (“主机”);envCfg。BasicCodegen = 1;envCfg。安静= 1;coder.checkGpuInstall (envCfg);
雾校正Simulink模型
雾校正的Simulink模型由雾整改
子系统,该子系统包含MATLAB函数
块,该块以模糊图像作为输入,并返回去雾图像作为输出。它使用fog_rectification
算法描述于雾整改的例子。当模型运行时,可视化
块显示有雾的输入图像和去雾的输出图像。
mdl =“fog_rectification_model”;open_system (mdl);
配置GPU加速的型号
模型配置参数决定了仿真过程中使用的加速方法。
set_param (mdl“规划求解”,“FixedStepAuto”);set_param (mdl“GPUAcceleration”,“上”);set_param (mdl“SimulationMode”,“正常”);
构建GPU加速模型
要构建和模拟GPU加速模型,请选择运行在模拟tab或使用下面的MATLAB命令:
Out = sim(mdl);
配置代码生成模型
设置如下代码生成参数。
set_param (mdl“TargetLang”,“c++”);set_param (mdl“GenerateGPUCode”,CUDA的);set_param (mdl“GPUcuBLAS”,“上”);set_param (mdl“GPUcuSOLVER”,“上”);set_param (mdl“GPUcuFFT”,“上”);set_param (mdl“ProdLongLongMode”,“上”);
为模型生成CUDA代码
在主机图形处理器上生成和构建Simulink模型slbuild
命令。代码生成器将文件放在建立文件夹的子文件夹fog_rectification_model_ert_rtw
在当前工作文件夹下。
状态= evalc(“slbuild (fog_rectification_model)”);
清理
关闭Simulink模型。
close_system (“fog_rectification_model”);
另请参阅
功能
open_system
(模型)|load_system
(模型)|save_system
(模型)|close_system
(模型)|bdclose
(模型)|get_param
(模型)|set_param
(模型)|sim卡
(模型)|slbuild
(模型)