调试JCuda程序




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

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

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

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

  • 以root身份启动Nsight(令人惊讶,但对我来说是必要的)
  • 转到"运行"菜单>"调试配置…"
  • 右键单击"C/C++应用程序",选择"新建"
  • 在"主"选项卡下
    • 将可执行文件(字段C/C++应用程序)设置为/usr/bin/java或任何正确的路径
  • 在"参数"选项卡下
    • 设置启动参数,例如-jar target/MyApp.jar
    • 设置工作目录
  • 在"调试器"选项卡下
    • 设置"CUDA GDB init file"路径(见下文)
    • 设置其他选项,如启用CUDA memcheck

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

handle SIGSEGV nostop noprint pass

如果您使用调试符号编译内核,您将能够调试它们。

相关内容

  • 没有找到相关文章

最新更新