CUDA进阶第一篇:CUDA调试
0.写在前面 “初学CUDA,好不容易自己写完一段cuda代码,一运行,满屏的语法bug,语法bug还好说,竟然还有逻辑bug,逻辑bug怎么改啊,wtf!!” “从别人手里接到一段CUDA代码,WTF,为什么还有bug!!还没有注释!!没有文档!!写代码的人怎么不去死啊!!” 同事的代码出bug了,找你调bug,内心独白:“tmd这写的都是啥”,“tmd这不是我写的代码,出bug为啥要找我”,“tmd这神马破代码,代码注释都没有” 由于CUDA调试工具的不完善、CUDA调试工具上手难度较高,并行思想本身就难调试等因素,CUDA调试一直都是一件很蛋疼的事情。写CUDA也有三四年了,前段时间在群里见别人问CUDA调试的问题,突然有想法写个CUDA调试的博客。自己经验尚浅,希望各位大大看过后能够在评论里指点一二,共同完善这篇博客。 本博客只针对逻辑bug。 1定位bug出现bug的第一想法自然是定位bug。cuda比较奇特的地方在于,有时报错bug在500行,但500行出的代码没有错误,而是在1000行的地方逻辑错了,十分头疼。 下面介绍三种我总结的定位bug方法: 1.1二分法一半一半的...

