第四章 存储系统

文章探讨了GPU的内存系统,特别是针对GPGPU编程。它区分了CPU的寄存器和内存与GPU的本地和全局内存空间。共享内存是为优化数据访问和减少能耗,通过预加载到片上存储器来重叠长延迟的外部DRAM访问。文章还强调了内存管理在性能和功耗效率方面的重要性。
摘要由CSDN通过智能技术生成

本章探讨 GPU 的内存系统。 GPU 计算内核通过加载和存储指令与内存系统交互。 传统图形应用程序与多个内存空间交互,例如纹理存储器、常量存储器和渲染表面存储器。 虽然在 CUDA 等 GPGPU 编程 API 中可以访问这些内存空间,但我们将在本章重点介绍 GPGPU 编程中使用的内存空间,尤其是实现它们所需的微架构支持。

CPU 通常包括两个独立的内存空间:寄存器文件和内存。 现代 GPU 在逻辑上将内存进一步细分为本地和全局内存空间。 本地内存空间是每个线程私有的,通常用于寄存器溢出,而全局内存用于在多个线程之间共享的数据结构。 此外,现代 GPU 通常会实现一个由程序员管理的暂存器内存,并在协作线程组中一起执行的线程之间共享访问。 包含共享地址空间的一个动机是,在许多应用程序中,程序员知道在计算的给定步骤需要访问哪些数据。 通过一次将所有这些数据加载到共享内存中,它们可以重叠长时间延迟的片外内存访问,并避免在对这些数据执行计算时对内存进行长延迟访问。 更重要的是,在给定时间内(DRAM 带宽)在 GPU 和片外内存之间传输的字节数相对于在相同时间内可执行的指令数而言是很小的。 此外,在片外存储器和 GPU 之间传输数据所消耗的能量比从片上存储器访问数据所消耗的能量高几个数量级。 因此,从片上存储器访问数据可以提高性能并节省功耗。

我们将对内存系统的讨论分为两部分,以反映内存分为驻留在 GPU 内核内的部分和连接到片外 DRAM 芯片的内存分区内的部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值