【问题标题】:CUDA program will segfault on specific nodeCUDA 程序将在特定节点上出现段错误
【发布时间】:2021-12-03 12:40:24
【问题描述】:

我们正在尝试在我们的集群上运行cardioid,它可以在一个节点上毫无问题地运行,但是,在另一个节点上,程序会出现段错误。

两个节点配置相同,环境应该相同,因为/root、/home、/opt目录是NFS共享的,环境由Spack管理(安装在共享目录下)和驱动程序的版本相同。

使用cuda-memcheck,报错“设备内核映像无效”和“资源句柄无效”,不知道是什么原因导致这些问题(只发生在一个节点上)?

cuda-memcheck的输出

========= CUDA-MEMCHECK
========= Program hit CUDA_ERROR_INVALID_IMAGE (error 200) due to "device kernel image is invalid" on CUDA API call to cuModuleLoadDataEx.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/lib/x86_64-linux-gnu/libcuda.so.1 [0x2420f1]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_ZN10BetterTT0612ThisReaction15constructKernelEv + 0xa25) [0x1a69d5]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_Z28reactionFactoryForBetterTT06P9object_stdiRK10ThreadTeam + 0x15ac) [0x1ac22c]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_Z15reactionFactoryRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdiRK10ThreadTeam + 0x12c) [0x19e59c]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_ZN15ReactionManager6createEd12ro_array_ptrIiERK10ThreadTeam + 0x14bd) [0x199bcd]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_Z18initializeSimulateRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER8Simulate + 0x1ae3) [0xb8033]
=========     Host Frame:../../../build_user_debug/bin/cardioid (main + 0x73f) [0xa73ff]
=========     Host Frame:/lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main + 0xeb) [0x2409b]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_start + 0x2a) [0xa6bda]
=========
========= Program hit CUDA_ERROR_INVALID_HANDLE (error 400) due to "invalid resource handle" on CUDA API call to cuModuleGetFunction.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/lib/x86_64-linux-gnu/libcuda.so.1 [0x241b89]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_ZN10BetterTT0612ThisReaction15constructKernelEv + 0xa42) [0x1a69f2]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_Z28reactionFactoryForBetterTT06P9object_stdiRK10ThreadTeam + 0x15ac) [0x1ac22c]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_Z15reactionFactoryRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdiRK10ThreadTeam + 0x12c) [0x19e59c]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_ZN15ReactionManager6createEd12ro_array_ptrIiERK10ThreadTeam + 0x14bd) [0x199bcd]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_Z18initializeSimulateRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEER8Simulate + 0x1ae3) [0xb8033]
=========     Host Frame:../../../build_user_debug/bin/cardioid (main + 0x73f) [0xa73ff]
=========     Host Frame:/lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main + 0xeb) [0x2409b]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_start + 0x2a) [0xa6bda]
=========
========= Program hit CUDA_ERROR_INVALID_HANDLE (error 400) due to "invalid resource handle" on CUDA API call to cuLaunchKernel.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/lib/x86_64-linux-gnu/libcuda.so.1 [0x20d695]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_ZN10BetterTT0612ThisReaction4calcEd14ro_mgarray_ptrIiES1_IdES3_14wo_mgarray_ptrIdE + 0x255) [0x1a79e5]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_ZN15ReactionManager4calcEd14ro_mgarray_ptrIdES1_14wo_mgarray_ptrIdE + 0xc5) [0x1983e5]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_Z14simulationLoopR8Simulate + 0x450) [0xa8330]
=========     Host Frame:../../../build_user_debug/bin/cardioid (main + 0x80b) [0xa74cb]
=========     Host Frame:/lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main + 0xeb) [0x2409b]
=========     Host Frame:../../../build_user_debug/bin/cardioid (_start + 0x2a) [0xa6bda]
=========
========= ERROR SUMMARY: 3 errors

【问题讨论】:

  • 该节点的 GPU 与其他节点不同,并且您的程序尚未构建支持该架构

标签: c++ cuda segmentation-fault hpc


【解决方案1】:

好的,仍然不确定为什么会出现这个问题,但我设法通过重新安装驱动程序和 cuda 来解决它。

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 2012-09-11
  • 2020-03-18
  • 2015-05-28
  • 1970-01-01
  • 2012-11-09
  • 2017-03-04
  • 2012-09-22
相关资源
最近更新 更多