关于Cuda优化寄存器问题

杨阿毛阿 2015-04-11 07:34:37

上图为本人程序Nsight分析结果,由于寄存器个数为33,始终找不到方法将寄存器的个数降到32,已将程序中使用的中间变量全部替换,请各位大神帮忙,通过分析此程序,给予优化建议。尤其是,如何降低寄存器的使用个数。

上图显示Local memory per thread 的使用量为0,所以,我想可否将寄存器转换到LOCAL MEMEORY?已降低寄存器数量?谢谢~~
...全文
343 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
baodijun 2015-10-23
  • 打赏
  • 举报
回复
如果寄存器使用确实成为程序瓶颈。以下策略可以减少程序中寄存器的使用。 1、 拆分代码为较小的Kernel(一般需要同时修改算法才能达到比较好的效果)。 2、 运用maxrregcount编译选项控制寄存器使用。
第一章 设备微架构 1.0 CUDA设备 1.0.0 核心微架构 1.0.1 指令编码格式 1.0.2 寄存器文件结构 1.0.3 指令流水线 1.0.4 Pascal架构(待续) 1.1 GCN设备 1.1.0 核心微架构 1.1.1 指令编码格式 1.1.2 寄存器文件结构 1.1.3 指令流水线 1.2 GPU设备上的条件分支 第二章 GPU矩阵乘法的高效实现 2.0 前言 2.1 指令级并行和数据预取 2.2 双缓冲区 2.3 宽数据内存事务 2.4 二级数据预取 2.5 细节调优 第三章 基于GPU的大规模稀疏矩阵直接求解器 3.0 简介 3.1 基于quotient graph的符号分析 3.1.1 顶点重排序 3.1.2 构建消去树 3.1.3 寻找超结点 3.1.4 符号分解 3.2 多波前法 3.3 超节点方法 3.4 多波前+超节点方法的并行分解算法 小结 参考资料 第四章 CNN中的卷积计算 前言 1 基于矩阵乘法的卷积算法 2 类矩阵乘法的卷积算法 小结 第五章 基于GPU的LU分解(待续) 5.0 一般实现 5.1 分块实现 5.2 使用动态并行 5.3 多GPU版本 第六章 GPU上的光线追踪(待续) 6.1 kd-tree算法介绍及内核实现 6.2 less-分支版本的kd-tree算法及内核实现 6.3 ropes-kdtree算法及内核实现 第七章 LBM流体计算(待续) 尾章 GPU编程优化技术总结 4.1.0 CUDA设备上的优化技术 4.1.1 访存优化 4.1.2 指令优化 4.1.3 内核调用优化 4.2.0 GCN设备上的优化技术 4.2.1 访存优化 4.2.2 指令优化 4.2.3 内核调用优化 4.3 构建性能可移植的程序

353

社区成员

发帖
与我相关
我的任务
社区描述
CUDA高性能计算讨论
社区管理员
  • CUDA高性能计算讨论社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧