Processor-In-The-Loop执行的GPU编码器应用程序
使用processor-in-the-loop(公益诉讼)执行检查数值CUDA的行为®你从MATLAB生成的代码®功能。公益诉讼模拟,它要求目标连接,生成编译源代码,然后下载并运行在NVIDIA对象代码®GPU平台。公益诉讼的结果被转移到MATLAB仿真验证数值模拟的等效和代码生成的结果。
公益诉讼验证过程中的一个重要部分设计周期检查生成的代码的行为匹配设计。公益诉讼的验证需要嵌入式编码器®许可证。
请注意
当使用公益诉讼执行,确保基准测试
选择在GPU编码器™设置假
。公益诉讼执行编译错误的基准测试结果。
请注意
GPU编码器不支持收集代码覆盖率度量在万博1manbetxsoftware-in-the-loop(银)和processor-in-the-loop(公益诉讼)模拟。
先决条件
目标板需求
NVIDIA驱动®或杰森™嵌入式平台。
以太网交叉电缆来连接目标板和主机PC(如果目标不能被连接到一个本地网络)。
NVIDIA CUDA工具包安装在董事会。
环境变量的目标编译器和库。信息支持版本的编译器和库及其设置,明白了万博1manbetx安装和设置先决条件NVIDIA董事会。
开发主机需求
对CUDA GPU编码器代码生成。帮忙在开始使用GPU编码器,明白了开始使用GPU编码器(GPU编码器)。
NVIDIA CUDA工具包在主机。
环境变量在主机的编译器和库。信息的支持版本的编译器和库,明白了万博1manbetx第三方硬件(GPU编码器)。设置环境变量,看到环境变量(GPU编码器)。
例子:了曼德尔勃特集合
描述
你不需要熟悉算法在完成本教程的例子。
了曼德尔勃特集合中该地区复平面组成的值z0定义的轨迹
保持有界k→∞。曼德尔勃特集合的整体几何图所示。这种观点没有边缘的分辨率显示丰富详细的结构的边界外。在不断的放大,一个精心设计的边界,揭示了曼德尔勃特集合展品逐步精细递归的细节。
算法
创建一个MATLAB脚本调用mandelbrot_count.m
用下面的代码行。这段代码是一个基线矢量化了曼德尔勃特集合的MATLAB实现。
函数数= mandelbrot_count (maxIterations xGrid yGrid)% # codegen曼德布洛特百分比计算z0 = xGrid + 1我* yGrid;数= 1(大小(z0));%添加Kernelfun编译指示触发内核创建coder.gpu.kernelfun;z = z0;为n = 0: maxIterations z z =。* z + z0;在= abs (z) < = 2;数=数+内部;结束数=日志(数);
对于本教程,选择一组限制,指定一个高度放大了曼德尔勃特集合的一部分主心形和之间的山谷p / q灯泡了。一个真正的部分(1000 x1000网格x)和虚部(y这两个极限之间创建)。曼德布洛特然后在每个迭代算法网格的位置。迭代的500足以呈现图像完整的决议。创建一个MATLAB脚本调用mandelbrot_test.m
用下面的代码行。它还称mandelbrot_count
功能和情节产生的曼德尔勃特集合。
maxIterations = 500;gridSize = 1000;xlim = [-0.748766713922161, -0.748766707771757];ylim = [0.123640844894862, 0.123640851045266];xlim x = linspace (xlim (1), (2), gridSize);ylim y = linspace (ylim (1), (2), gridSize);[xGrid, yGrid] = meshgrid (x, y);数= mandelbrot_count (maxIterations xGrid yGrid);图(1)显示亮度图像(x, y,数);colormap([飞机();flipud(飞机());0 0 0)); axis从标题(曼德尔勃特集合的);
GPU编码器应用程序
打开GPU编码器应用,在MATLAB将来发布,应用程序选项卡,在代码生成,单击GPU编码器应用图标。你也可以打开应用程序通过输入gpucoder
(GPU编码器)在MATLAB命令窗口。
应用程序打开选择源文件页面。选择
mandelbrot_count.m
的入口点函数。点击下一个。在定义输入类型窗口中,输入
mandelbrot_count (500 0 (1000), 0 (1000))
并点击Autodefine输入类型,然后单击下一个。你可以启动检查运行时问题过程或点击下一个去生成代码的一步。
设置构建类型来
静态库
和硬件板来英伟达杰森
。下硬件面板中,输入设备地址,用户名,密码,并建立文件夹。
关闭设置窗口,点击生成。软件生成的CUDA代码
mandelbrot_count
入口点函数。点击验证代码。
在命令字段中,指定测试文件调用原来的MATLAB函数。例如,
mandelbrot_test
。公益诉讼执行开始,点击运行生成的代码。
GPU编码器的应用:
例如,生成一个独立的图书馆
codegen \ lib \ mandelbrot_count
。例如,生成公益诉讼接口代码
codegen \ lib \ mandelbrot_count \公益诉讼
。运行测试文件,替换调用MATLAB函数库中调用生成的代码。
从公益诉讼执行显示消息测试输出选项卡。
请注意
在微软®窗户®系统,Windows防火墙可以阻止公益诉讼执行。更改Windows防火墙设置允许访问。
验证的结果公益诉讼执行匹配结果从原来的MATLAB函数。
终止公益诉讼执行过程,点击停止公益诉讼验证。另外,在测试输出选项卡中,单击该链接终止执行。