文章目录[隐藏]
Nvidia has a lot of talented architects, like Michael Andersch and Gregg Palmer, to design GPU. But Grace is just a glued arm GPU, shameful! But I don't think the idea of launching Grace is just an armv9 CPU, Nvidia has integrated TEE, CCA, UCIe into the CPU, and NVLink C2C, which is great. Nvidia is for real good at turning all the tech into business.
A100 is slow and lower in data bandwidth transmission
When training is going to exascale, models like Transformer require more data transmission.
SM arch
DPX 是一个做图动归 fusion 的指令集,又是一个利用 TMA 协处理器算 locality 传数据减少 op 数。
FP 8 implementation
FPA 会先让 FP8 填 FP32 寄存器,再做 bias/act/. 等操作, output matrix 是随意 type 的 matrix。
后半部分实现是协处理器动态算下一层要的结果,自动乘scalar拿到不同的format matrix,我的concern是精度还是有很大损失,毕竟信息是后验的。但好像只支持 FPA 的输出,所以还好。
FP8 inference after training 是 trivial 的。
HBM3
Sk Hynix is doing well to deliver HBM3.
Asynchronization
又开始说 Pim/SmartNIC 的逻辑了,协处理器算 data locality,做schedule。
首先引入一个新的 hierarchy Thread Block Clusters。再加一个 SM to SM Network,然后 每个划的 GPC MESI(后面说使用 Asynchronized Transactional Barrier,内存状态少几个)。
SM-SM 整合出来 DSMem,7x 于 Global Memory 绕一圈。
三个 intrinsic 对比 a100,wait是用spin blocking,做global poll,其他两个non-blocking。
H100 加了 SMem 的 transactional memory,除了对普通threading支持外,memcpy都是atomic 且自带 barrier的。
e.g. 内部 block 要做 reduce, Transaction Bar 会 hold 其他 block 发起的 ATB 一起接受。不用等两次 spin lock。
Copy Descriptor 先行,TMA gen一个 MemoryRegion,然后 asynchronize 的做Transaction,thread 会在 transaction 结束后同步 spawn。
异步的作用是利用 HBM3 的带宽,减少资源间的忙等。这也是由于内存速度上去以后减少软件开销的一种sw-hw co-design 尝试。
Nvlink
faster all to all performance
实现是 src VA 在对面的 des GPU PA 上 register mapped space 做 RDMA,map 好了那边的 GPU 就已经可以 poll 了。是不是交易所交换机也可以做类似的事呢?
Multi-Tenant Heterogeneous support。
Secured MIG
GPU Memory 之间的传输也是需要 Enclave 认证的。
看上去 hypervisor 驱动也重写了。支持 SR-IOV,