今天我们来看tenstorrent的芯片,这个是一个比较新的startup,没有什么正儿八经的paper,但是我们可以从各个地方搜集来的信息看这个芯片的细节
https://www.tenstorrent.com/wp-content/uploads/2020/04/Tenstorrent-Scales-AI-Performance.pdf www.tenstorrent.comTenstorrent主要的产品是这些
Tenstorrentt跟其他架构最大的差别在于MAC核的数量。Tenstorrent有整整120个核,这些核都比我们之前接触的TPU、含光或者Groq要来的小的多,大概架构长这样:
这个图片里面紫色的CPU不是我们电脑上面的CPU,而是一个很小的RISC的核。小核有一个很大的优势,就是conditional computation。这个芯片相对别的玩家来说TDP要低。
At a peak rate of 368 TOPS, the chip runs on just 65W
一个小核里面总数大概是一千个int8 的MAC(比如32*32),不过他们也支持fp16跟bf16
Tenstorrent withheld further details, but to achieve the 3-TOPS rating, the tensor engine likely contains about a thousand 8-bit MAC units
他们也支持类似rowwise的quantization,一组数字共享scale
To save memory space, the design implements a block FP format in which groups of 16 values share the same 8-bit exponent. Tensix defines block FP formats with 8-, 4-, or 2- bit mantissas, trading off throughput for precision. Once the core loads values from memory, it expands them to FP16 before any computation.
有这些能工作的小核了之后,我们就可以把这些小核串起来。
四个Synopsys ARC CPU来负责组织120个小核的工作,总共16G DRAM跟16x PCIE。还有注意这些内存是LPDDR,肯定不能跟TPU或者Volta的HBM比较。这些小核之间的通信也有模块的
Although the compute unit can operate only on the local memory, each core can easily access data in other cores using the network-on-a-chip (NoC) interconnect.
这里的NoC大致业务逻辑如下图
所以这个NoC类似TPU的ICI,但是我看主要侧重于芯片内部的沟通,而且应该小的多,所以估计没有TPU之类的特别复杂的routing的逻辑,也做不了不同chip之前的沟通。NoC还负责压缩,看描述应该是varint类似的压缩方式
The packet engine implements hardware data compression. It compresses data before transferring it across the NoC. Depending on the number of zeroes in the data, this compression typically shrinks the data by 50–75%, but the percentage can be even greater on sparse data.
连接方式是2D torus,之前在TPU那边有介绍,只是这里的2D Torus是小核之间,而之前TPU是卡跟卡之间
并行方面,Tenstorrent需要的逻辑相对来说比其他芯片来说复杂的多。这种多核场景里面并行处理的上线肯定比几个大核来的多,但是肯定需要compiler更复杂的配合。视频里给了一个例子
软件层来说onnx或者pytorch作为前端都行
可以看到我之前讲的需要compiler复杂的配合。这个现在ppt做的很漂亮,我估计compiler的代码会非常复杂,需要各种不同的计划执行方式来优化不同的模型。
Tenstorrent跟Grop核Titan相对来说的比较:
IPS/Watt 大概是这样的,可以看一下含光还是最高,但是Tenstorrent相对来说还是很好的。而且含光为了convolution我记得是有特殊的优化的,不单纯是systolic array。
对于啥时候能卖,文章里面说大概2021年。
个人感想
这个多核的架构在Tenstorrent这边说的很好,但是其实之前TPU的paper里面也讨论过了大核跟小核的架构优劣,不熟悉的可以看一下我之前的总结
陈宇飞:新AI芯片介绍(2): TPUv2/v3 zhuanlan.zhihu.comTPUv3的文章里面有提到,
Sixteen 64x64 MXUs would have a little higher utilization (38%–52%) but would need more area. The reason is the MXU area is determined either by the logic for the multipliers or by the wires on its perimeter for the inputs, outputs, and control. In our technology, for 128x128 and larger the MXU's area is limited by the multipliers but area for 64x64 and smaller MXUs is limited by the I/O and control wires.
所以相对来说并不是core越小越好,要具体问题具体看。对于我来说,太小的core其实优势不一定明显,特别是大公司推荐系统或者图像处理,应为实在batch size不够凑可以不同的访问coalesce起来。当然在汽车上面这个假设不一定成立,但是云端的话还是成立的。
小core还有一个令人担心的地方是,鉴于并行优化非常的重要,小core是不是能够适用于多种模型,这个是有待市场验证的。
不过优势还是很明显的,conditional作为一个功能本身绝对是一个特别好的创新。其实conditional 在现在的模型里面不是特别的常见,我觉得很大一个原因是硬件本身支持的不好,所以也省不下来什么,最常见的类似conditional的逻辑还是Mixture of expert,但是这个granularity相对来说就大的多。以后这类支持conditional的硬件出来的越多,越能帮助做模型的人创新。还是期待Tenstorrent可以卖了之后给大家带来什么样的惊喜吧。
来源:oschina
链接:https://my.oschina.net/u/4295775/blog/4336905