Cuda 内核启动和内核执行之间的时间
我正试图通过使用VS2010的并行Nsight 2.1版来优化我的CUDA程序 我的程序在带有GTX 480板的Windows 7(32位)计算机上运行。我已经安装了CUDA 4.1 32位工具包和301.32驱动程序 程序中的一个周期包括将主机数据复制到设备、执行内核以及将结果从设备复制到主机 正如您在下面的分析器结果图中所看到的,内核在四个不同的流中运行。每个流中的内核依赖于“流2”中复制到设备的数据。这就是asyncMemcpy在不同流中启动内核之前与CPU同步的原因 图中让我恼火的是第一次内核启动结束(10.5778679285)和内核执行开始(10.5781500)之间的巨大差距。启动内核大约需要300人,这在不到1毫秒的处理周期内是一个巨大的开销 此外,内核执行和将结果复制回主机的数据之间没有重叠,这进一步增加了开销Cuda 内核启动和内核执行之间的时间,cuda,profiling,nsight,Cuda,Profiling,Nsight,我正试图通过使用VS2010的并行Nsight 2.1版来优化我的CUDA程序 我的程序在带有GTX 480板的Windows 7(32位)计算机上运行。我已经安装了CUDA 4.1 32位工具包和301.32驱动程序 程序中的一个周期包括将主机数据复制到设备、执行内核以及将结果从设备复制到主机 正如您在下面的分析器结果图中所看到的,内核在四个不同的流中运行。每个流中的内核依赖于“流2”中复制到设备的数据。这就是asyncMemcpy在不同流中启动内核之前与CPU同步的原因 图中让我恼火的是第
这种行为有什么明显的原因吗?通过跟踪,我可以看出三个问题