![b7b14e27de6729831d6801f0f7dd0fd9.png](https://i-blog.csdnimg.cn/blog_migrate/f141bd628f0687d705f6c8ba62e51fcb.jpeg)
一、CUDA代码的高效策略
1.高效公式
最大化计算强度:Math/Memory ,即:数学计算量/每个线程的内存
- 最大化每个线程的计算量;
- 最小化每个线程的内存读取速度;
- 每个线程读取的数据量少
- 每个线程读取的速度快
- 内地内存>共享内存>>全局内存
- 合并全局内存
2.合并全局内存(按顺序读取的方式最好)
![f033ebeb3de47b5b600a88af19855f82.png](https://i-blog.csdnimg.cn/blog_migrate/722ddf97ce6df99a7be7ff0e22cc7554.jpeg)
3.避免线程发散
线程发散:同一个线程块中的线程执行不同内容的代码
(1)kernel中做条件判断
1.高效公式
最大化计算强度:Math/Memory ,即:数学计算量/每个线程的内存
2.合并全局内存(按顺序读取的方式最好)
3.避免线程发散
线程发散:同一个线程块中的线程执行不同内容的代码
(1)kernel中做条件判断