我使用 nvcc 命令运行代码,它给出了正确的输出,但是当我在 nsight eclipse 上运行相同的代码时,它给出了错误的输出。任何人都知道为什么会出现这种行为。
最后我发现其中一个数组分配存在问题。虽然命令行没有产生任何问题,但 nsight 确实存在。
我使用 nvcc 命令运行代码,它给出了正确的输出,但是当我在 nsight eclipse 上运行相同的代码时,它给出了错误的输出。任何人都知道为什么会出现这种行为。
最后我发现其中一个数组分配存在问题。虽然命令行没有产生任何问题,但 nsight 确实存在。
Nsight EE 通过基于项目设置生成 make 文件并调用 OS make 实用程序来构建项目来构建项目。它使用在 PATH 中找到的 nvcc 编译器,但它依赖于 NVCC 编译器 5.0 中引入的一些较新的选项(这是同一工具包分发的一部分)。
请在 Nsight Eclipse 中进行干净的重建 - 它会打印出用于构建应用程序的命令行。然后,您可以将该命令行与您在外部使用的命令行进行比较。可能的区别是:
无论如何,您的代码很可能有一些错误,这些错误会在不同的编译设置下表现出来。我建议在您的程序上运行CUDA memcheck以确保没有隐藏的错误。