在GPU上编程时有没有什么好的方法来调试内核函数?有没有任何有效的方法来调试CUDA的内核函数?
我使用的方式是使用printf(...)
或将结果复制回CPU,然后再查看它们。
我觉得调试太费时了。
我很感谢您的建议。谢谢。
在GPU上编程时有没有什么好的方法来调试内核函数?有没有任何有效的方法来调试CUDA的内核函数?
我使用的方式是使用printf(...)
或将结果复制回CPU,然后再查看它们。
我觉得调试太费时了。
我很感谢您的建议。谢谢。
如果您使用的是Windows,一定要尝试NVIDIA Parallel Nsight(来自Nvidia官方的调试工具)
如何使用调试器?
如果你在windows上,你可以使用VisualStudio Debugger。 如果你在Linux上(更好),你可以使用cuda-gdb。
创建合适的内核的典型方法是:
第一实施只有CPU的简单算法。然后从创建内核,上传/下载数据 的最简单的可能方式开始,并将第一个简单内核的结果与正确的cpu内核的结果进行比较。
然后开始增加复杂度并创建新版本的内核。
这意味着我们需要创建一个对应的CPU为核心的每一版本? – Yik
我听说Nsight用于GPU集群。我可以用一台GPU将Nsight用于自己的机器吗? – Yik
如果你想在一台机器上调试你的CUDA内核,你需要至少有2个独立的GPU(其中1个必须是NVIDIA的,并且能够运行Nsight)。 – Daniel