赞
踩
Memory Subsystem Architecture,图源自TVM
CPU(中央处理器)的内存子系统:隐式管理
主内存(RAM)
: CPU通常与主内存进行直接交互,主内存是用于存储程序和数据的地方。CPU通过内存总线访问主内存,用于执行计算任务和存储程序的指令。缓存
: CPU还包括多级缓存(L1、L2、L3),这是一种速度更快但容量较小的存储,用于缓存最常用的数据和指令,以提高访问速度。L1D(Level 1 Data Cache):
L1I(Level 1 Instruction Cache):
GPU(图形处理器)的内存子系统:混合管理
全局内存:
GPU拥有自己的全局内存,用于存储大量的数据,例如图形、纹理和模型数据。全局内存对于大规模并行计算非常重要,但与主内存相比,它通常具有更高的延迟。共享内存:
在GPU中,共享内存是一种高速且共享给同一个工作组(通常是一个线程块)中的线程使用的内存。这种内存形式用于在工作组内进行通信和数据交换。纹理内存:
用于存储和处理图形数据的特殊内存。纹理内存通常用于图形渲染,但在深度学习等领域也可以用于特殊用途。GPU(图形处理器)内部,有一些关键的组成部分和缓存层次,其中一些常见的术语包括:
RF(Register File):
L1 Cache / Texture Cache (L1/TC):
L1 Cache(数据缓存):
用于存储处理器核心正在访问的数据。这包括从全局内存读取的数据,以及线程间共享的数据。L1 Cache可以被分为L1D(数据缓存)和L1I(指令缓存)。Texture Cache(纹理缓存):
专门用于处理图形处理中的纹理贴图数据,提供对纹理数据的快速访问。纹理缓存通常用于图形渲染中的纹理映射。SM(Streaming Multiprocessor):
L2 Cache(Level 2 Cache):
关于GPU架构请参考我的另外一篇文章:
https://blog.csdn.net/qq_47564006/article/details/134579941
TPU(张量处理单元)的内存子系统:显示管理
高带宽存储(HBM):
TPU通常使用高带宽存储,这是一种高速、低延迟的内存,专门设计用于存储大规模的张量数据。这对于深度学习等涉及大量矩阵和张量运算的任务非常重要。缓存:
TPU可能还包含一些缓存,用于存储和加速对常用数据的访问。在谷歌的Tensor Processing Unit(TPU)中,存在一些特定的组成部分和缓存结构,其中包括 Activation Buffer、Weight FIFO(First-In, First-Out)以及 Accumulator Register File。以下是对这些组成部分的简要说明:
Activation Buffer:
作用: Activation Buffer 用于存储神经网络中的激活值(activation values)。激活值是神经网络中每个神经元的输出,是神经网络前向传播的结果。
特点: Activation Buffer 提供了一个快速的临时存储区域,以存储当前层的激活值。这有助于提高处理速度,因为激活值通常在神经网络的不同层之间传递,而无需每次都访问主存。
Weight FIFO(Wgt.FIFO):
作用: Weight FIFO 用于存储神经网络中的权重(weights)。权重是神经网络中连接两个神经元之间的参数,它们在神经网络的训练过程中被学习。
特点: Weight FIFO 提供了一个先进先出的缓冲区,用于暂存权重。这有助于提供对权重的快速访问,以支持神经网络的前向和反向传播。
Accumulator Register File:
作用: Accumulator Register File 用于存储神经网络中的累加器值。在神经网络的计算过程中,累加器用于累积加权和,计算神经元的输出。
特点: Accumulator Register File 提供了一个用于临时存储累加器值的区域,以支持神经网络的前向和反向传播。这有助于加速计算过程。
这些组成部分共同协作,为TPU提供了对神经网络计算所需的各种参数和中间结果的高效访问。TPU旨在针对深度学习任务进行优化,因此这些缓存结构和寄存器文件等组件的设计都考虑了深度学习计算的特殊需求。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。