使用GPU编码器Processor-in-the-Loop对NVIDIA目标执行
这个例子显示了如何用MATLAB®编码器™NVIDIA杰森和NVIDIA驱动平台支持万博1manbetx计划使GPU编码器™产品NVIDIA®上运行公益诉讼执行驱动™和杰森的硬件平台。下面的例子使用了雾整流GPU代码生成GPU编码器的例子来演示公益诉讼执行。有关更多信息,请参见雾整改(GPU编码器)。
先决条件
目标板需求
英伟达杰森或推动嵌入式平台。
以太网交叉电缆来连接目标板和主机PC(如果目标不能被连接到一个本地网络)。
NVIDIA CUDA工具包安装在董事会。
环境变量的目标编译器和库。有关更多信息,请参见安装和设置先决条件NVIDIA董事会。
开发主机需求
对CUDA GPU编码器代码生成。教程,看看开始使用GPU编码器(GPU编码器)。
图像处理工具箱™。
嵌入式编码器™代码生成。
NVIDIA CUDA工具包在主机。
环境变量的编译器和库。有关更多信息,请参见第三方硬件(GPU编码器)和设置必备产品s manbetx 845(GPU编码器)。
创建一个文件夹,复制有关文件
下面的代码创建了一个文件夹在您当前的工作目录主机和所有相关文件复制到这个文件夹。如果你不能生成文件在这个文件夹中,在运行此命令之前,改变当前工作目录。
nvidiademo_setup (“gpucoderdemo_fog_rectification”);
连接到NVIDIA硬件
支持包使万博1manbetx用SSH连接的TCP / IP来构建和运行时执行命令生成的CUDA在开车或杰森平台代码。将目标平台连接到同一网络主机或者使用以太网交叉电缆董事会直接连接到主机。信息如何设置和配置你的董事会,看到英伟达文档。
与NVIDIA硬件进行通信,通过创建一个生活硬件连接对象开车
或杰森
函数。你必须知道主机名或IP地址,用户名和密码的目标板创建一个生活硬件连接对象。例如,当连接到目标板第一次创建一个活动对象为杰森硬件使用命令:
hwobj =杰森(“jetson-tx2-name”,ubuntu的,ubuntu的);
在硬件生活对象创建,支持包执行硬件和软件检查,IO服务器安装,收集周边信息的目标。万博1manbetx这些信息显示在命令窗口。
类似地,创建生活对象驱动硬件,使用命令:
hwobj =驱动(“drive-px2-name”,ubuntu的,ubuntu的);
在连接失败的情况下,诊断错误消息报道在MATLAB命令行。如果连接失败,最可能的原因是不正确的IP地址或主机名。
验证GPU环境目标板上
验证所需的编译器和库运行这个示例设置正确,使用coder.checkGpuInstall
(GPU编码器)函数。
envCfg = coder.gpuEnvConfig (“杰森”);%使用NVIDIA驱动硬件的驱动envCfg。BasicCodegen = 1;envCfg。安静= 1;envCfg。HardwareObject = hwobj;coder.checkGpuInstall (envCfg);
为公益诉讼生成CUDA代码执行目标板上使用GPU编码器
公益诉讼执行NVIDIA运行目标,创建一个GPU代码配置对象的“自由”和验证方式设置为“公益诉讼”。
cfg = coder.gpuConfig (“自由”);cfg。VerificationMode =“公益诉讼”;
创建一个配置对象的驱动器或杰森平台,并将其分配给硬件
代码配置对象的属性cfg
,可以使用coder.hardware
函数。使用英伟达杰森的
杰森董事会和“NVIDIA驱动”
驱动板。
cfg。硬件= coder.hardware (英伟达杰森的);
要启用代码执行分析,集CodeExecutionProfiling
GPU编码器的配置对象为true。
cfg。CodeExecutionProfiling = true;
负载样品多雾的输入图像。
foggyImg = imread (“foggyInput.png”);
生成CUDA代码,使用codegen
配置和功能,通过GPU代码输入的大小fog_rectification
入口点函数。代码生成器创建一个墨西哥人
函数命名fog_rectification_pil
PIL-based执行。
codegen (“配置”cfg,“fog_rectification”,“参数”,{foggyImg});
公益诉讼墨西哥人运行函数
生成的代码运行在目标板上并得到结果为MATLAB,调用fog_rectification_pil
墨西哥人函数所需的输入。
defoggyImg_pil = fog_rectification_pil (foggyImg);
p1 =情节(1、2、1);p2 =情节(1、2、2);imshow (foggyImg“父”,p1);imshow (defoggyImg_pil“父”,p2);标题(p1,“模模糊糊”输入图像);标题(p2,“就从硬件输出图像澄清”);
验证生成的代码
验证数字生成的代码的准确性,比较MATLAB结果从公益诉讼的执行。
defoggyImg_sim = fog_rectification (foggyImg);diffImg = defoggyImg_sim - defoggyImg_pil;流(“公益诉讼输出和模拟输出的最大区别是% f \ n '马克斯(diffImg (:)));
分析结果
清算公益诉讼墨西哥人函数后,分析结果是可用的。
清楚(“fog_rectification_pil”);
配置报告生成器和开放的分析报告。TimerTicksPerSecond
拥有目标硬件时钟频率。
executionProfile = getCoderExecutionProfile (“fog_rectification”);executionProfile。TimerTicksPerSecond = 2035 * 1 e6;报告(executionProfile,…“单位”,“秒”,…“ScaleFactor”,“1 e 03”,…“NumericFormat”,' % 0.3 f ');
清理
删除示例文件并返回到原来的文件夹中,调用清理
函数。
清理