本文来自知乎mackler,作者是清华计算机博士,其中是他对于DSA和AI软件栈问题的思考,文章很有洞察力,写得非常棒。
开个新系列,聊一聊专用架构和AI软件栈的问题。这个题目比较大,涉及面非常广,和之前的文章一样,我一般观点都比较激进,对于现有方法的缺点一般是毫不掩饰,各位看官请酌情食用,另外我也会抛出一些全新的解决思路。
这篇文章主要先聊硬件,AI软件栈的复杂性和根本性难题其实主要来源于硬件。如果硬件只是GPU,尤其是是Volta架构之前的GPU,其实AI软件栈根本不用这么复杂,所以我们先来讲讲硬件架构,也是我的老本行。
体系结构领域大的创新其实已经停滞了很多年了,虽然说这么多年硬件的提升一半是靠摩尔定律,一半是靠体系结构革新,作为一个做arch的,我原先也非常相信arch在其中的作用。但实际情况是,arch的“创新”其实很大程度依赖于工艺的演进。arch领域最近几年最常见的论调是摩尔定律要完蛋了,arch即将成为硬件性能的主要推动力,似乎未来架构要在工艺不变的情况下纯靠架构演进原地起飞。实际并不是,脱离了工艺的演进,架构带来收益非常困难!
架构的收益其实更多是工艺演进时,新约束下新tradeoff带来的超额收益。以前我也不明白这一点,因为理论上讲,架构只是电路逻辑,什么工艺下都可以做。但实际上工艺可以打开设计的空间,因为相同的面积功耗限制下,新工艺可以放更多的逻辑,我们就可以把原有架构的各个部分超级加倍,比如cache变大,发射数增大。但随之而来原先架构不突出的问题可能就变得明显,此时就需要调整架构,比如cache太大了就可以再加一级,利用率可以更高,从而获得超额的提升(相比简单根据工艺scale)。所以本质上讲,不同工艺带来的不同约束下,架构设计是有不同tradeoff选择的,所谓架构收益更多是这种新tradeoff带来的超额提升。但如果约束保持不变,其实最佳的tradeoff很快就收敛了,后面想继续靠arch压榨出更多性能就非常困难了。


