【CUDA 基础】5.0 共享内存和常量内存

Abstract: 本文是第五章关于CUDA共享内存和常量内存的概述
Keywords: 共享内存,常量内存

共享内存和常量内存

本文是CUDA第五章的概论,来给出本章的大概思路,文章短小,不说废话。

共享内存和常量内存

在本章中,我们要学习:

  • 数据在共享内存中的安排
  • 二维共享内存到线性全局内存的索引转换
  • 解决不同访问模式中的存储体中的冲突
  • 在共享内存中缓存数据以减少对全局内存的访问
  • 使用共享内存避免非合并全局内存的访问
  • 常量缓存和只读缓存之间的差异
  • 线程束洗牌指令编程

前面我们主要研究了全局内存的使用,如何通过不同的方式提高全局内存的访问效率。虽然未对其的内存访问是没有问题的,因为现代GPU都有一级缓存了。但是跨全局内存的非合并内存访问,还是会导致带宽利用率不佳的效果。但是非合并内存访问在实际应用时无法避免,在这时可能使用共享内存,那么共享内存就是提高效率的关键。

总结

本章我们主要研究如何使用共享内存进行编程,数据在共享内存中如何被存储,数据元素是怎样使用不同的访问模式被映射到内存存储体(硬件)上的,以及使用共享内存提高核函数性能的方法

0%