文章目录
- 论文阅读----Ten Lessons From Three Generations Shaped Google's TPU V4i
- 1, 论文常见缩写
- 1) Domain Specific Architecture (DSA)
- 2) A custom chip-to-chip interconnect fabric (ICI)
- 3) P99 latency:
- 4) SLA/SLO/SLI
- 5) ISA(Instruction set architecture)
- 6) MLPerf benchmarks 0.5-0.7 :
- 7) High BandWIdth Memory(HBM)
- 8) Itanium's VLIW architecture: Very Long Instruction Word:超长指令集架构
- 9) compiler:
- 10) CMEM: Common Moemory
- 11) performance per TCO(Total cost of ownership) vs Per CapEx
- 2, 总结:
论文阅读----Ten Lessons From Three Generations Shaped Google’s TPU V4i
1, 论文常见缩写
1) Domain Specific Architecture (DSA)
2) A custom chip-to-chip interconnect fabric (ICI)
3) P99 latency:
P99延迟: 一段时间内,所有请求中最快的 99%请求的平均延时,能直观的衡量服务器性能指标.
同理 P95就是快的95%的请求延时.
4) SLA/SLO/SLI
SLA = Service Level Agreement = 服务质量 / 水平协议
SLO = Service-level-objective = 服务质量 / 水平目标
SLI = Service Level Indicator = 服务质量 / 水平指标
5) ISA(Instruction set architecture)
6) MLPerf benchmarks 0.5-0.7 :
- MLPerf Training benchmarks 0.5-0.7 :
- MLPerf Inference benchmarks 0.5-0.7
7) High BandWIdth Memory(HBM)
8) Itanium’s VLIW architecture: Very Long Instruction Word:超长指令集架构
-
安腾(英语:Itanium),是英特尔安腾架构(通常称之为IA-64)的64位处理器,该处理器的市场定位是在于企业服务器与高性能运算系统。该架构由惠普创始,后来则是惠普与英特尔共同开发。
-
安腾的微架构是彻底的不同于其他英特尔处理器采用的x86(包含x86-64)架构。这个架构是建基于显性的指令并发,由编译器来决定哪些指令并发处理。这种方式允许处理器在每个周期最多可以运行6个指令。与超标量架构的不同点,安腾在并发处理中并没有复杂的线路来判断指令依赖性,所以编译器必须要在编译的时候就已经处理妥当。
9) compiler:
-
XLA : Accelerated Linear Algebra : 加速线性代数,是一种针对特定领域的线性代数编译器,能够加快 TensorFlow 模型的运行速度
- XLA将编译任务分成两步:
- High Level Operations(HLO) that are machine independent
- Low Level Operations(LLO) that are machine dependent.
- XLA将编译任务分成两步:
-
CUDA : Computer Unified Device Architecture : 统一计算架构.
- 是NVIDIA推出的一种集成技术, 是对GPGPU (General-purpose computing on graphics processing units, 图形处理单元上的通用计算) 的正式名称.
- 利用CUDA技术,能够将GPU中的多个内处理器串连起来,成为线程处理器去解决数据密集的计算. 而多个处理能能够交换, 同步 和共享数据.
10) CMEM: Common Moemory
11) performance per TCO(Total cost of ownership) vs Per CapEx
CapEx: Capital Expense is the price of an item .
OpEx: Operation Expense is the cost of operation. including electricity consumed and power provisioning(power distribution and cooling).
TCO(Total cost of ownership)
Standard accounting amortizes computer CapEx over 3-5 years, so for 3 years
**TCO = CapEx + 3 ✕ OpEx. **
Google and most companies care more about performance/TCO of production apps (perf/TCO) than raw performance or performance/CapEx (perf/CapEx) of benchmarks.
performance/mm2 can look good even if it’s bad for perf/TCO
TDP(Thermal design power)
总体来说, TCO和TDP具有正向相关性.若无法获得TCO可用TDP.
2, 总结:
如题所示,论文首先介绍了TPUv1,2,3三代产品的总体结构,并据此总结出TPU/GPU设计中的十个经验:
- ①逻辑块增加速度快于连线和SRAM: Logic improves more quickly than wires and SRAM
- TPUv4i has 4 MXUs per core vs 2 for TPUv3 and 1 for TPUv1/v2.
- ②相比从头设计,最好利用已有的编译器做优化 (Leverage existing compiler optimizations )
- TPUv4i evolved from TPUv3 instead of being a brand new ISA.
- ③用perf/TCO 作为设计的参考指标: Design for perf/TCO instead of perf/CapEx
- TDP is low, CMEM/HBM are fast, and the die is not big.
- ④考虑编译器兼容性而不是二进制兼容性,更能促进训练好的DNN的快速部署 : Backwards ML compatibility enables rapid deployment of trained DNNs
- TPUv4i supports bf16 and avoids arithmetic problems by looking like TPUv3 from the XLA compiler’s perspective.
- ⑤气冷更适用于推理DSAs的部署: Inference DSAs need air cooling for global scale
- Its design and 1.0 GHz clock lowers its TDP to 175W.
- ⑥一些用于推理的应用 以及 可能存在的量化操作 需要浮点运算,所以最好支持 bf16和fp32: Some inference apps need floating point arithmetic
- It supports bf16 and int8, so quantization is optional.
- ⑦生产推理通常需要支持同时使用多个应用: Production inference normally needs multi-tenancy
- TPUv4i’s HBM capacity can support multiple tenants.
- ⑧DNN在存储和计算上的年度增长率为 ~1.5倍 : DNNs grow ~1.5x annually in memory and compute
- To support DNN growth, TPUv4i has 4 MXUs, fast on- and off-chip memory, and ICI to link 4 adjacent TPUs.
- ⑨DNN的进步推动 工作负载的进步 : DNN workloads evolve with DNN breakthroughs
- Its programmability and software stack help pace DNNs.
- ⑩ 推理的工作的服务级别的目标是 P99延时,而不是 批量尺寸: The inference SLO is P99 latency, not batch size
- Backwards ML compatible training tailors DNNs to TPUv4i, yielding batch sizes of 8–128 that raise throughput andmeet SLOs. Applications do not restrict batch size.
进而介绍了根据这些经验产生的TPUv4i 产品,及其采用的技术,如
- 采用编译器兼容性而不是二进制兼容性(Compiler compatibility, not binary compatibility),如XLA(Accelerated Linear Algebra)编译器
- 增加了带有**通用内存(CMEM,common memory)**的片上SRAM存储: 扩展了的存储等级结构减少访存次数,降低能耗
- Tensor DMA Engines 能够减轻互连延迟和线路伸缩挑战的影响, TPUV4i 采用4维张量DMA结构(4-dimensional (triple-strided) tensor DMA architecture), 和之前的TPU 芯片是编译器兼容的
- 延迟: TPUv4i统一了跨本地(片上)、远程(片到片)和主机(主机到片和片到主机)传输的DMA体系结构,从而简化了从单个芯片到完整系统的应用程序的扩展。
-
Custom on-chip interconnect(OCI): 定制的片上互连线 : 用于连接片上的组件,可以缩放其拓扑结构,尤其对CMEM很重要, 对HBM, CMEM, VMEM之间的数据传输都有影响
- 采用更宽的数据通路:受到NUMA存储系统 (NUMA memory system) 的启发---- 利用访问的空间局部性来最小化延迟和平分带宽 ---- TPUv4i的设计在同一芯片的各个部分间使用: 较大的高带宽存储器(HBM, CMEM, 和 VMEM) 在物理上被拆分为4组 来优化 HBM的访问.
- Arithmetic improvements: 算法改进: **算术单元(arithmetic unit)**的改进, 为了满足后期可能存在的量化( quantization) 和 向后ML兼容(backwards ML compatibility) 需求, TPUv4i支持 bfloat16 和 fp32 , 并支持 int8 来方便 TPUv1的应用移植过来.
- 通过MXU脉动阵列(systolic array) ,在减少面积和功耗的同时,减小延迟 ---- 对128个两输入的加法器, 用定制的 4输入浮点加法器 和 32个两输入加法器 替换,减少关键路径到原来的1/4
- 采用 Air cooling来保证clock rate 和 TDP, 并采用**2组 ICI(chip-to-chip interconnect fabric)**快速访问一块板子上的4个芯片
- 追踪和性能计数硬件应用(tracing and performance counter hardware features): 分析用户工作负载的系统级瓶颈(system-level bottlenecks in user workloads), 引导连续的编译器级别和应用级别的优化( compiler-level and application-level optimization)
- 增加了CMEM : common memory
- CMEM的主要优势是更高的内存带宽, 增加CMEM相比于 加倍HBM的带宽 更便宜,低功耗,容易.
- used an integer linear programming solver to effectively triple memory space
最后,文章讨论了关于参数和性能评估标准等的选取问题.