今年10月,NovuMind自主研发的第一款ASIC芯片NovuTensor成功流片。这是一款专为卷积神经网络设计的AI推理芯片,算力15Tops而功耗仅为5W,可以裸片或PCI-E短卡(174mm)形式提供,配备Linux兼容的开发软件工具,运行时支持和C++ API。
与此同时,NovuMind自主建造了大型分布式深度学习训练平台NovuStar,可提供专业的人工智能训练模型,其“模型+芯片”的定制化全栈式解决方案,可将NovuTensor适用于从嵌入式到云端的各种应用场景当中。
今年11月,NovuMind获选进入第19届EE Times Silicon 60榜单。这份榜单被誉为全球新兴半导体企业的金榜,又被称为“全球最受关注60家半导体公司”,其中有15家公司锁定AI领域,相较2017年的6家增长了150%。这无疑表明,AI的全球浪潮不但热度没有衰减,反而展现出了市场与技术的发展趋势。
既然目前有这么多做AI芯片的公司,NovuMind和其NovuTensor芯片到底有何不同之处?雷锋网就相关问题,与NovuMind创始人兼CEO吴韧博士进行了一次详谈。
“AI的关键能力实际上就那么几个,比如视觉、听觉、感知其他信号的能力。”吴韧在与我们的交流中首先明确了对AI计算的理解,“把其中一个能力放入一个解决方案中,其实已经可以了,在通用性上其实并没有降低太多,人脸识别、车辆识别等应用虽然看起来不一样,但对芯片来说只是换一个模型而已。”
他指出,在端应用方面,做平台不是正确的思路,NovuMind所追求的是最极致的优化、最高的能耗比,而平台化就意味着性能的降低。在这种追求的驱使下,NovuMind选择了一种与其他芯片厂商完全做法不同的做法:舍弃传统的二维矩阵运算。
矩阵乘法是目前绝大多数AI加速器最重要的目标算法,但NovuMind认为,AI计算的关键点并非是矩阵,而是在于卷积,也就是三维张量的计算。如果为了全盘皆顾而不敢舍弃二维甚至一维的计算方式,就束缚了将算力性能逼向极致的可能。
“术业有专攻,一些计算明明可以让CPU做,为什么要占用深度学习的计算能力?”
NovuTensor芯片架构支持原生3*3张量计算,只处理三维的深度神经网络计算,可以最有效地在本地执行逐层计算。由于架构无需一次取一个完整张量,只需取子张量,所以内存访问负担大大降低,能耗比也得到提升,在神经网络等人工智能相关计算上的表现远高于其他常见架构,包括传统的GPU架构。
除特立独行的架构设计外,NovuTensor还独创了动态半精度浮点数计算,与标准半精度浮点数相比精度损失极小但能大大节省硬件开销。与传统混合计算相似,NovuMind也考虑到了人工智能计算对计算精度存在一定的容忍度,因此在一些不关键的地方使用较低的精度也不会对最终准确度造成损失。
吴韧特别介绍到,传统混合计算是部分计算使用整数计算、部分计算使用浮点计算的方式,整数计算和浮点计算通常是基于独立的计算单元,因此在进行浮点计算时,整数计算单元就闲置了。这种闲置不仅仅造成了芯片面积上的浪费,同时闲置的晶体管实际上也存在静态漏电,因此对于功耗也有影响。
“NovuTensor的动态半精度浮点数计算的优势在于,可以用同一套计算单元同时去做不同精度的计算,是一种统一化的计算,因此从硬件和功耗效率来看效率更高。”
2018年10月,NovuTensor芯片的设计获得美国专利。该专利充分显示了NovuMind在芯片设计领域的独特架构设计。
NovuTensor的主攻市场是边缘服务器/边缘强算力,可以通过提供嵌入式模组以及边缘计算盒的形式为自动驾驶、机器人、智能摄像头,以及有强算力需求的消费电子和智能家居(如AR/VR应用等)等提供算力支持。
这类边缘应用场景一方面对于算力有很高要求,需要接近云端服务器的算力(>10TOPS),另一方面对于处理延迟和可靠性都有很高要求。目前市场上的主流解决方案还是GPU,然而天生的架构使其在低延迟应用中的效率不高,在低延迟算力往往仅能达到峰值算力的十分之一。
NovuTensor的独特架构在边缘计算等对于延迟有严格要求的场景下有独特优势,雷锋网了解到,在低延迟(batch<4)的场景下实测,NovuTensor的半精度计算推理性能在ResNet-18能实现1000fps以上的帧率,该帧率与市场上最新款边缘计算GPU模组的半精度计算相比提升了2倍以上,即使是与GPU的INT8计算相比也有1.5倍的性能提升,而能耗比则提升了4倍(半精度)/3倍(INT8)。
由于不少应用需要使用深度较深的神经网络模型,NovuMind还训练了更适合硬件加速的ResNet-70,其精度接近ResNet-101但硬件执行效率远高于ResNet-101。NovuTensor执行半精度计算ResNet-70的帧率也可达到450fps,与GPU相比也是帧率达到了2倍(半精度)/1.5倍(INT8),能耗比则是提升了4倍(半精度)/3倍(INT8)。
在这一代28nm NovuTensor芯片流片成功之后,下一代芯片将能够利用架构优势通过设计迭代进入更多市场。据吴韧介绍,NovuMind对下一代芯片已经有了规划,16nm芯片的预期规格为26W功耗240Tops算力,能耗比约9Tops/W;7nm芯片则为0.15W功耗4Tops算力,能耗比约27Tops/W。
据悉,能耗比的大幅提升除了得益于更先进的半导体工艺外,架构方面也对相应应用做了针对性的优化。240T的芯片主要针对服务器等对于算力有很高需求的场景,因此在内存访问、计算流水线等方面做了相应优化,而4T的芯片主要面向超低功耗市场,针对超低功耗场景的算法做了相应优化。
NovuTensor目前的定位,是边缘端计算视觉领域。据雷锋网了解,目前几乎没有兼顾云计算大芯片和边缘计算小芯片的公司。我们对这种市场现象已经习以为常,但仍不免好奇,设计小芯片和大芯片的技术侧重点和难点有那些不同?
关于这一点,吴韧首先阐明,他所理解的边缘计算是指一系列由于延迟、可靠性和安全性等需求,必须在数据端就近完成计算而无法传到云端的应用。这其实不仅包括终端(如手机、智能音箱)的小芯片,也包括了无人驾驶、智能零售等领域的高算力大芯片。不管是大芯片还是小芯片,在边缘计算方面,都要求在非常低的延迟下做到高的吞吐量。
“就大芯片和小芯片的角度来看,技术差距并非不可逾越,更大的不同其实在于商业模式。”他表示,小芯片由于对于成本敏感,希望在整体系统中芯片数量越少越好,因此芯片通常会做成SoC,包含很多个模块,AI只是其中的一个特性,因此最合理的商业模式是AI芯片公司给SoC厂商提供IP,由SoC厂商自行集成到SoC中去。
而大芯片市场由于对性能的需求多过对成本的关注,因此完全可以接受独立的AI芯片。对于大芯片市场来说,出售芯片或芯片模组都是合理的商业模式。所以我们很少看到公司即卖大芯片又卖小芯片,因为更合理的模型是卖大芯片同时在小芯片市场提供IP授权服务。
吴韧向我们透露,NovuTensor可以有多种形态,未来NovuMind可提供集成了多块NovuTensor芯片的加速卡,以满足数据中心服务器的算力需求。在移动通讯、物联网等对于功耗有更高要求的市场,NovuMind还提供“轻量版”的NovuTensor核心IP授权,从而为智能物联网提供人工智能计算加速。
一直以来,笔者对于芯片计算的具体物理过程非常好奇。根据笔者的理解,芯片计算的本质,是把信息从无序变为有序,这是一个消耗能量的非自发减熵过程。
在谈话的最后,笔者向吴韧博士追问了下面几个略显超纲的问题:
芯片以纯电阻电路形式浪费了多少能量,实际用于信息处理过程的有效能量有多少?
最终处理完成的信息等价于多少能量,有多少能量在处理过程中流失掉了?
芯片处理信息的能源利用率与大脑有多大差距,未来的神经拟态芯片又将如何?
吴韧在与他身边的牛人讨论后很快给予了回复,详细解释了芯片计算中的具体情况。
他首先表示,目前基于晶体管的计算实际上离信息熵减的能量下限还很遥远。理论上传送/计算1bit信息需要的能量是kTln2,在常温下是10^-21焦耳的数量级,而实际芯片晶体管中一次加法计算(归一化到1bit)需要的能量大概是10^-14焦耳,比下限高了7个数量级;一次内存访问数据传输需要的能量归一化到1bit大概是10^-11焦耳,比下限高了10个数量级。
这样来说,即使一次简单的加法计算就能得到结果,目前需要使用的能量也比理论上可达到下限高了7~10个数量级,如果是比较复杂的算法的话,能量消耗比起理论下限会高出更多。
“尤其是目前基于神经网络的人工智能,更是以计算复杂为主要特征(例如一个基本的ResNet-18需要的计算操作次数大约是1010),因此我们估计计算耗费的能量大概比熵增需要的能量要高接近20个数量级。”对于Novumind所涉及的AI芯片领域,他也丝毫没有避短,“从另一个角度来看,在整个计算体系中,内存访问所消耗的的能量大约是计算的1000倍,这也是我们优化硬件架构希望把尽可能多的数据留在芯片上以减少内存访问的原因。”
总而言之,现在离信息熵减的能耗下限还很远,人类的芯片技术还有很大的进步空间,这是毫无意外的。
随后,吴韧又解释了关于神经拟态芯片的问题。由于使用了非冯诺依曼架构,神经拟态芯片可以减少内存访问以改善能耗比,不过目前科学界对于人脑的工作机制还了解很少,神经拟态芯片还在比较初步的阶段。目前复杂神经拟态网络的训练仍然非常困难,只能做一些比较简单的任务。
“预期在未来5~10年里,传统AI芯片和神经拟态芯片将是一个互补关系,神经拟态芯片可以在超低功耗终端里实现比较简单、需要快速反应的计算处理,而复杂一些的计算还是会放到传统AI芯片里去做。”吴韧最终总结道。