我遇到了这个奇怪的问题:我有一个程序使用 CUPTI 回调 API 来监视程序中的内核。直接启动时运行良好;但是当我将它放在 cuda-gdb 下并运行时,它失败并出现以下错误:
错误:函数 cuptiSubscribe(&subscriber, CUpti_CallbackFunc)my_callback, NULL) 失败,错误 CUPTI_ERROR_NOT_INITIALIZED
我已经尝试了 CUPTI/samples 中的所有示例,并得出结论,使用 callbackAPI 和 activityAPI 的程序将在 cuda-gdb 下失败。(它们在没有 cuda-gdb 的情况下都表现良好)但是失败的原因不同:如果我有来自 activityAPI 的调用,那么一旦在 cuda-gdb 下运行它,它会挂起一分钟然后退出并出现错误:
CUDA 驱动程序遇到内部错误。错误代码:0x100ff00000001c 进一步执行或调试不可靠。请确保您的临时目录以写入和执行权限挂载。
如果我像我自己的程序一样从 callbackAPI 调用,那么它会更快地失败并出现相同的错误:
CUPTI_ERROR_NOT_INITIALIZED
对这种问题有任何经验吗?我非常感谢!