DSA
DSA(domain-specific architecture):特定领域架构(DSA)是一种可编程计算机架构,专门用于在特定应用领域内高效运行。该术语通常用于与通用架构(如 CPU)形成对比,后者可在任何计算机程序上运行
人工智能是 DSA 取得最大成功的应用领域之一。特别是,为加速深度神经网络(DNN),已经开发了几种架构。在下面的章节中,我们将介绍一些实例
- TPU
- Microsoft Catapult
- NVDLA
- …
Chip
按照单位计算的复杂度,处理器平台大致分为CPU、协处理器、GPU、FPGA、ASIC。从左往右,单位计算越来越复杂,灵活性越来越低。也即是说CPU具有最高的灵活性以及相对最低的性能;而ASIC则具有最高的性能以及相对最低的灵活性。
如果一个任务在CPU运行,则认为为此任务为软件运行;如果一个任务在协处理器、GPU、FPGA或ASIC运行,则认为此任务是硬件加速运行。而通常除CPU之外,其他处理器都不是图灵完备的,因此异构计算通常是CPU+xPU的架构(GPU是图灵完备的,主要看指令流能否跳转),也即异构计算是软件和硬件加速协同运行。
国产GPU厂商
国产FPGA厂商
国产CPU厂商
国产ASIC厂商
IT行业发展太快,唯一不变的只有“更加快速的变化”。基本上2年一个行业热点技术方向,云计算、大数据、物联网、人工智能、区块链、自动驾驶、5G等新的场景或技术在持续不断的推进着信息技术的迅猛向前。
趋势
(1)以TPU为代表的DSA兴起
2017年图灵奖获得者John M. Hennessy和David A. Patterson认为,随着CPU的性能增加越来越缓慢,未来十年将是体系结构的黄金年代,通过DSA(Domain Specific Architecture,特定领域架构)的设计,可以进一步提升性能。
DSA是一种ASIC(相比CPU、协处理器、GPU、FPGA),是在传统ASIC基础上向灵活性的一种回调。例如谷歌TPU,支持一些简单的特定指令集,可以通过软件编程,但本质上是ASIC的一种变种。DSA因为其灵活性,相比ASIC能够覆盖相对更多的场景,实现定制设计成本和性能的兼顾。
(2)单芯片多种架构处理器共存
未来芯片设计规模越来越大,单芯片集成更多架构的处理器成为一种非常常见的设计,也可以称为,多异构混合计算。如何驾驭如此复杂的异构混合计算平台,如何实现更友好的软件编程能力,则成为一个尤为重要的事情。
英特尔推出的One API是一个统一的软件架构,希望能够跨硬件、跨厂商地把不同硬件加速能力统一。OneAPI可以支持CPU、GPU、FPGA以及AI加速等类DSA处理器。
(3)基于容器虚拟化的云原生
近些年来,随着Docker和Kubernetes的快速流行,云原生的概念深入人心。容器相比虚拟化具有更轻量的安全封装,更小的运行实体粒度以及更多产品服务的相互配合。
表现在硬件上,容器场景对迁移的需求相对不高,但对硬件更细粒度的虚拟化要求非常之高,并且,其灵活性对接口弹性的要求也非常之高,与此同时,会产生更多的东西向流量以及对网络延迟的敏感等。
(4)云计算业务和管理分离
云最典型的特征是多租户,基于多租户的视角,可以把云简单的分为业务和管理两个层次。在传统计算机虚拟化架构里,业务层也即虚拟机,而管理层则为宿主机,业务和管理共存于CPU运行。
AWS的NITRO系统,创造性的架构重构,把业务和管理分离到两个硬件实体中,业务运行在CPU,而管理则运行在NITRO芯片中。这个趋势最本质的价值在于硬件加速提升性能,而最大的价值则是业务和管理完全分离,提高了安全性。
在云的场景组织下,不再是传统如硬件设备级的资源映射,而是更细粒度级的服务调用映射,庞大系统解构的同时多租户、多系统、多服务共存。
站在硬件加速的角度,CPU的性能瓶颈需要更多专用DSA来加速,而云的场景下则需要更多灵活性的资源及任务调度,甚至是跨CPU、跨异构处理器平台的调度。如何平衡硬件性能和软件灵活性,则是需要重点考虑的事情。
CGRA
可重构计算(CGRA)是一种计算机架构,通过使用非常灵活的高速计算结构(如现场可编程门阵列(FPGA))进行处理,将软件的某些灵活性与硬件的高性能结合起来。与使用普通微处理器相比,其主要区别在于,除了控制流之外,还能对数据路径本身进行重大更改。另一方面,与定制硬件(即特定应用集成电路(ASIC))的主要区别在于,可以通过在可重构结构上 "加载 "新电路,在运行时调整硬件。
与传统ASIC相比,CGRA提供了更高的灵活性和可重构性,使其在某些计算密集型应用中具有优势。然而,由于CGRA仍然是专门定制的硬件,它在设计和制造方面的成本通常仍然较高。