🖥️体系结构 ETH 2024笔记

type
status
date
slug
summary
tags
category
icon
password
AI summary

什么是Computer Architecture?

notion image
notion image
传统的Computer Arch只包括中间两层: SW/HW Interface和Micro-architecture,但是现在为了效率,性能必须将整个视野拓宽,必须软硬件协同设计

设计目标

notion image
Compute Arch的目标:
  1. 性能
  1. 能效
  1. 性能/能效 比

Different Platforms, Different Goals

脉动阵列:用于矩阵乘法的架构, TPU用的架构 现在的公司认为自己可以定制硬件可以更匹配他们的软件栈,也可以调整软件来适应硬件,实现软硬件协同设计,提升性能,降低总拥有成本。
notion image
  • 模型变得越来越大,单个GPU无法满足,因此需要多个GPU配合,多GPU之间的bandwidth/latency往往成为瓶颈,因此GPU相互连接变得非常重要 - NvLink
  • 就是在GPU内部,也有很多互连 - NOC
notion image
  • Cerebras 晶圆大小的芯片
    • 非常多的核心
    • 大芯片更容易出错(物理上),需要有机制绕过这些错误的部分
    • 只有45G SRAM,相对它的面积来说,小了 ^270795
  • 存内计算 Opmem公司。 每个dram bank旁边放一个通用处理器
  • 三星。在DRAM旁边放了acceclerator,可以在数据不移出DRAM的情况,作mma
  • alibaba,类似的,在每个bank旁边都有一个Processor
  • 和HBM紧密相连的FPGA
  • 3D-Stack技术,在DRAM下面放处理器,不需要将数据搬远离DRAM。 3D-DRAM
  • Specialize as much as possibile,也就意味着更难拥抱变化。 就像我前司的芯片。LLM改变了一切。
追求的目标:
  • 鲁棒性,防止不可预见的后果,因为这些芯片将被用在各个场景做决策。
    • 在未来会更重要,因为将在很多重要场景下被使用。航天....
  • 可持续于高能效
  • 基因组分析也是一个数据增长极快的领域
  • 应用领域和使用场景决定了如何设计架构,通用处理器是一种浪费.
  • 摩尔定律。慢慢失效
  • scaling law: 缩小晶体管的大小,可以降低晶体管的激活电压,同时可以降低能效。但是这一趋势已经停止,因为我们已经达到物理极限。
  • 这使得架构方面的工作更重要
notion image
notion image
  • 作为架构师
    • 往下需要考虑采用哪些技术,会面临哪些挑战。
    • 往上需要考虑芯片上跑得什么程序, 五年后跑的又是什么程序
    • notion image
  • 即使上层和下层都没有改变,把中间做好,让上层和下层沟通更流畅,也能带来很大提升。

什么限制了我们的计算?

notion image
  • memory and communication

Memory and Storage

Why is memory important?

  • perfmance
  • energy
  • scaling challenge(物理极限)
notion image
  • 超过95%的面积用于存储和移动数据
  • 对于AI,数据的增长速度超过计算的增长速度
  • 低精度,同时减少了数据搬运同时也减小了计算单元的复杂度. GPU中,从fp32 -> fp16 -> fp8, even fp4
  • 对于 数据库,基因组测序多个领域,都是memory 瓶颈
  • memory system的现状
    • DRAM不能满足所有需求
    • 出现了一些关于memory的新技术,比如持久化的memory + storage Major Trends:
  • more capacity, bandwidth
    • 数据密集的应用
    • 多核
  • main memory is key design concern
  • DRAM 技术的scaling趋于停止
notion image
  • 计算核心scaling相比memory来说更简单
    • 意味着memory capacity per core实在下降的
    • 带宽和延迟更甚
  • 曾经对memory的指标是成本,一个单位面积能放小多少晶体管
  • amdahl定律, 能够完美并行的程序不存在,因此latency也很重要
    • 如果只有50%的能并行,无限多的core,也只能提速2倍
  • 容量和延迟的trade off
    • 要latency低,走线就需要更短,更直
    • 走线更短,更直,就没法走更多的线
  • latency的存在使得我们为系统增加了很多复杂性
    • prefetch
    • pipeline
    • notion image
  • 处理器基本都在等数据
  • 3d 堆叠
notion image
  • 移动设备65%能耗来自memory
  • 大型边缘设备中,90%的能耗来自memory
  • 电容为了保持retention time,不能过小,如果过小,就会需要频繁刷新,能耗就会提升.
  • 增加chip的density,故障率也就更高 (scaling)
新技术:
Type of Memory
Characteristics
3D-Stacked DRAM
高带宽
小容量
Reduced-Latency DRAM
低时延
高成本
Low-Power DRAM
低功耗
高成本,高时延
Non-Volatile Memory
大容量
高时延
notion image
  • 多核共享memory,会有复杂的一致性问题需要解决, 可能由memory controller解决
notion image
  • 异构系统中,不同的processor共享DRAM,也需要memory controller解决很多问题
    • cpu对latency非常敏感
    • gpu对latency相对没那么敏感,可以通过切换wrap来缓解问题
    • notion image

How Do We Solve The Memory Problem

  • 更加只能的memory / controller
  • 消灭它,不用dram
  • 拥抱,设计精妙异构系统,使得能够享受到不同部分的好处,而不享受坏处
Solution 1: New Memory Arch
  • memory-centric system design Solution 2: Emergiing Memory Tech
  • 新的memory技术(物理上的),比DRAM更好的方案 Solution 3: Hybrid Memory System
notion image
notion image
  • Data-aware的DRAM
  • 针对DNN,考虑到其对错误的容忍程度相对其它应用较高,可以设计低功耗,低时延,但是更容易出现错误的DRAM.
notion image

当前computing arch

notion image
  • 在数据这块很糟糕:
    • 存储数据和搬运数据都是为了计算
    • 是processor-centric ,而不是 data-centric
  • 没有利用大量数据的优势
    • 设计是Human-driven 而不是 data-driven
  • 对应用数据不感知,(EDEN就是数据感知的)
notion image
  • 数据感知的arch,应该对在上面跑的应用有更多的考虑,比如稀疏性呀,或者关键计算(attention的softmax)
notion image
  • 预取:提前将数据取到cache/reg,而不是等到真正需要计算用到时候,再发现cache miss。
notion image
  • corss-layer协同优化,软件可以将计算/存储的一些特性,告诉硬件,硬件拥有了更多信息,可以做更智能的动作。
notion image
notion image

Simulating (Memory) Systems

Ramulator

Memory-Centric Computing

The Problem

Processing of data is performed far away from the data 现在的数据量超过我们现在的 storage/memory 能力,communication能力

A New Paradigm

  • enable computation with minimal data movememnt
  • 在data所在的地方进行compute
  • 让整个架构更加的data-centric

Processing-in-Memory Landscape Today

  • 将processor放在dram旁边,甚至每个dram bank旁边都放一个processor
  • CXL-Memory

Two Approaches:

  1. Processing near Memory
      • 本质上processor和memory依然是独立的两个部件
  1. Processing using Memory
      • 设计拥有计算能力的memory

Today's Systems: Bulk Data Copy

notion image
上图描述了一个memcpy。将白色的一个page拷贝到灰色。数据走向: DRAM -> memory controller -> L3 -> L2 -> L1 -> CPU -> ...... -> L3 -> memory controller -> DRAM (即使用DMA, 至少也需要到memory controller)
  1. 高时延
  1. 带宽占用高,4. 冗余的数据搬运
  1. cache 污染,因为数据会走cache 过一遍

Future Systems: In-Memory Copy

为什么不直接在memory本身里面做呢
notion image
  1. low latency
  1. 不占用带宽,没有额外搬运
  1. 没有cache污染 并且更快,能耗更低
RowClone: In-DRAM Row Copy
 
notion image
notion image
Row A -> Row Buffer -> Row B 这个可以通过一些黑魔法改造成品DRAM实现。 Row-Clone: Inter-Bank
 
notion image
notion image
bank间的数据直接拷贝:
  1. bank A 读模式
  1. band B 写模式
  1. A的数据通过bank 间互连的总线,直接给到B 目前还没有这样的DRAM
Low-Cost Inter-Linked Subarrays
notion image

In-DRAM AND/OR

notion image
memory内的and/or逻辑
 

SIMDRAM 框架

notion image
左边是用户的通用逻辑 中间是针对SIMDRAM的指令 - ACT 激活一行 - PRE, Precharge, 关闭当前活跃行并清理缓冲区... 这些指令由memory controller执行发送给DRAM

PUD System

Processing-In-System 最大的问题是DRAM的访问粒度太大且相对固定。 ^5fcaff
  1. SIMD利用率低,因为很多使用我们的计算需要的SIMDA计算规模没浙大,就需要进行mask
  1. col之间的计算很难
  1. 编程模型的挑战
notion image
notion image
理想情况:程序员只用写high-level的kernel,剩下的分析和代码生成工作交给compiler去完成

MIMDRAM

notion image
  • 更小的粒度,在subarray的粒度上操作DRAM,而不是Row
  • 不同数据执行不同的命令 Multi-Inst-Multi-Data
  • 更低level的数据交流,
  • 更好的可编程性,当前向量化ISA的指令位宽已经由512,比如AVX512
notion image
compiler分析出可以向量化的部分, 生成MIMDRAM指令
notion image

Other work

notion image
现在的DRAM其实也有一定程度上的计算能力,通过一些黑魔法,比如连续快速令激活两个相邻行,或者改变电压。 有能力,不代表可以编程,并且成功率不是100%。

DRAM还能做什么

  1. 随机数生成,超过DRAM设置的安全访问间隙就去访问指定位置,存在物理上的随机性
  1. 不可能克隆函数,上面提到的随机性,对于每一片DRAM都有各自独特且固定的pattern,这可能是由工艺,各种因素导致的,可作为设备独一无二的签名。
  1. 把DRAM当作look-up table

其他类型的memory呢?

也存在类似的工作

存内 Crossbar 计算

notion image
利用基尔霍夫定律进行gemv计算, 电阻阻值是weight, 电压是输入,电流是结果
notion image

Processing near Memory

notion image
 
  • 3D堆叠, 将logic放在DRAM上方
notion image
Prev
DeepSeek-v3 模型笔记
Next
torch memory planning
Loading...