我们正带领大家开始阅读英文的《CUDA C Programming Guide》,今天是第54天,我们正在讲解CUDA C语法,希望在接下来的46天里,您可以学习到原汁原味的CUDA,同时能养成英文阅读的习惯...其次, 如果你在Host上曾经用过此函数, 则知道此函数主要是用来辅助调试的.我们耳熟能详的某个程序突然崩溃了, 提示在某某地方断言失败, 然后可选的问你是否发送错误报告之类的,就是CPU版本的常见表现....此时根据情况, 如果此CUDA软件是独立运行的, 直接就会彻底的挂掉, context被损坏, 完全无法继续, 必须重置设备或者重建context(后者对于driver api),如果是在调试器下运行...却不同.这个函数(assert)和printf, 以及设备端的malloc, free一样,都是所谓的设备端系统调用(device-side system call),如果你用cuobjdump观察代码...printf也不应当使用, 同样代价昂贵(但比AMD的printf好, AMD以前的很多驱动版本, 使用printf等于自动禁用优化, 性能降低甚至1个数量级).同理论坛上说的malloc, 和free(设备端调用