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