CPU、GPU、TPU内存子系统架构

news2024/11/30 14:33:25

文章目录

  • CPU、GPU、TPU内存子系统架构
    • 概要
    • CPU
    • GPU
    • TPU
    • 共同点和差异:

CPU、GPU、TPU内存子系统架构

概要

Memory Subsystem Architecture,图源自TVM
在这里插入图片描述

CPU

CPU(中央处理器)的内存子系统:隐式管理

  1. 主内存(RAM): CPU通常与主内存进行直接交互,主内存是用于存储程序和数据的地方。CPU通过内存总线访问主内存,用于执行计算任务和存储程序的指令。
  2. 缓存: CPU还包括多级缓存(L1、L2、L3),这是一种速度更快但容量较小的存储,用于缓存最常用的数据和指令,以提高访问速度。
  3. L1分为L1D与L1I:
    在CPU的内存体系结构中,L1D(Level 1 Data Cache)和L1I(Level 1 Instruction Cache)是两个不同类型的缓存,分别用于存储数据和指令。
    L1D(Level 1 Data Cache):
    作用: L1D缓存用于存储处理器执行过程中使用的数据。这包括从主存中读取的数据以及处理器计算过程中生成的中间结果。L1D缓存的目标是提供对数据的快速访问,以减少因为等待主存数据而引起的计算延迟。
    特点: L1D通常是双口(读写同时)的,具有较小的容量但具有很高的访问速度。由于它离处理器核心非常近,可以在一个时钟周期内响应访问请求。
    L1I(Level 1 Instruction Cache):
    作用: L1I缓存用于存储处理器执行的指令。指令是由处理器执行的操作的二进制表示形式。通过将指令缓存在L1I中,可以更快速地提供给处理器核心,减少从主存中获取指令的时间。
    特点: 类似于L1D,L1I也是双口的,但它存储指令而不是数据。L1I通常具有相对较小但非常快速的访问时间,以确保指令的快速提供。
    这两个缓存层级(L1D和L1I)都位于处理器核心内部,离核心非常近,以便最小化访问延迟。当处理器执行指令时,首先从L1I缓存中获取指令,然后执行这些指令并在L1D中存储或检索相关的数据。如果在L1缓存中未找到所需的数据或指令,处理器将继续查找更高层级的缓存(如L2、L3缓存)或主内存。

GPU

GPU(图形处理器)的内存子系统:混合管理

  1. 全局内存: GPU拥有自己的全局内存,用于存储大量的数据,例如图形、纹理和模型数据。全局内存对于大规模并行计算非常重要,但与主内存相比,它通常具有更高的延迟。
  2. 共享内存: 在GPU中,共享内存是一种高速且共享给同一个工作组(通常是一个线程块)中的线程使用的内存。这种内存形式用于在工作组内进行通信和数据交换。
  3. 纹理内存: 用于存储和处理图形数据的特殊内存。纹理内存通常用于图形渲染,但在深度学习等领域也可以用于特殊用途。

GPU(图形处理器)内部,有一些关键的组成部分和缓存层次,其中一些常见的术语包括:

  1. RF(Register File):
    作用: 寄存器文件是GPU中用于存储临时数据和中间结果的地方。GPU中的线程(也称为CUDA核心或着色器)在执行计算时使用寄存器进行临时存储,而RF就是这些寄存器的组织结构。
    特点: RF非常快速,但容量有限。它用于存储当前线程的局部变量和中间计算结果。
  2. L1 Cache / Texture Cache (L1/TC):
    L1 Cache(数据缓存): 用于存储处理器核心正在访问的数据。这包括从全局内存读取的数据,以及线程间共享的数据。L1 Cache可以被分为L1D(数据缓存)和L1I(指令缓存)。
    Texture Cache(纹理缓存): 专门用于处理图形处理中的纹理贴图数据,提供对纹理数据的快速访问。纹理缓存通常用于图形渲染中的纹理映射。
  3. SM(Streaming Multiprocessor):
    作用: SM是GPU中的一个处理单元,用于执行并行计算任务。每个SM包含多个CUDA核心,可以同时执行多个线程。
    特点: SM具有自己的寄存器文件(RF)、共享内存、L1 Cache等资源。多个SM并行工作以实现高度并行的计算。
  4. L2 Cache(Level 2 Cache):
    作用: L2缓存是GPU中的更大容量、相对较慢但仍然很快的缓存层。它用于存储全局内存的数据,以及L1 Cache之间的数据传输。
    特点: L2 Cache能够缓存更多的数据,并提供更大的访问带宽,以支持更高效的数据共享和传输。
    这些组成部分在GPU中协同工作,以支持大规模的并行计算,特别是在图形渲染和通用计算任务中。不同的GPU架构和制造商可能有不同的设计和术语,上述描述主要适用于NVIDIA的CUDA架构。

关于GPU架构请参考我的另外一篇文章:
https://blog.csdn.net/qq_47564006/article/details/134579941

TPU

TPU(张量处理单元)的内存子系统:显示管理

  1. 高带宽存储(HBM): TPU通常使用高带宽存储,这是一种高速、低延迟的内存,专门设计用于存储大规模的张量数据。这对于深度学习等涉及大量矩阵和张量运算的任务非常重要。
  2. 缓存: 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旨在针对深度学习任务进行优化,因此这些缓存结构和寄存器文件等组件的设计都考虑了深度学习计算的特殊需求。

共同点和差异:

  1. 共同点: 所有这三种处理器都具有一些形式的缓存,用于加速对常用数据的访问。
  2. 差异: 不同之处在于主要设计目标和应用领域。CPU通常用于通用计算,GPU专注于图形处理和大规模并行计算,而TPU专门为深度学习任务设计,通过优化张量计算来提高性能。
    总的来说,每种处理器的内存子系统都是根据其设计目标和应用领域进行了优化的,以最大限度地提高性能和效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1253416.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VMware如何导出和导入镜像OVF虚拟机(以unbuntu为例)

前言:我下载了一个unbuntu的系统镜像,基于这个镜像创建了一个unbuntu的虚拟机,辛辛苦苦配置需要的开发环境,如:安装了mysql,安装了jdk等,此时,我的同事可能需要也是同一套类似环境&a…

视觉CV-AIGC一周最新技术精选(2023-11)

PG-Video-LLaVA: Pixel Grounding Large Video-Language Models https://github.com/mbzuai-oryx/Video-LLaVA将基于图像的大型多模态模型(LMM)扩展到视频领域是具有挑战性的。最近将基于图像的LMM扩展到视频的方法要么缺乏grounding定位能力&#xff08…

SQL sever2008中的游标

目录 一、游标概述 二、游标的实现 三、优缺点 3.1优点: 3.2缺点: 四、游标类型 4.1静态游标 4.2动态游标 4.3只进游标 4.4键集驱动游标 4.5显示游标: 4.6隐式游标 五、游标基本操作 5.1声明游标 5.1.1.IS0标准语法 5.1.1.1语…

nodejs+vue+python+PHP+微信小程序-书吧租阅管理系统的设计与实现-安卓-计算机毕业设计

在当今高度发达的信息中,信息管理改革已成为一种更加广泛和全面的趋势。为确保中国经济的持续发展,信息时代日益更新,书吧租阅管理系统仍在蓬勃发展。同时,随着信息社会的快速发展,各种管理系统面临着越来越多的数据需…

leetcode刷题日志-15.三数之和

这道题还是有点难度,我能想到的就是三重循环,但是题目限制不能重复,所以这道题三重循环完还要去重,太过于麻烦。看了题解以后,大佬们还是厉害,大概思路是这样子的:先对数组进行排序,…

pandas根据列正逆序排序

题目:根据 buy_quantity 列进行排名,相同值分配相同的最低排名。 import pandas as pd# 创建一个示例 DataFrame data {item_id: [1, 2, 3, 4, 5, 6, 7], buy_quantity: [1, 2, 2, 3, 3, 4, 5]} df pd.DataFrame(data)# 使用 rank() 函数为 buy_quant…

电商数据|淘宝商品数据接口接入|参数|获取商品订单物流|电商数据分析

授权认证 授权不是开放平台对服务商应用的授权 ,而是需要开放平台的客户(用户)对服务商应用的授予,比如ERP应用,也就是淘宝的店铺商家对应用进行授权,使其能够拉取到店铺的订单来完成订单履约。 淘宝授权页…

C++ day39 动态规划 不同路径 不同路径Ⅱ

题目1:62 不同路径 题目链接 :不同路径 对题目的理解 机器人位于m*n的网格中的左上角start,求解走到网格右下角finish的移动路径 动规五部曲 1)dp数组的含义以及下标i的含义 dp[i][j]:从start(0,0&…

继承性和多态性实验

继承性和多态性实验 一、实验题目二、实验目的三、实验内容与实现1:【实验内容】2:【实验实现】雇员类(Employee)的实现,如下图所示:2:经理类(Manager)的实现,如下图所示…

Feast:概念

实体 实体是语义相关特征的集合。用户定义实体以映射其用例的领域。 例如,打车车服务可以将客户和司机作为实体,这些实体将相关特征分组,对应于这些客户和司机。 driver Entity(namedriver, join_keys[driver_id]) # 司机实体 customer E…

⑨【Stream】Redis流是什么?怎么用?: Stream [使用手册]

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ ⑨Redis Stream基本操作命令汇总 一、Redis流 …

系列十六、Spring IOC容器的扩展点

一、概述 Spring IOC容器的扩展点是指在IOC加载的过程中,如何对即将要创建的bean进行扩展。 二、扩展点 2.1、BeanDefinitionRegistryPostProcessor 2.1.1、概述 BeanDefinitionRegistryPostProcessor是bean定义的后置处理器,在BeanDefinition加载后&a…

HarmonyOS应用开发者高级认证【题库答案】

HarmonyOS应用开发者基础认证【题库答案】 一、判断题 云函数打包完成后,需要到AppGallery Connect创建对应函数的触发器才可以在端侧中调用(错)在column和Row容器组件中,aligntems用于设置子组件在主轴方向上的对齐格式&#xf…

BUUCTF [HBNIS2018]低个头 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 得到的 flag 请包上 flag{} 提交。来源: https://github.com/hebtuerror404/CTF_competition_warehouse_2018 密文: 下载附件,得到一个.txt文件。 解题思路: 1、低头…

数字图像处理-Matlab实验

实验一 图像增强 实验内容: 对于给定的低对比度测试图像,利用灰度图像直方图均衡化算法进行图像视觉效果增强。 对于给定的低照度彩色测试图像,结合颜色空间转换和灰度图像直方图均衡化算法进行图像视觉效果增强。 实验数据: Test1_1.jpg: Test1_2.jpg: 实验步骤: %% …

基于ncurse实现的俄罗斯方块

1. 需求分析 方块的类型方块的变形方块的消除方块的存储方块的移动接受用户的输入 2. 概要设计 2.1 方块类型与变形 一共有七种,变换的方式如下。变换后的任意形状方块实际上可以存在一个4x4的矩阵中。 我们再压一下位,就可以存在16位中。 2.2 方块…

python之静态服务器程序开发

文章目录 Python静态Web服务器开发Web静态服务器初识搭建Python自带的静态Web服务器静态Web服务器返回固定页面数据静态Web服务器返回指定页面数据静态Web服务器多任务版静态Web服务器面向对象开发静态Web服务器命令行启动动态绑定端口号 Python静态Web服务器开发 Web静态服务…

求集合的笛卡尔乘积

求集合的笛卡尔乘积 一:【实验目的】二:【实验内容】三:【实验原理】四:代码实现: 一:【实验目的】 通过编实现给定集合A和B的笛卡尔积CAA,DAB,EBA,FAAB,GA(A*B). 二:【实验内容】…

Linux系统常用指令大全(图文详解)

目录 前言 一、UNIX的登录与退出 1、登录 (1)执行格式: (2)步骤 2、退出 二、UNIX命令格式 三、常用命令 1、目录操作 (1)显示目录文件 ls (2)建新目录 …

PgSQL技术内幕-Analyze做的那些事-pg_stat_all_tables

PgSQL技术内幕-Analyze做的那些事-pg_stat_all_tables pg_stat_all_tables视图中记录有analyze信息,比如何时做的analyze、表元组个数(活元组、死元组)等。重启后发现该视图中表的统计信息重置不见了,发生了什么? 1、p…