混合架构加速AI、视觉工作负载
一种新型的混合数据流和Von Neumann架构可以加速包括神经网络、机器学习、计算机视觉、DSP和基本线性代数子程序在内的工作负载。 硅谷初创公司Quadric开发了一款加速器,旨在为机器人、工厂自动化和医疗成像等边缘设备加速人工智能和标...
一种新型的混合数据流和Von Neumann架构可以加速包括神经网络、机器学习、计算机视觉、DSP和基本线性代数子程序在内的工作负载。
硅谷初创公司Quadric开发了一款加速器,旨在为机器人、工厂自动化和医疗成像等边缘设备加速人工智能和标准计算机视觉算法的工作负载。该公司的硬件架构是一种新颖的混合数据流和Von Neumann设计,可以处理包括神经网络、机器学习、计算机视觉、DSP和基本线性代数子程序在内的工作负载。
Quadric首席执行官Veerbhan Kheterpal告诉记者:“从一开始,我们就非常清楚,人工智能并不是边缘设备上设备计算所需的唯一应用。”EE时间“这些产品的开发人员需要整个系统能够运行经典的高性能计算算法和人工智能。这才是真正的全系统要求。”
Kheterpal强调,该体系结构不是针对单个工作负载的加速器的集合。相反,它是一个统一的体系结构,具有数据并行指令集,旨在加速各种工作负载,包括人工智能推理。
Quadric首席产品官Daniel Firu表示:“人工智能最近的发展趋势是,用快速傅立叶变换(FFT)取代整个层。”。Quadric将自己定位为加速这些类型的工作负载,并引用了最近的论文来自谷歌的研究人员通过用FFT替换一些层来加速变压器网络。谷歌用FFT取代了变压器编码器的自注意子层,生成了一个在BERT基准上达到92%准确率的网络;在GPU上的训练速度高达7倍,在谷歌TPU上的速度高达2倍。
<img data-lazy-fallback="1" decoding="async" src="https://uploads.9icnet.com/images/aritcle/20230419/Quadric-Dev-kit-m2.jpg">
Quadric的开发套件,一个带有Q16处理器和4GB外部存储器的M.2卡(来源:Quadric)
葡萄园机器人
Quadric的三位联合创始人Veerbhan Kheterpal、Daniel Firu和Nigel Drego之前创立了21,这是一家比特币矿业公司,出售给了Coinbase。加利福尼亚州伯林盖姆的Quadric公司一开始并没有设计芯片。相反,它最初制造了农业机器人,可以在纳帕谷的葡萄园里走来走去,观察葡萄藤,并在看到灌溉泄漏或害虫时发出警报。
<img data-lazy-fallback="1" decoding="async" src="https://uploads.9icnet.com/images/aritcle/20230419/Quadric-Veerbhan-Kheterpal.jpg">
Veerbhan Kheterpal(资料来源:Quadric)
Kheterpal说:“当我们建造它时,我们意识到它不会是一个以5到1万美元的价格从无人机供应链建造的可行产品。”。“它必须由价值5万美元的拖拉机供应链建造,并携带带有GPU和大量摄像头的大型个人电脑。就在那时,我们开始研究所有机器人软件的背后,发现是什么从根本上导致了这种能源需求随着英伟达和英特尔等平台的发展而上升。”
该公司转而制造加速器芯片——菲鲁表示,这是“我们希望拥有的芯片”。
2017年启动了一轮种子融资,随后是一轮A轮融资,从包括Quadric的主要投资者日本汽车一级电装在内的潜在客户那里获得了1300万美元。Quadric的总资金为1800万美元。
图灵完备性
Quadric采用了一种指令驱动的体系结构,该体系结构从数据流体系结构中提取元素,并将它们与冯·诺依曼机器的元素相结合。其目的是用不那么复杂的东西取代边缘设备中的异构系统。该公司声称,作为图灵整机,Quadric Vortex核心提供了加速度和灵活性的结合。该体系结构在核心阵列方面是可扩展的,并可移植到高级(7或5纳米)工艺节点。这适合于功率预算在大约数百毫瓦到20W之间的边缘设备应用。
该公司的第一款芯片Q16是一个由16 x 16个Vortex内核组成的阵列。每个核心都有能力执行矩阵乘法和AI计算,但每个核心也有一个多功能ALU,用于and、OR、归约、移位等操作。软件允许开发人员表达各种算法类型,包括LSTM激活函数等。If Then-Else语句可用于整个阵列,使开发人员能够利用细粒度的稀疏性。
阵列中的每个核心都可以对其相邻核心进行单周期访问,再加上对4Kb的核心内存储器的单周期访问。片上存储器也包括在阵列旁边,为核心提供低延迟、确定性的访问。
核心以Quadric所说的“单指令、多解码”方式并行操作;每个核心在每个循环中得到相同的指令。但基于运行时的动态数据,每个内核可以对该指令进行不同的解释。这允许核心或核心组执行稍微不同的功能。
还包括一个专用的广播总线,它可以优化阵列的带宽,并可用于一次向所有核心广播常数,如神经网络权重(Firu说,许多计算机视觉算法也有一些环路不变信息,可以映射到总线上)。
动态信息通过静态的、软件控制的负载存储单元进入阵列,这些单元允许确定的内核运行时间。该设备允许从设备的任意两个边缘同时加载和存储,加上一个边缘的特殊属性,可用于发送神经网络权重——从两个边缘加载和从第三个边缘同时存储可以减少计算执行运行时间。
<img data-lazy-fallback="1" decoding="async" src="https://uploads.9icnet.com/images/aritcle/20230419/Quadric-Daniel-Firu.jpg">
Daniel Firu(资料来源:Quadric)
菲鲁说:“你可以把东西装到一边,然后从垂直的一边储存。”。“这允许在软件级别发生一些非常有趣的事情。你也可以开始使用这种范式来做数据重映射和图像旋转之类的事情。”
同时,片上软件控制的静态存储器(而非高速缓存)为大型数据结构提供了空间。Quadric允许API访问这些数据,因此开发人员可以在其中定义任意的数据结构。Firu说,在Q16芯片中,存储器为8GB,足以容纳“两到三个高清帧缓冲区,或者整个权重神经网络”。
软件堆栈
Quadric在硅之前就建立了软件堆栈。Kheterpal说,客户已经将其与该公司的架构模拟器或FPGA一起使用了一年。Quadric的堆栈通过一个基于LLVM的编译器抽象出了体系结构和指令集,上面有一个C++API。
源代码模式支持不同的数据并行算法,具有对处理器体系结构功能的源代码级C++控制。随着神经网络变得越来越复杂,Source Mode也允许开发人员表达自定义操作。
<img data-lazy-fallback="1" decoding="async" src="https://uploads.9icnet.com/images/aritcle/20230419/Quadric-software-stack.jpg">
Quadric的软件堆栈(来源:Quadric)
堆栈的未来更新将提供无代码图形模式,该模式将支持TensorFlow或ONNX版本的神经网络。这将包括一个基于TVM的深度神经网络(DNN)编译器,它可以自动生成代码。
Kheterpal说:“我们将无代码的功能与拥有自己的自定义代码的灵活性相结合,并以有趣的方式将它们结合起来,以实现您的应用程序。”。“大多数平台只会提供带有某种DNN编译器的人工智能特定架构,但定制呢?不支持的DNN呢?不受支持的运算符呢?我们没有这些限制,因为这是一个图灵完整内核,内核可以做任何操作。代码的灵活性使开发人员能够编写任何算法嘿,想要。”
芯片路线图
Quadric的Q16芯片采用16纳米硅的16 x 16阵列中的256个Vortex内核,提供4个INT8 DNN TOPS。它可以以每秒200次推断的速度运行ResNet-50(对于224 x 224图像大小的INT8参数),平均消耗2W。
Quadric的路线图包括第二代架构,以及Q32芯片(一个1000核的阵列)的tapeout,“可能在7纳米内,”Firu说。虽然Q16严格来说是一个加速器(它将与系统主机处理器放在一起),但正在开发的Q32也可能包括Arm或RISC-V内核作为主机。
一个M.2格式的开发套件,带有Q16处理器和4GB的外部内存,直接映射到Q16的通用内存空间,现在可以使用了。
>>这篇文章最初发表在我们的姐妹网站上,EE时间.