CUDA代码的优化主要分为3种,按照优先顺序排序如下:
存储器优化
执行配置优化
指令优化
0 GPU内存到CPU内存数据传输延时较大
1 数据预取 Data Perfetching
方法1(数据预取和指令重排的混合):执行一个global memory的读语句,后面运行和这个内存无关的指令(没有依赖关系),这样在访问内存的时间内,后面指令的继续运行
方法2(在循环运行状态下):上一个循环开始运行是,就取得下一个循环所需要的数据
指令重排,在ARM汇编优化时使用,cuda优化时是用不了,原因是不是流水线
2 矩阵转置和矩阵乘法的瓦片化内存处理模式

3 指令优化
除以2的n次方 不用除,用>>n
2的n次方求模 & 0xFFFFF...FFF

本文总结了CUDA代码优化的要点,包括存储器优化、执行配置优化和指令优化。重点介绍了数据预取、矩阵转置的瓦片化处理、指令优化如避免除法和浮点转换、使用快速数学库、循环展开、连续内存访问、share memory的bank冲突避免及纹理内存的利用,以提升GPU性能。
最低0.47元/天 解锁文章
885

被折叠的 条评论
为什么被折叠?



