编译时挂起的代码很好用CUDA代码在某些输入数据上执行时会挂起。为了调试它,我使用-g -G进行了编译,以便我可以使用cuda-gdb运行它, 但是使用-g -G编译时,即使在cuda-gdb之外,代码也能正常工作。CUDA:使用-g -G
如何调试代码,以及可能是什么问题?
我在多个地方实现了互斥机制。
编译时挂起的代码很好用CUDA代码在某些输入数据上执行时会挂起。为了调试它,我使用-g -G进行了编译,以便我可以使用cuda-gdb运行它, 但是使用-g -G编译时,即使在cuda-gdb之外,代码也能正常工作。CUDA:使用-g -G
如何调试代码,以及可能是什么问题?
我在多个地方实现了互斥机制。
尝试使用cuda-memcheck运行。
你的意思是用__shared__解码?我不会在任何地方使用这种内存。 – user1760748
我在上面输入了下划线,下划线,共享,下划线,下划线。 – user1760748
我刚刚使用cuda-memcheck运行代码,编译后附加参数: -G -Xcompiler -rdynamic 代码通常在cuda-memcheck中完成,并且不会挂起。 接下来我该怎么做才能找到问题? – user1760748
这是在Tesla K20 GPU上。 – user1760748
您应该考虑使用CUDA原子。 – Mikhail
是的,这就是我正在使用的。 – user1760748