Python与GPU编程快速入门(五)
文章目录
-
- 6、寄存器、全局内存和本地内存
-
- 6.1 寄存器
- 6.2 全局内存
- 6.3 本地内存
- 7、共享内存和同步
-
- 7.1 共享内存
- 7.2 线程同步
本文将详细介绍如何在Python中使用CUDA,从而使用Python应用程序加速。
6、寄存器、全局内存和本地内存
现在我们知道了如何编写 CUDA 内核以在 GPU 上运行代码,以及如何使用 CuPy 提供的 Python 接口来执行它,是时候看看 CUDA 编程模型中的不同内存空间了。
6.1 寄存器
寄存器是快速片上存储器,用于存储计算核心执行的操作的操作数。
我们在上一集使用的vector_add代码中是否遇到过寄存器? 是的我们做了! 事实上,变量项至少在线程执行的一部分(如果不是全部)中存储在寄存器中。 一般来说,CUDA 代码中定义的所有标量变量都存储在寄存器中。
寄存器对于线程来说是本地的,并且每个线程对其自己的寄存器具有独占访问权:寄存器中的值不能被其他线程访问,即使来自同一块,并且不可用于主机。 寄存器也不是永久的,因此存储在寄存器中的数据仅在线程