主要内容

雾校正Simulink模型的GPU代码生成

本示例演示了如何从Simulink®模型生成CUDA®代码,该模型将模糊图像作为输入,并将去雾图像作为输出。本例是雾校正算法的典型实现。示例使用conv2im2gray,imhist(图像处理工具箱)功能。下面是这个例子雾整改的例子。本例说明了以下概念:

  • GPU环境验证。

  • 利用图像处理功能在Simulink中模拟雾校正应用。

  • 配置GPU代码生成模型

  • 为Simulink模型生成一个CUDA可执行文件。

第三方的先决条件

要求

本例生成CUDA MEX,第三方需求如下。

  • CUDA支持NVIDIA®GPU和兼容的驱动程序。

可选

对于非mex构建,例如静态、动态库或可执行文件,此示例具有以下附加要求。

检查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”);

另请参阅

功能

相关的话题

Baidu
map