如何调试CUDA在Visual Studio 2010推力功能并行nsight(How to deb

2019-07-03 20:01发布

我使用Visual Studio 2010,并行nsight 2.2和学习CUDA 4.2。 我的系统是Windows 8专业版64位。 我打开其中包括在VS CUDA运算SDK的基数排序的项目,没有错误编译它。 排序代码使用推力库:

if(keysOnly)
    thrust::sort(d_keys.begin(), d_keys.end());
else 
    thrust::sort_by_key(d_keys.begin(), d_keys.end(), d_values.begin());

我想知道推力如何分配排序功能的CUDA内核,所以我试图在上述各行的前面添加断点,以调试方式编译项目。 但是,当我使用并行nsight对CUDA调试,总有一些错误,“没有源对应的断点”。

所以,我的问题是:

  1. 如何调试CUDA程序的推力与平行nsight视觉工作室?
  2. 或者是有任何人都可以用另一种方式来知道如何CUDA推力dipatch功能,CUDA内核或其他功能教我?

任何建议将不胜感激!

Answer 1:

通常情况下,在CUDA调试设备代码,有必要通过:

-G -g

切换到NVCC。 但是这种方式是不与推力代码支持 。 您可以通过以下推力的结构得到的推力代码如何被分派到该设备的想法包括文件。 由于推力完全模板化的代码,有没有图书馆担心。 然而,这是一个具有挑战性的命题。 你也可以告诉编译器生成PTX:

-ptx

这是中间代码类型之一在于CUDA代码被编译到。 然而,是不是要么解析一件微不足道的小事。 此链接提供了一些替代的想法与推力调试。



文章来源: How to debug cuda thrust functions in visual studio 2010 with parallel nsight