主要内容

使用GPU编码器应用程序的处理器内执行

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

PIL验证过程是设计周期中检查生成代码的行为是否与设计相匹配的关键部分。太平船务验证需要一个嵌入式编码器®许可证。

请注意

使用PIL执行时,请确保基准测试GPU编码器™设置中的选项是.使用基准测试执行PIL会导致编译错误。

先决条件

目标板需求

  • NVIDIA Drive或Jetson嵌入式平台。

  • 以太网交叉电缆连接目标板和主机PC(如果目标板不能连接到本地网络)。

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

  • 编译器和库目标上的环境变量。有关编译器和库的支持版本及其设置的信息,请参见万博1manbetx安装和安装NVIDIA板的先决条件

开发主机需求

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

  • 主机上的NVIDIA CUDA工具包。

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

示例:Mandelbrot Set

描述

您不必熟悉该算法在示例中完成教程。

Mandelbrot集合是由这些值组成的复平面上的区域z0它的轨迹由

z k + 1 z k 2 + z 0 k 0 1 ...

保持束缚k→∞.Mandelbrot集的整体几何形状如图所示。此视图没有分辨率,以显示在集合边界之外的条纹的丰富详细结构。在增加的放大率下,Mandelbrot集合呈现出逐渐呈现更精细的递归细节的详细边界。

算法

创建一个名为matlab脚本mandelbrot_count.m使用以下代码行。此代码是Mandelbrot集的基线向量化MATLAB实现。

功能count = mandelbrot_count(maxIterations, xGrid, yGrid)% # codegen曼德布洛特百分比计算z0 = xGrid + 1i*yGrid;数= 1(大小(z0));%添加Kernelfun Pragma触发内核创建coder.gpu.kernelfun;z = z0;maxIterations z = z.*z + z0;在= abs (z) < = 2;Count = Count + inside;结束数=日志(数);

对于本教程,选择一组限制来指定位于主心脏线和p / q球茎向左。实部的1000x1000网格(x)及虚部(y)在这两个限制之间创建。然后在每个网格位置迭代Mandelbrot算法。迭代号为500足以以完全分辨率呈现图像。创建一个名为matlab脚本mandelbrot_test.m使用以下代码行。它也叫mandelbrot_count.功能和绘制由此产生的Mandelbrot Set。

最大= 500;gridsize = 1000;XLIM = [-0.748766713922161,-0.7487667077771757];ylim = [0.12364084894862,0.123640851045266];x = Linspace(XLIM(1),XLIM(2),网格化);y = linspace(ylim(1),ylim(2),gridsize);[Xgrid,Ygrid] = meshgrid(x,y);count = mandelbrot_count(maxIrtations,Xgrid,Ygrid);图(1)ImageC(x,y,count);Colormap([Jet(); Flipud(Jet()); 0 0 0]); axis离开标题(曼德尔勃特集合的);

GPU编码器的应用

要打开GPU Coder应用程序,在MATLAB工具条上,在应用程序选项卡,在代码生成,单击GPU编码器应用程序图标。您还可以通过键入打开应用程序GPUCODER.(GPU编码器)在matlab命令窗口中。

  1. 应用程序打开选择源文件页面。选择mandelbrot_count.m作为入口点功能。点击下一个

  2. 在里面定义输入类型窗口中,输入Mandelbrot_count(500,零(1000),零(1000))然后点击自动杂记输入类型,然后单击下一个

  3. 您可以发起检查运行时问题流程或点击下一个生成代码的一步。

  4. 设置构建类型静态库硬件板英伟达杰森

  5. 硬件面板,输入电路板的设备地址,用户名,密码和构建文件夹。

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

  7. 点击验证代码

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

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

    GPU编码器应用程序:

    • 例如,生成独立库,codegen \ lib \ mandelbrot_count

    • 生成PIL接口代码,例如,codegen \ lib \ mandelbrot_count \公益诉讼

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

    • 控件中显示PIL执行的消息测试输出选项卡。

    请注意

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

  10. 验证来自PIL执行的结果是否与原始MATLAB函数的结果匹配。

  11. 要终止PIL执行过程,请单击停止PIL验证.另外,在测试输出选项卡,单击下面的链接终止执行

另请参阅

功能

对象

相关的例子

更多关于