主要内容

使用GPU编码器应用程序

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

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

请注意

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

先决条件

目标板需求

  • NVIDIA驱动®还是杰森®嵌入式平台。

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

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

  • 目标上的编译器和库的环境变量。有关编译器和库的支持版本及其设置的信息,请参见金宝appNVIDIA主板的安装和设置必备事项

开发主机需求

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

  • NVIDIA CUDA工具包上的主机。

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

示例:Mandelbrot集

描述

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

曼德尔勃洛特集是复平面中由这些值组成的区域z0它的轨迹由

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

停留在k→∞. 图中显示了Mandelbrot集合的整体几何结构。该视图的分辨率不足以显示集合边界外边缘的丰富细节结构。随着放大倍数的增加,Mandelbrot集显示出一个精细的边界,显示出越来越精细的递归细节。

算法

创建一个名为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;n = 0:maxIterations z = z.*z + z0;在= abs (z) < = 2;Count = Count +内部;结束数=日志(数);

对于本教程,选择一组限制,指定在主心脏线和之间的谷中Mandelbrot集合的高度放大部分p / q灯泡在它的左边。一个1000x1000的实零件网格(x)和虚部(y)是在这两个限制之间创建的。然后在每个网格位置迭代Mandelbrot算法。迭代次数为500足以以全分辨率渲染图像。创建一个名为mandelbrot_test.m用下面的代码行。它也叫曼德布罗特计数函数并绘制生成的Mandelbrot集。

最大迭代次数=500;网格大小=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)图像SC(x,y,计数);彩色贴图([jet();flipud(jet());0]);轴头衔(曼德尔勃特集合的);

GPU编码器应用程序

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

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

  2. 定义输入类型窗口中,输入mandelbrot_计数(500,零(1000),零(1000))点击自动定义输入类型,然后单击下一个

  3. 你可以启动检查运行时问题处理或单击下一个生成代码的一步。

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

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

  6. 关闭设置窗口并单击生成.该软件生成CUDA代码曼德布罗特计数入口点函数。

  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验证.另外,在测试输出选项卡,单击下面的链接终止执行

另请参阅

功能

对象

相关的例子

更多关于