CUDA编程很难。工程师Maharshi Pandya给出了他学习CUDA的一些经验:
🌟最重要的部分是真正理解 GPU 的结构及其内部的内存层次结构,例如全局内存、常量内存、缓存、共享内存、寄存器等等。
🌟其次,停止顺序思考。我的意思是思考你的操作在并行执行时会是什么样子。考虑数据流和涉及的操作。
🌟CUDA 依赖于由块组成的网格,以及由线程组成的块。理解何时将数据映射到线程,以及何时将线程映射到数据的区别。
🌟在开始编写任何内核之前,拿一支笔和一张纸,开始可视化内核的线程(和块)以及你希望它们做什么。
🌟对于 CUDA,确保你理解指针以及如何使用索引来获取/写入数据。
🌟在阅读下面的书(Programming Massively Parallel Processors)时,请务必认真注意,并观看相应的视频(nvidia官网的Introduction to CUDA Programming and Performance Optimization视频)。阅读他人的代码,尝试理解其中发生的事情。
🌟练习,练习,再练习。