后摩尔时代我们的机会在哪里?
source: SC18
“摩尔定律已死”这样的说法我们已经听到很多,不管这么说是不是严谨,摩尔定律的延续非常非常困难是不争的事实。更重要的问题是,在这个背景下,我们该怎么做?这个问题已经有很多讨论,我也有自己的一些思考。正好今天看到黄老板在SC18讲演中的这幅图,正好可以把我的一些想法串起来,不妨和大家分享一下。
我在朋友圈写了下面一段话,可以作为一个摘要:
以前,在摩尔定理作用下,我们可以依赖半导体技术的发展“粗放经营”,很多优化的工作都停留在学术圈。现在失去了这个“红利”,我们必须“精耕细作”:找到合适的架构,合适的方法,合适的精度,进行全栈优化。而这些“细活”都需要更多的时间和精力,能否实现依赖于提高生产效率(productivity)的工具。
首先是找到 合适的架构 ,这个在我的公众号文章里已经讨论的太多了。CPU,GPU,DSP,ASIP,ASIC,FPGA,CGRA等等,我们有各种选择,永远是trade-off。在之前摩尔定律可以给我们10x的性能提升的预期下,对于很多应用来说,不需进行太多权衡。现在,如果我们还想要更强的算力,则必须把目光放到其它选择上,更多的使用专用的架构,构成更高效的异构系统。我们已经看到很多这方面的讨论和各种创新(或者“复古”),就不多说了。
找到 合适的方法 是个有趣也更大的话题,多说几句。在HPC的背景下,这部分主要是在讲仿真和AI的结合。我们知道,HPC的很多典型应用都是大规模的数值仿真,比如天气建模和预测,分子动力学,天体运动等等。而这些工作,需要大量的运算资源,消耗大量时间。过去,随着半导体技术的进步,过一段时间我们就自然能有性能大幅提升的系统,可以运行越大越大的模型。但是,现在这个预期越来越难实现。那么,针对这些应用,是否可以找到更高效的硬件架构呢?如果不改进传统的算法,这条路也很困难。在这个背景的下,AI方法似乎又成了“救世主”。现在很多研究是在传统的数值仿真中使用机器学习的方法,或者把仿真和机器学习相结合。具体来说,可以先用传统的仿真方法来训练神经网络模型,然后使用这个神经网络模型的inference结果来代替数值计算,对特定问题的结果进行预测。训练这个神经网络虽然仍然需要大量运算,但inference的成本则非常低。另一方面,神经网络的运算可以很好的使用专用硬件来加速,这就更进一步提升了整体的效率。其实这个思路适用于HPC之外的领域。一般的说,当我们无法直接找到一个合适的硬件架构来加速特定算法的时候,我们该思考的是 能否找到对硬件更友好的算法 。我之前谈过5G的基带处理用AI方法实现的问题( AI芯片在5G中的机会 ),也可能有类似的收益。当然,无线通信基带处理已经是高度优化的系统,AI方法要击败传统方法难度要大得多。比如,在基带处理中一般都对比特精度做过非常细致的优化。这就引出下一个问题,选择 合适的精度 。
对于实现成本和运算效率来说,减少比特精度的收益是很大的(下图之前贴过)。
source: Graphcore
从目前的实践来看,AI算法和传统HPC算法相比,对精度的要求低得多。因此我们看到很多AI芯片主要强调在FP16或者INT8中的精度。可以说,对目前AI芯硬件效率的提升,低比特精度有很大贡献。在HPC领域,如果结合上面讨论的用神经网络模型替代传统算法的方法,这部分优化的空间也很大。再对比一下通信基带处理,我们通常为了能够减少一个比特而做大量的优化和验证。在一个接收机中,不同的算法模块采用不同的比特是很常见的。当然这种优化有一个前提,就是算法必须定型。在目前AI算法还在不断优化的过程当中,同时 支持多种精度的硬件 就是目前更为合理的选择。
下一个话题是 全栈优化 ,我之前也讨论过。毕竟,如果可能,谁不想实现全栈优化呢?现在,这个话题被越来越多的提及,除了对计算效能的需求越来越高,通过单纯优化软件或者硬件都难以满足这个原因之外,另一个重要原因是,在特定领域,比如AI,确实有实现的可能。全栈优化的难度在于探索空间太大,我们不得不分而治之。而对AI来说,目前基于神经网络的方法有个很好的特征,就是可以用比较规则的硬件进行加速,大大缩小了硬件优化的空间。当然,即便是在特定领域,全栈优化也还是个难题,也许最终还是要靠AI来解决(似乎现在难题都丢给了AI ),但我们总算有信心往前趟趟路。
总得来说,上述这些方向大多还是老生常谈,在过去的几十年有各种各有的研究和实验。但很多相关的工作停留在了学术圈或者研究阶段,而没有大规模的应用。原因主要在下面几个方面:第一是在驱动力方面,或者没有足够的收益,不能提供支持商用的投入产出比;或者没有足够的竞争压力。第二是技术上确实很难实现,比如全栈优化的问题。还有一种情况,我们有一定的驱动力,也知道怎么去做,但就是没办法高效的去做。换句话说,即 生产率(productivity) 太低导致成本太高。如果阻碍我们前进的关键问题为此,那么最可能的结果是 新工具或新的方法学的出现 。各个AI Framework对ML/DL快速发展起到的关键作用就是很好的佐证。其实,黄老板在后面也着重讲了这个问题,赞扬了开源领域的各种工具,当然重点还是CUDA和RAPIDS。要应对AI领域给我们带来的各种新挑战,发明新工具或者改造老工具的需求将会非常旺盛。另一方面,不断强化的AI本身在工具中的应用也会越来越普遍,AutoML就是很好的例子。最终也许会真的实现AI设计AI,AI设计计算机。甚至,也许真的像阿西莫夫的科幻小说所描述的,星际旅行的飞船并不是由人类发明,而是由人类设计的AI(金头脑)所发明。
写到这里,发现题目起的有点大,上面讲的只是几个点而已。不过,如果我们仔细观察,这些点都是相互关联的,结合在一起又可能形成新的机会,这才是最有趣的地方。毕竟,现在是黄金时代嘛。
- 半导体行业观察
- 摩尔芯闻