调试JCuda程序

时间:2013-08-01 11:56:07

标签: debugging cuda nsight cuda-gdb jcuda


我想知道什么是JCuda项目的最佳调试器(如果存在) 我知道对于普通的CUDA应用程序,有cuda-gdb和cuda-memcheck等工具,我想知道我是否可以将它们中的任何一个或类似的用于JCuda项目。
谢谢!

2 个答案:

答案 0 :(得分:4)

您应该能够使用常规CUDA调试器(例如Nsight或cuda-gdb)来调试JCuda应用程序中的GPU代码。您可以使用Java调试器(例如Eclipse)来调试Java代码。 没有调试器可以无缝地调试Java和CUDA代码。

答案 1 :(得分:1)

在Linux上,您可以使用Nvidia Nsight(cuda-gdb)。

设置启动可执行文件的调试会话:

  • 以root身份启动Nsight (令人惊讶,但对我来说是必要的)
  • 转到“运行”菜单>调试配置......
  • 右键单击“C / C ++ Application”,选择New
  • 在主标签下
    • 将可执行文件(字段C / C ++应用程序)设置为=ARRAYFORMULA(TRANSPOSE(SPLIT(CONCATENATE(REPT(A1:A5&"",2)),""))) 或任何正确的路径
  • 在“参数”选项卡下
    • 设置启动参数,例如/usr/bin/java
    • 设置工作目录
  • 在“调试器”选项卡下
    • 设置“CUDA GDB初始化文件”路径(见下文)
    • 设置其他选项,例如启用CUDA memcheck

由于Java在内部使用分段错误有些过于巧妙的目的,因此您需要使用以下GDB选项创建一个文件,并将其指向“CUDA GDB init文件”。请注意,通过设置此选项,您将无法捕获自己的JNI代码中的分段错误错误。这应该不是问题。

-jar target/MyApp.jar

如果使用调试符号编译内核,则可以调试它们。