人工智能对于芯片和软硬件系统的架构定义,设计理论和流程方法将会产生前所未有的冲击,在这二十年的芯片设计长河中出现了很多璀璨闪耀的方法学,包括
1. 架构级/结构级建模
2. 算法/硬件划分映射
3. 软硬件系统协同设计验证
4. PPA(性能/功耗/面积)平衡优化 等等
这些著名的在历史中沉浮的方法学终于在AI时代的芯片设计中大放异彩,释放出了前所未有的活力。究其原因,是因为AI的系统设计难以比拟的独特性和挑战性。
1. 系统架构的重要性前所未有。从芯片架构,包括计算架构,存储架构,互联架构;到软件架构,包括应用架构,编译架构,调度架构,驱动架构;每一个因素都决定系统设计的成败和效能。
2. 软硬件结合的生态系统是重中之重。AI已经不是单纯芯片的概念,也不是单纯软件应用的概念。软硬件联合设计,验证,优化和后续开发是系统决胜的关键。芯片的理论规格不再是纸面的参数,是需要系统和软件联合设计才能获取的目标。生态系统建立的高效性和开发者的易用性是系统骥芯片部署成功的根本之一。
3. 性能功耗比(Performance/Watt), 性能成本比(Performance/$), 功耗成本比(Watt/$)在AI的不同应用方向有着不同的优先级。在性能,功耗,面积,可靠性,安全性,快速响应性等各个维度的取舍让高质量的AI芯片设计成为更大的挑战。
4. AI算法当前的灵活性和未来的多变性,以及软件框架的多样化给系统设计带来了很大的挑战。如何面向未来进行设计,面向端云进行延伸,让现在的软硬件系统有更强的灵活性和扩展性,也是目前设计领域一个较大的挑战。
综合这些,如何设计高效能,高性价比的“算力架构”和与之相关的软硬件优化系统,是当前AI芯片设计的主要原则。以此为中心,结合这些年的设计方法学,作为AI芯片设计者需要考虑如何把握以下设计规则:
1. 在最初的架构设计下最大的功夫,架构级建模流程的引入必不可少。
对于算力引擎的有效性,数据带宽和吞吐,片内外互联结构的QOS,基本的调度方法,高效的编程模型等等;必须进行有效的评估,并对于芯片设计的后面阶段产生指导作用。
2. 从建模(modeling),到逻辑仿真(Simulation),到物理仿真(Emulation),到FPGA的每一个阶段,软硬件的联合设计调优都要贯穿于其中。
从一开始提供模型保证软硬件的分离开发,到开发中后期软硬件整合的联调,再到芯片回来的测试再调优;如何按阶段的保证软硬件设计优化的充分,是这个流程必须要重视的问题。另外,对于软件各层,包括调度模型,编译效率,驱动硬件调优以及开发易用性的考量,以及对于Benchmarking和Test Stimulus的制定,都是软硬件协作中不可缺少的步骤。
3. 根据芯片的不同定位和方向,设置PPA(性能,功耗,面积)的优先级和平衡策略。
解决好以下几个热点问题:
a) 系统级(System/Platform)对于性能,功耗,成本,稳定性,安全性的综合考虑
b) 编程的灵活性和晶体管消耗(面积功耗的代价)的平衡
c) 理论算力峰值与实际应用性能之前的差距弥补
d) 性能线性提升和功耗非线性增加之间的平衡
e) 工艺的步进对于性能功耗的优化以及量产成本的提升之间的权衡 等等
成为PPA平衡设计的关键。
4. 前瞻性定义开发。
根据AI算法的未来步进,市场竞争产品的出现,新技术的出现和准备曲线等等,所有产品的定义必须充分考虑未来的不确定性和竞争力。对于新兴算法和算子的调研,对于新兴软件框架的调研,对于新工艺,IP的出现,更重要的,对于主要客户未来需求的采集和分析,才能对于产品的未来定位有更加清晰的策略,对于开发路线有更加清楚的判断。
5. 强大的软硬件项目管理流程。
以里程碑和质量检查为驱动的芯片开发流程;以迭代敏捷为代表的软件开发流程,必须有效的结合和同步,才能达到完美的系统开发效果。
分享这些,是希望有更多的中国AI设计团队能够崛起,中国芯片的战场需要更多的中国人,也需要更多有情怀,有决心,有抱负的工程化团队。
乘风破浪会有时,直挂云帆济沧海!