​启闳半导体科技(江苏)有限公司QiHong Semicon TECHNOLOGY (JIANGSU) CO.,LTD

电子邮箱  
密码      忘记密码?
  注册
特斯拉自研芯片架构带来的启示
来源:半导体行业观察 | 作者:半导体行业观察 | 发布时间: 2022-09-05 | 2140 次浏览 | 分享到:

 

特斯拉并不关心precise exceptions。Dojo 确实具有调试模式,其中更多指令通过pipeline以提供“更精确”的exceptions,但没有像正常无序 CPU 那样的有序退出逻辑。

 

图片
图片

Dojo 的执行引擎

图片
图片

 

在看到一个宽前端之后,看到一个只有两个 ALU 和两个 AGU 的 4 宽整数执行引擎可能会有点奇怪。但是这个漏斗形的流水线是有意义的,因为一些指令是在前端执行和丢弃的。

 

Dojo 也不会进入客户端系统,其中标量整数性能很重要。因此,整数端提供了足够的吞吐量来处理控制流和地址生成,以保持向量和矩阵单元的馈送。

 

Dojo 的向量和矩阵执行端放置在核心pipeline中的标量执行引擎之后,并且有两个执行pipeline。两个pipeline可能听起来不多,但 Dojo 在这些pipeline后面有非常宽的执行单元。一个pipeline可以执行 512 位向量执行,而另一个pipeline执行 8x8x4 矩阵乘法。因此,只要指令公开足够的显式并行性,Dojo 就能够实现非常高的吞吐量——尤其是在使用矩阵单元的情况下。Tesla 声称具有 354 个 Dojo 内核的芯片在 2 GHz 时可以达到 362 BF16 TFLOPS,这表明每个内核每个周期可以执行 512 BF16 FLOPS。

 

我们不确定 Dojo 是否可以完全乱序执行。但特斯拉确实表示,整数端可以在向量端之前运行很远,这表明它可以执行过去停滞的指令,直到其中一个调度程序被填满。缺乏按序引退也指向无序执行能力。

 

通常,实现无序执行会带来很多复杂性。这是因为 CPU 必须按顺序执行指令。AMD、ARM 和 Intel 的高性能 CPU 使用大型重新排序缓冲区(和其他结构)跟踪指令,以便它们的结果可以按程序顺序提交。这意味着如果一个程序做了一些愚蠢的事情,比如除以零,这些内核可以准确地显示出哪条指令出错了。而且,它们可以显示 CPU 状态,该状态反映了故障之前所有指令的动作,但之后没有。这意味着您可以修复导致指令错误的任何原因,并恢复执行。Dojo 放弃了这种能力。作为交换,Dojo 可以避免与通过其pipeline跟踪每条指令相关的功率和面积开销,以确保按程序顺序提交结果。

 

图片
图片

SRAM 访问

图片
图片

 

通常,我们会在这里讨论缓存。但是 Dojo 不能直接访问系统内存,所以我们将讨论 1.25 MB 的 SRAM 块。它每个周期可以处理两个 512 位负载,使其每个周期的带宽与支持 AVX-512 的英特尔 CPU 相匹配。Tesla 表示 SRAM 有五个 512 位端口(2 个加载端口、1 个存储端口和两个到网格停止端口)。但是标量端只有两个 AGU,这可能意味着内核无法在每个周期内承受两个 512 位负载和一个 512 位存储。