visual-studio-2010 - 在 Visual Studio 2010并行nsight中,如何调试cuda推力函数

  显示原文与译文双语对照的内容

我正在使用 Visual Studio 2010,并行 nsight 2.2和 cuda 4.2进行学习。 我的系统是 Windows 8专业版。 我打开了 vs 计算SDK中包含的radix排序项目,并没有错误编译它。 排序代码使用推力库:


if(keysOnly)


 thrust::sort(d_keys.begin(), d_keys.end());


else 


 thrust::sort_by_key(d_keys.begin(), d_keys.end(), d_values.begin());



我想知道推送函数如何将排序函数发送给rtc内核,因这里我尝试在上面的行中添加断点。 但是,当我使用并行nsight进行cuda调试时,总是存在"断点没有源对应"错误。

所以我的问题是:

  • 如何用并行nsight调试 Visual Studio 中的cuda推力程序?
  • 或者有任何人可以指导我使用另一种方式知道如何使用函数dipatch函数或者它的他函数?

任何建议都会感激 !

时间: 原作者:

通常,要在CUDA中调试设备代码,必须通过以下命令:

 
-G -g



 

切换到 nvcc 。但是,对于推力代码,这里模式是不支持的。 你可以通过按照推力包含文件中的结构来获得推力代码如何被调度到设备。 由于推力是模板化代码,所以不需要担心库。 那是一个挑战性的命题。 你还可以告诉编译器生成 ptx:

 
-ptx



 

它是代码编译为的中间代码类型的之一。 然而,这不是一个简单的事情来解析。 这个链接提供了一些使用推力进行调试的替代思想。

原作者:
...