芯片设计是一项非常挑战且耗费人力和资源的工作。通常需要由工程师团队编写代码,然后在电子设计自动化(EDA)工具的辅助下生成电路逻辑。针对人工编写的代码,工程师团队需反复对其进行迭代的功能验证和性能/功耗优化。该过程通常需要上百人团队迭代数月或数年才能完成。
芯片全自动设计的目标是由机器代替人自动生成满足功能和性能需求规范的电路逻辑,从而极大减少人力和资源投入,加速设计迭代。自计算机科学奠基人之一A. Church在1957年提出“邱奇问题”以来,处理器芯片的全自动化设计成为人工智能领域的长期愿景。但由于处理器芯片电路准确率要求高、设计空间大,处理器逻辑必须由人类专家进行逻辑设计。这成为了整个流程中的设计效率瓶颈。
计算所处理器芯片全国重点实验室团队在实验室主任陈云霁研究员的带领下,聚焦解决处理器芯片自动设计所面临的精度和规模两大挑战,提出了以验证为中心的处理器智能设计方法学:从随机电路出发,由机器全自动完成包括验证、调试和修复的反复迭代直到获得满足设计需求的目标电路。
具体而言,团队将处理器自动设计问题转化成从验证程序的输入输出(IO)出发自动生成大规模的BDD(Binary Decision Diagram)表示问题。针对该问题,团队设计了二元猜测图(Binary Speculation Diagram),将传统BDD中的确定性子图替换成BSD中通过对IO的蒙特卡洛采样来确定的猜测节点。通过对二元猜测图的不断展开和归并,使得其生成的电路能够逐步逼近目标电路逻辑。上述方法在5小时内自动设计出了超过4百万个逻辑门的通用处理器——启蒙1号,将现有工作能自动设计的电路规模提升了3-4个数量级。启蒙1号芯片是世界上首颗无人工干预、全自动设计的处理器芯片,可以正常运行Linux操作系统,实测性能达到了Intel 486的水平。相关论文《Automated CPU Design by Learning from Input-Output Examples》已被CCF-A类会议IJCAI 2024接收。
为进一步提升自动生成处理器的性能,团队提出了一种基于门级依赖关系分析的自动流水线设计方法。数据依赖分析是影响自动流水线设计的关键。与传统数据依赖分析只能在寄存器等高层次进行不同,该方法在细粒度的门电路级别自动进行数据流分析。在分析结果基础上通过二元猜测图构建了细粒度的流水线控制单元,在保证功能正确前提下,利用门级前递和猜测提升了程序执行效率,达到了1.57x的性能提升;更重要的是,在某些情况下可以找到比人类设计更优的流水设计,平均吞吐效果提升了31%。相关论文《Revisiting Automatic Pipelining: Gate-level Forwarding and Speculation》已被CCF-A类会议DAC 2024接收。
相关链接:[1] Cheng,S. et al. Preprint at arXiv https://doi.org/10.48550/arXiv.2306.12456 (2023).
处理器芯片全国重点实验室依托中国科学院计算技术研究所,是中国科学院批准正式启动建设的首批重点实验室之一,并被科技部遴选为首批 20个标杆全国重点实验室,2022年5月开始建设。实验室学术委员会主任为孙凝晖院士,实验室主任为陈云霁研究员。实验室近年来获得了处理器芯片领域首个国家自然科学奖等6项国家级科技奖励;在处理器芯片领域国际顶级会议发表论文的数量长期列居中国第一;在国际上成功开创了深度学习处理器等热门研究方向;直接或间接孵化了总市值数千亿元的国产处理器产业头部企业。