这个示例向您展示了如何通过软件在环(SIL)执行分析对MATLAB算法及其生成的CUDA代码进行细粒度分析。嵌入的编码器®必须安装产品以生成执行分析报告。
请注意
分析工作流依赖于nvprof
英伟达的工具®.在CUDA®在toolkit v10.1中,NVIDIA限制只有管理员用户才能访问性能计数器。若要让所有用户都能使用GPU性能指标,请参见具体操作步骤https://developer.nvidia.com/nvidia-development-tools-金宝搏官方网站solutions-ERR_NVGPUCTRPERM-permission-issue-performance-counters.
对于这个例子,创建一个入口点函数,执行N-D快速傅里叶变换。使用coder.gpu.kernelfun
将FFT映射到GPU。默认情况下,EnableCUFFT
属性启用,因此代码生成器使用cuFFT库执行FFT操作。
函数[Y] = gpu_fftn(X) code .gpu.kernelfun();Y = fftn (X);结束
使用gpucoder.profile
函数生成执行分析报告。
cfg = coder.gpuConfig (exe);cfg.GpuConfig.MallocMode =“离散”;gpucoder.profile (gpu_fftn,{兰德(4500 4)},CodegenConfig, cfg,…“CodegenArguments”,“- d profilingdir”、“阈值”,0.001)
代码执行分析报告将打开。该报告提供基于从SIL执行中收集的数据的度量。执行时间是根据添加到SIL测试工具或为每个组件生成的代码内的检测探头记录的数据计算的。看到视图执行时间(嵌入式编码)为更多的信息。
codegen
|编码器。EmbeddedCodeConfig
|gpucoder.profile