主要内容

处理器在循环中执行GPU编码器应用程序

使用处理器在环(PIL)执行检查CUDA的数值行为®从MATLAB生成的代码®需要目标连接的PIL模拟编译生成的源代码,然后在NVIDIA上下载并运行目标代码®GPU平台。将PIL仿真结果传输到MATLAB,以验证仿真结果与代码生成结果的数值等效性。

PIL验证过程是设计周期的关键部分,用于检查生成代码的行为是否与设计匹配。PIL验证需要嵌入式编码器®许可证

笔记

在使用PIL执行时,要确保标杆管理选项的GPU编码器™设置错误的.使用基准测试执行PIL会导致编译错误。

先决条件

目标板要求

  • 英伟达大道®和杰森®嵌入式平台。

  • 用于连接目标板和主机PC(如果目标板无法连接本地网络)的以太网交叉线缆。

  • 主板上安装了NVIDIA CUDA工具包。

  • 编译器和库的目标上的环境变量。有关编译器和库的受支持版本及其设置的信息,请参阅金宝app安装和设置NVIDIA主板的先决条件

开发主机需求

  • 用于CUDA代码生成的GPU编码器。有关GPU编码器入门的帮助,请参阅开始与GPU编码器(GPU编码器)

  • 主机上的NVIDIA CUDA工具包。

  • 主机上编译器和库的环境变量。有关编译器和库支持的版本的信息,请参见金宝app第三方硬件(GPU编码器).有关设置环境变量,请参见环境变量(GPU编码器)

例如:Mandelbrot集合

描述

您不必熟悉示例中的算法即可完成本教程。

Mandelbrot集是由值组成的复平面中的区域Z0其轨迹由

Z K + 1. = Z K 2. + Z 0 , K = 0 , 1. ,

保持有界K→∞.Mandelbrot集合的整体几何结构如图所示。这个观点没有分辨率显示丰富详细的结构边缘的边界以外的集合。在不断放大的情况下,Mandelbrot集合展示了一个复杂的边界,揭示了越来越精细的递归细节。

算法

创建一个MATLAB脚本调用曼德尔布罗特伯爵使用以下代码行。这段代码是Mandelbrot集合的基线矢量化MATLAB实现。

函数count=mandelbrot\u count(最大迭代次数、xGrid、yGrid)%#编码基因%曼德布罗特计算z0=xGrid+1i*yGrid;计数=个(尺寸(z0));添加Kernelfun指令以触发内核创建coder.gpu.kernelfun;z=z0;对于n=0:maxz=z.*z+z0;内侧=abs(z)<=2;计数=计数+内部;终止计数=对数(计数);

在本教程中,选择一组限制,用于指定主心形线和主心形线之间山谷中Mandelbrot集的高度缩放部分p/q灯泡在它的左边。真实零件的1000x1000网格(x)虚部(Y)是在这两个界限之间创建的。然后在每个网格位置迭代Mandelbrot算法。迭代次数为500就足以以全分辨率呈现图像。创建一个MATLAB脚本调用mandelbrot_试验使用以下代码行。它还称之为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集”);

GPU编码器应用程序

要打开GPU编码器应用程序,请在MATLAB toolstrip上的应用程序选项卡,在下面代码生成,单击GPU编码器应用图标。你也可以通过输入来打开应用程序gpucoder(GPU编码器)在MATLAB命令窗口中。

  1. 应用程序将打开选择源文件页面。选择曼德尔布罗特伯爵作为入口点函数。点击下一个

  2. 定义输入类型窗口,输入mandelbrot_count (500 0 (1000), 0 (1000))并点击Autodefine输入类型,然后单击下一个

  3. 您可以启动检查运行时问题过程或点击下一个去…生成代码

  4. 设定构建类型静态库硬件板英伟达捷森酒店

  5. 硬件面板,输入设备地址、用户名、密码和单板的build文件夹。

  6. 关闭设置窗口,点击生成.该软件会为mandelbrot_count入口点函数。

  7. 点击验证码

  8. 在命令字段中,指定调用原始MATLAB函数的测试文件。例如mandelbrot_试验

  9. 要启动PIL执行,请单击运行生成的代码

    GPU编码器应用程序:

    • 生成一个独立的库,例如:codegen\lib\mandelbrot\u计数

    • 生成PIL接口代码,例如,codegen\lib\mandelbrot\u count\pil

    • 运行测试文件,将对MATLAB函数的调用替换为对库中生成代码的调用。

    • 在中显示来自PIL执行的消息测试输出标签。

    笔记

    关于微软®窗户®在系统中,Windows防火墙可能会阻止PIL执行。请更改Windows防火墙设置以允许访问。

  10. 验证PIL执行的结果与原始MATLAB函数的结果相匹配。

  11. 若要终止PIL执行过程,请单击停止公益诉讼验证. 或者,在测试输出选项卡上,单击下面的链接终止执行

另见

功能

物体

相关实例

更多关于