gpt4 book ai didi

visual-studio-2010 - 如何使用并行 nsight 在 Visual Studio 2010 中调试 cuda 推力功能

转载 作者:行者123 更新时间:2023-12-04 21:20:16 25 4
gpt4 key购买 nike

我正在使用 Visual Studio 2010、并行 nsight 2.2 和 cuda 4.2 进行学习。我的系统是 Windows 8 pro x64。
我在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());

我想知道推力如何将排序功能分派(dispatch)给 cuda 内核,所以我尝试在上面的行前添加断点并在 Debug模式下编译项目。但是当我使用并行nsight进行cuda调试时,总是出现“断点没有源对应”的错误。

所以,我的问题是:
  • 如何在具有并行 nsight 的 Visual Studio 中调试 cuda 推力程序?
  • 或者有没有人可以指导我使用另一种方式来了解 cuda 推力 dipatch 如何对 cuda 内核或其他功能起作用?

  • 任何建议将不胜感激!

    最佳答案

    通常,要在 CUDA 中调试设备代码,需要通过:

    -G -g

    切换到 nvcc。但是这种方式是 not supported with thrust code .您可以通过遵循推力包含文件中的结构来了解推力代码是如何分派(dispatch)到设备的。由于推力完全是模板化代码,因此无需担心库。然而,这是一个具有挑战性的提议。您还可以告诉编译器生成 ptx:
    -ptx

    这是 one of the intermediate code types该cuda代码被编译成。然而,这也不是一件容易解析的事情。 This link提供了一些使用 Thrust 进行调试的替代想法。

    关于visual-studio-2010 - 如何使用并行 nsight 在 Visual Studio 2010 中调试 cuda 推力功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13394791/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com