主要内容

GPU执行分析生成的代码

这个例子向您展示了如何生成一个执行分析报告生成的CUDA®代码通过使用gpucoder.profile函数。雾整流作为一个例子来演示此概念。

先决条件

验证GPU环境

验证所需的编译器和库运行这个示例设置正确,使用coder.checkGpuInstall函数。

envCfg = coder.gpuEnvConfig (“主机”);envCfg。BasicCodegen = 1;envCfg。安静= 1;coder.checkGpuInstall (envCfg);

代码生成和分析做准备

fog_rectification.m函数接受一个雾蒙蒙的图像作为输入,并返回一个除雾的形象。生成CUDA的代码,创建一个GPU代码配置对象动态库(“dll”)建造类型。因为gpucoder.profile函数只接受一个嵌入式编码器配置对象,acoder.EmbeddedCodeConfig即使使用配置对象选项没有显式地选择。

inputImage = imread (“foggyInput.png”);输入= {inputImage};designFileName =“fog_rectification”;cfg = coder.gpuConfig (“dll”);cfg.GpuConfig。MallocMode =“离散”;

生成执行分析报告

运行gpucoder.profile阈值为0.003的SIL执行报告。0.003的阈值只是一个代表数字。如果生成的代码有很多CUDA API或内核调用,很可能每个调用是只有一小部分的总时间。建议设置一个低阈值(0.001 - -0.005)之间产生一个有意义的分析报告。是不明智的执行数值设置为一个非常低的数量(小于5)因为它不产生一个精确的表示一个典型的执行概要。

gpucoder.profile(designFileName, inputs,“CodegenConfig”cfg,“阈值”,0.003,“我会”10);
# # #银开始执行“fog_rectification”终止执行:明确fog_rectification_sil执行分析数据可供浏览。开放的仿真数据检查员。执行分析报告后终止。# # #停止SIL执行“fog_rectification”

代码执行分析报告fog_rectification函数

代码执行分析报告提供度量基于收集的数据从银或公益诉讼执行。执行时间计算从仪器探头记录的数据添加到硅公益诉讼测试工具或内部为每个组件生成的代码。有关更多信息,请参见视图执行时间(嵌入式编码)。这些数字是代表。实际值取决于你的硬件设置。这个分析是通过使用MATLAB R2020a的机器6核心,3.5 ghz Intel®Xeon®CPU、和NVIDIA GPU泰坦XP

1。总结

2。异形的部分代码

3所示。GPU fog_rectification分析跟踪

第三节显示了完整的跟踪的GPU调用运行时高于阈值。的“阈值”参数被定义为运行的最大执行时间的分数(不含第一次运行)。例如,9调用顶级fog_rectification函数,如果第三个叫花最长时间( t ,女士),然后最大执行时间 t 毫秒。所有GPU调用超过 T h r e 年代 h o l d * t 毫秒本节所示。将您的鼠标停留在调用显示了运行时的值为每个调用其他相关测速相关信息。例如,把你的光标fog_rectification_kernel10显示了块尺寸,网格尺寸和静态共享内存的大小在简约的电话。该跟踪对应于运行的最长时间。

4所示。GPU fog_rectification分析总结

第四部分在报告中显示了GPU的总结部分3所示的调用。的cudaFree叫做17次跑的吗fog_rectification和的平均时间由17个调用cudaFree超过9分的fog_rectification是1.7154毫秒。这个总结的降序排序时间让用户了解GPU称之为的最长时间。