使用处理器 - 循环(PIL)执行来检查CUDA的数值行为®您从MATLAB生成的代码®职能。PIL模拟需要目标连接,编译生成的源代码,然后在NVIDIA上下载并运行对象代码®GPU平台。PIL模拟的结果转移到MATLAB以验证模拟和代码生成结果的数值等同。
PIL验证过程是设计周期的关键部分,以检查所生成的代码的行为是否与设计匹配。PIL验证需要嵌入式编码器®执照。
笔记
在使用PIL执行时,要确保基准测试
选项的GPU编码器™设置错误的
.执行PIL与基准测试导致编译错误。
NVIDIA DRIVE或Jetson嵌入式平台。
用于连接目标板和主机PC(如果目标板无法连接本地网络)的以太网交叉线缆。
NVIDIA CUDA工具包安装在电路板上。
编译器和库的目标环境变量。有关编译器和库的支持版本的信息及其设置,请参阅金宝app安装和设置NVIDIA板的先决条件.
您不必熟悉示例中的算法即可完成本教程。
Mandelbrot Set是由值组成的复平面中的区域Z.0.对于哪些轨迹定义
保持有界k→∞.Mandelbrot集合的整体几何结构如图所示。这个观点没有分辨率显示丰富详细的结构边缘的边界以外的集合。在不断放大的情况下,Mandelbrot集合展示了一个复杂的边界,揭示了越来越精细的递归细节。
创建一个MATLAB脚本调用mandelbrot_count.m.
使用以下代码行。此代码是Mandelbrot集的基线矢量化MATLAB实现。
函数count = mandelbrot_count(maxIrtations,xgrid,ygrid)%#codegen.%mandelbrot计算z0 = xgrid + 1i * ygrid;count = =(大小(z0));添加Kernelfun指令以触发内核创建coder.gpu.kernelfun;z = z0;为了n = 0:maxIterations z = z。* z + z0;内部= abs(z)<= 2;count =内部计数+;结尾count = log(count);
对于本教程,请选择一组限制,该限制指定在主心形和主题之间的谷中的高度缩放部分的曼德布特。P / Q.灯泡到左边。一个1000x1000的实体栅格(X)和虚部(y)是在这两个界限之间创建的。然后在每个网格位置迭代Mandelbrot算法。迭代次数为500就足以以全分辨率呈现图像。创建一个MATLAB脚本调用mandelbrot_test.m.
使用以下代码行。它还叫了mandelbrot_count
函数并绘制得到的Mandelbrot集合。
maxIterations = 500;gridSize = 1000;Xlim = [-0.748766713922161, -0.748766707771757];Ylim = [0.123640844894862, 0.123640851045266];x = linspace(xlim(1), xlim(2), gridSize);y = linspace(ylim(1), ylim(2), gridSize);[xGrid,yGrid] = meshgrid(x, y);count = mandelbrot_count(maxIterations, xGrid, yGrid);图(1)imagesc(x, y, count);Colormap ([jet();flipud(jet());0 0 0]); axis从标题('mandelbrot set');
要在Matlab ToolStrip上打开GPU编码器应用程序,在应用标签,下面代码生成,单击GPU编码器应用图标。你也可以通过输入来打开应用程序gpucoder
(GPU编码器)在MATLAB命令窗口中。
该应用程序打开了选择源文件页面。选择mandelbrot_count.m.
作为入口点函数。点击下一个.
在定义输入类型窗口,进入mandelbrot_count (500 0 (1000), 0 (1000))
并点击Autodefine输入类型,然后点击下一个.
你可以发起检查运行时间问题过程或点击下一个去…生成代码步。
设定构建类型到静态库
和硬件板到nvidia jetson.
.
在下面硬件面板,输入设备地址、用户名、密码和单板的build文件夹。
关上设置窗口,点击产生.该软件为CUDA代码生成了CUDA代码mandelbrot_count
入口点函数。
点击验证码.
在“命令”字段中,指定调用原始MATLAB函数的测试文件。例如,mandelbrot_test.
.
要启动PIL执行,请单击运行生成的代码.
GPU编码器应用程序:
生成一个独立的库,例如:Codegen \ lib \ mandelbrot_count
.
例如,生成PIL接口代码,Codegen \ lib \ mandelbrot_count \ pil
.
运行测试文件,将对MATLAB函数的调用替换为对库中生成代码的调用。
显示来自PIL执行中的消息测试输出标签。
笔记
在微软®窗户®系统,Windows防火墙可能会阻止PIL执行。更改Windows防火墙设置以允许访问。
验证PIL执行的结果与原始MATLAB函数的结果相匹配。
若要终止PIL执行过程,请单击停止公益诉讼验证.或者,在测试输出选项卡,单击以下链接终止执行.