包云岗
26-04-04 07:46 微博认证:中国科学院计算技术研究所研究员

“万众一芯”ISCA论文背后的故事
http://t.cn/AXIEdi2F (图1)

(一)芯片验证梦魇

2026年3月19日,英伟达GTC大会上,英伟达首席科学家Bill Dally与谷歌首席科学家Jeff Dean开展了一场重磅对话,其中有个话题是关于“AI for Chip”。对此,Bill Dally有一段描述如下(图2):

“我们非常想缩短的一段时间,是从功能模型——也就是 GPU 的可执行模型——到流片之间的时间。

这段时间里,最耗时的环节其实是设计验证,所以我们特别关注怎么用 AI 更快地验证设计是对的。”

验证!芯片验证!正是全世界所有芯片项目负责人的梦魇——这是芯片开发过程中最耗时耗钱耗人、但却不得不做的环节。

(二)让软件开发者参与

香山,也面临同样的芯片验证难题。但香山有一个独特的优势——开源,可以利用开源让广大软件开发者参与芯片验证,实现芯片众包验证新模式。于是,“万众一芯”项目在2023年正式启动。

“万众一芯”项目的核心思想是用“软件原生”方式,重新定义硬件验证。

听起来有点太学术气,说白了,就是用Python来写测试用例,降低门槛,让软件开发者也可以参与。用Python等这类软件开发者更亲睐的语言,至少带来三个好处:

1)熟悉Python的开发者,人员规模要比懂Verilog或SystemVerilog(SV)的人数大两个数量级,这代表了未来的潜力;

2)Python有丰富的函数库,比如测试用例中要写一个MD5加密解密模块,Python只需要import hashlib,然后调用md5即可。但用SV就需要手搓一个或者到网上去找开源版本,并自己还需要先验一下是否靠谱;

3)Python有大量的开源语料库,因此AI大模型更懂Python,自动化生成的Python程序更准确,这就更有助于将更多环节实现AI自动化。

(三)效果振奋人心

然而,天下没有免费的午餐。使用Python来写测试用例、驱动芯片验证,面临一些根本性矛盾:比如,软件是顺序执行,硬件是事件驱动,软件如何表达时序?再比如,过去硬件人员已经开发和积累的大量成熟验证IP(VIP),如何能在Python编写的测试用例中使用?

过去两年多,“万众一芯”把上述问题一个接一个地都解决了(图3),并且取得了令人振奋的效果——围绕香山处理器开展了为期六个月的社区研究,数据显示:

- UCV社区共吸引520位关注者,其中95人注册参与,25人产出可运行测试,11人累计发现30个此前未知的bug;

- 5位具有软件背景的本科生在2个月内确认了10个branch prediction bug(图4),而对照组中,一位有经验的硬件工程师在5个月内发现2个可比bug;

- 社区参与者整体达到了98.3%的行覆盖率。

这些数据表明,“软件原生”,并不只是让测试用例代码“看起来更像软件”,而是真正帮助更多软件背景的开发者,参与到了有实质产出的芯片验证工作中。

(四)继续努力

这篇ISCA论文正是对过去两年多工作的总结。ISCA 26的录用,标志着万众一芯在推动验证技术走向智能化、软件化方向迈出了关键一步,是对这条技术路线的一次重要认可,也是对香山团队在验证基础设施方向长期投入的肯定。

未来,我们将持续通过创新的验证技术、开放的协作模式,让芯片验证从“人力密集”走向“智能高效”,共同构建AI驱动的芯片验证新范式。

欢迎大家的参与!

发布于 北京