专栏名称: 矽说
半导体行业深度解读
目录
相关文章推荐
51好读  ›  专栏  ›  矽说

AI会给芯片设计带来什么?

矽说  · 公众号  · 半导体  · 2017-05-04 09:09

正文

请到「今天看啥」查看全文



同时,异构计算又面临更多的挑战“ The presence of multiple processing elements raises all of the issues involved with homogeneous parallel processing systems, while the level of heterogeneity in the system can introduce non-uniformity in system development, programming practices, and overall system capability . ” 简单来说也就是 不一致性 带来诸多问题。对于异构计算,Nvidia和AMD最早提出了一些标准的方法,主要面向在CPU+GPU的系统,比如CUDA和OpenCL。

目前来看,神经网络的Training使用CPU+GPU的硬件平台比较理想。而对于这类系统,Nvidia的CUDA已经做的很不错了。但对于一个Inference硬件平台来说,异构计算要复杂的多,除了CPU,GPU,系统里很可能还会有DSP,ASP,硬件加速器和FPGA这些硬件模块,以及相应的固件和软件。在这种环境下,如何有效的 发挥各类硬件的效率,提供统一易用的编程模型和软件接口 ,就是个很大的问题。之前的很多尝试,比如OpenCL,HSA(Heterogeneous System Architecture) Foundation,都没能真正解决这个问题。而这个问题能不能解决,既是技术挑战,也有利益上的角力。Intel,Nvidia,AMD,Qualcomm,ARM都有自己的算盘,都想推自己的标准。不管怎样,在AI应用的驱动下,硬件平台的多样性和效率要求的挑战会越来越明显。整个产业对AI的热情能不能推动这个问题的解决,很值得关注。


DSC和DSA(Domain-Specific Computing/Architecture)

在最近的一个演讲中,当回答“ 请问除了之前演讲中提到的以外,还有哪些处理器领域的未来趋势是值得关注的? ”这一问题时,计算机体系结构宗师David Patterson说到,“ 我认为未来之星是深度学习领域的DSA处理器。深度学习的重要性我想在座的都很清楚。另外,使用更高级的设计描述语言,例如Chisel,来加速设计,也会成为趋势。 ”我个人一直关注DSC领域,也基本同意Patterson的看法(Chisel的部分我不予置评)。道理也很简单,神经网络处理是一个新兴的特殊domain,而且是一个有足够体量来支持专门的方法学的domain。换句话说,在这个领域我们值得投入资源来实现一套完善的方法学,一旦成功会有巨大的回报。同时,这条路还很长,我们也还有足够的时间这么做。

不过,Domain-Specific Computing这个方向的提出也不是一天两天了,要实现它的愿景,确实需要做大量的工作 。它是一整套方法学,需要从设计语言到模型和工具的多方面支持。虽说我们都知道“工欲善其事,必先利其器”的道理,但在实践中, 我们 很多时候并没有这个耐心。希望AI能给这个“看起来很美”的方法学一个有力的推动吧。


Dataflow VS Controlflow

严格的说,Dataflow架构本来是计算机体系结构中实现并行计算的一种软硬件架构。有自己一套完整的方法学。下图摘自Shaaban教授的课程[2], 就是dataflow architecture的一个概述。

但是,如果我们看这种架构的主要特征:1. 没有PC(Program Counter),也就是说没有复杂的程序流控制;2. 节点的处理由操作数(availability of operands)激活。简单来说这种架构是 数据驱动 的。这一点和深度神经网络Inference的需求是非常一致的,因为神经网络是分层顺序处理的,有大量的数据处理,但不需要复杂的控制流程。这也是为什么我们现在看到的很多神经网络加速器的主要工作都放在了数据流的优化上。[1]中就指出“ For spatial architectures used in accelerators, we will discuss how dataflows can increase data reuse from low cost memories in the memory hierarchy to reduce energy consumption .” GoogleTPU的脉动阵列 架构,虽然并不是个严格意义上的Dataflow Machine,但它也可是认为dataflow驱动的设计。

同时,Dataflow programming也是一种重要的编程模型。用Wikipedia的说法,就是“ dataflow programming is a programming paradigm that models a program as a directed graph of the data flowing between operations, thus implementing dataflow principles and architecture. ”。而我们知道,Google的TensorFlow深度学习框架就是一个“







请到「今天看啥」查看全文


推荐文章
张佳玮写字的地方  ·  大航海时代,原本可以属于中国呀
7 年前
Anitama讲道理  ·  Anitama新声:没有娱乐的土地
7 年前