小编Haw*_*awk的帖子

内核启动和内核执行之间的时间

我正在尝试使用适用于VS 2010的Parallel Nsight 2.1版来优化我的CUDA程序.

我的程序在带有GTX 480板的Windows 7(32位)机器上运行.我安装了CUDA 4.1 32位工具包和301.32驱动程序.

程序中的一个循环包括到设备的主机数据的副本,内核的执行以及从设备到主机的结果的复制.

正如您在下面的分析器结果图片中所看到的,内核在四个不同的流中运行.每个流中的内核依赖于"流2"中复制到设备的数据.这就是为什么asyncMemcpy在不同流中启动内核之前与CPU同步的原因.

在此输入图像描述

令我恼火的是第一次内核启动结束(10.5778679285)与内核执行开始(10.5781500)之间的巨大差距.启动内核大约需要300美元,这在一个小于1毫秒的处理周期中是一个巨大的开销.

此外,内核执行和结果的数据副本没有重叠回主机,这进一步增加了开销.

这种行为有明显的原因吗?

profiling cuda nsight

4
推荐指数
1
解决办法
1900
查看次数

标签 统计

cuda ×1

nsight ×1

profiling ×1