新AI芯片介绍(1):Groq

≯℡__Kan透↙ 提交于 2020-03-24 11:19:31

3 月,跳不动了?>>>

最近被迫在家干活也出不了门,趁现在把之前听的AI芯片的演讲都总结一下。我先从Groq开始,这个算是最新也最不出名的,但是我觉得潜力很大。主要基于他们的whitepaper 跟之前我拍下来的slides,还有其它的一些比较细的report

https://groq.com/wp-content/uploads/2019/10/Groq_Whitepaper_2019Oct.pdfgroq.com
A Look Inside the Groq Approach to AI Inferencewww.nextplatform.com

Groq的背景是之前TPU的一个TL跳出来自己做的,还有CRAY的人,所以technical还是很强的。我先说我跟Groq没关系啊,所以肯定有一些不是完全准确的信息。废话不多说我们开始跟着whitepaper的逻辑过一遍。

为什么做AI芯片难

市场对于AI运算的需求正在增加,同时业务逻辑也变的越来越复杂。但是如果为了配合越发复杂的逻辑,芯片本身也越来越复杂的话,功耗也会同时增加。对于推理的workload来说,其实这些增加的复杂度本身是没有什么价值的。比如就算GPU本身,也是一开始为了rendering而优化的,也不完全是为了推理而设计的架构(老黄警告)。

Groq的逻辑

Groq这个公司是觉得没有必要搞得这么复杂。这个芯片本身只有数据流,没有逻辑,而是有一个compiler在这个模型开始执行之前就已经把所有的核的数据都安排好了。

All execution planning happens in software, freeing up valuable silicon space for additional processing capabilities. The tight control provided by this architecture leads to the deployment of better and faster models using industry standard frameworks and results in fast and predictable performance on current and future workloads

这种架构有一个神奇的好处:你完完全全知道这个模型的latency,而且是完全determinstic的,而且可以放更多的计算在这个芯片上面,而且也没有stall了。

The Groq compiler orchestrates everything: Data flows into the chip and is plugged in at the right time and the right place to make sure calculations occur immediately, with no stalls.
This allows Groq’s chip performance to be deterministic. The compiler reconfigures the hardware dynamically to perform each calculation so there is no abstraction between the compiler and the chip.

对于quantization来说,这个芯片是支持fp16的,因为不是所有的模型都能lower到int8。

“Many of the models we see are difficult to quantize to INT-8. Things like LSTM and RNNs really prefer floating point.”

这个芯片还是聚焦在推理的,训练也是可以,但是我觉得训练需要大量的内存而这个芯片不太能支持,不然还得搞各种的RDMA之类的东西。

之前在MLSys看到的一些细节

下面是我之前看他们讲的时候的细节。这个芯片只有on die的内存,只有data flow,没有program counter,全部所有每个core要执行什么都是事先根据一个时钟规划好的。这个想法还是非常先进大胆的。

这个是他们的roofline跟TPU1 的比较,可以看到运算量大概是TPU1的8倍左右,而且memory bandwidth也高的多。

Groq是没有control flow而只有data flow。这个是因为逻辑的功耗非常的高。数据基本上也没有buffer,除了要跟其它芯片或者外部sync的部分。大致芯片烧出来的时候有21条这种逻辑的线路,如果有一定概率某一条坏掉的话就禁掉,是一种增加yield的方式。



Groq对于batch 1 的优化非常的重视,因为如果为了batch size变得更大才开始计算的话,latency会受影响。

个人感想

我觉得这个设计还是非常新颖的,我主要没想出来以后要是模型内部越来越复杂,那该怎么办。特别是完全没有control flow的这个特性,我觉得肯定是有一类模型特别适合他们,但是这个市场多大我觉得非常的难说。然后这个芯片全部都是on die 我觉得只适合计算密度特别大的workload,也只有图片了,recommendation system肯定也可以用但是绝对会卡在PCIE而不能完全利用这个芯片上面。之前说为了LSTM和RNN要FP16,但是这些以后会有越来越多类似control flow的逻辑,所以我觉得还是挺怪的。现在市面上也没有太多公开的信息,以后有更多的东西了之后我会回来更新的。欢迎大家留言交流。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!