2022云栖精选-开源高性能 RISC-V 处理器敏捷开发实践

简介: 徐易难中国科学院计算技术研究所

lQLPJxbcF2cqNBvMiM0FeLCMz4ifcSGHeANpqgFLAEAA_1400_136.png

image.png

过去二十年,开源软件对中国产业发展发挥了革命性作用。很多产业比如云计算、移动互联网、大数据、人工智能、区块链都基于开源软件构建了产业核心技术,使得中国移动互联网产业处于世界领先水平

开源软件成功降低了 App 开发门槛,吸引和培养了大批人才,帮助企业建立了强大自主研发能力。

image.png

开源软件的成功得益于它降低了互联网创新门槛,使得更多人能够参与到创新业务中。比如,现在开发手机 App 可能只需要3-5位开发人员花费几个月时间,其中大量甚至90%的工作基于开源代码实现,仅需在此基础上定制 10% 代码即可实现需要功能。

另外,开源软件成功提高了互联网企业自主能力。当年阿里巴巴正是在“去IOE”的背景打造了 OceanBase 数据库目前OceanBase已是国际领先的数据库

image.png

借鉴开源软件成功经验,我们希望能够构建开源芯片生态,同时借助于硬件敏捷开发,降低芯片设计人力、 EDA IP 等成本。我们希望 90% 资源来自于开源社区,用户只需付出 10% 精力完成自定义代码,即可打造一款属于自己芯片。

image.png

基于以上发展愿景RISC-V行业生态得到了极大的关注

软件方面,目前国际开源社区积极投入RISC-V生态建设,比如Debian软件包对RISC-V的支持已经超过95%

在硬件领域,高性能RISC-V处理器已经越来越多地进入国际竞赛阶段RISC-V与顶尖处理器性能差距在快速缩小。由阿里平头哥、北京开源芯片研究院等组成的RISC-V基金会数据中心工作组也已成立

image.png

香山正是在背景下诞生开源项目,目标是做开源高性能RISC-V处理器,以下是各版本介绍:

第一版名为雁栖湖架构,于20206月建立代码仓库,开始 RTL 实现工作;于20217完成28nm流片,频率1.3GHz实测SPEC CPU2006性能超过7/GHz

第二版名为南湖架构,于20215开始 RTL 实现工作,持续进行设计讨论。预计将于22年底投片,预估SPEC CPU2006 20分,2GHz@14nm

第三版名为昆明湖架构已经开始设计规划,新增支持 RISC-V 向量(Vector, V)扩展指令集。

目前,香山 githubgitee等平台均已开源,采用Mulan协议宽松版。主仓库在开源项目托管平台 github 已获得 3000 +star 形成超过 370 fork

image.png

香山处理器在开发过程中非常重视敏捷开发基础流程和工具。处理器开发流程可以分为以下几步:

第一步,新特性提出,针对特性完成设计和实现文档。

第二步 RTL 实现,我们采用了Chisel开发语言加速RTL实现过程。

第三步功能验证,也就是需要确认实现在功能上是否正确

第四步性能分析和性能验证。

第五步,物理设计验证。

 

香山开发过程中搭建了大量工具用于加速处理器设计迭代,其中有十几个工具用于辅助加速验证流程。

 

image.png

我们将两年的敏捷开发经验和工具沉淀为论文,文章发表在今年的计算机体系结构领域顶级会议MICRO上,向国际学术界和工业界介绍我们针对处理器敏捷开发的观察与技术创新。

下面我介绍一部分我们创新提出的敏捷开发工具。

image.png

RISC-V体系结构checkpoint 能够对程序在某一时刻状态进行全局快照。有了快照之后,支撑上层丰富应用场景,支持用户像使用模拟器一样使用精确 RTL 模型。比如,我们可以在模拟器上完成 OS 启动,将 OS 启动后整个程序镜像进行 checkpoint并在 RTL 上实现快速恢复。即使 RTL 仿真很慢,也能够实现快速 OS 启动。其次,Checkpoint支持生成程序无关负载,因此,只要有足够多程序,我们即可生成足够多程序片段,并且在仿真环境下复现,快速助力处理器功能验证。另外,可以还可以从所挑选片段中进行采样,选取具有特征片段,实现敏捷性能评估。

RISC-V Checkpoint 技术已经成为支撑香山处理器体系结构和微结构优化基础性工作。

image.png

checkpoint 基础之上,我们搭建了 DiffTest 处理器系统级验证方案,基本流程为:处理器仿真产生指定提交和其他状态更新让模拟器执行相同指令,并且在执行完成之后比较两者状态进行报错或继续。

MICRO论文中,我们提出了敏捷验证方案 DRAV能够支持更多处理器、更复杂场景和更快速迭代。我们提出了Diff-rule机制,能够描述设计规范所允许行为。同时,DiffTest基于 probe 完成微结构信息自动传递,加速Chisel到系统级验证流程。

image.png

有了系统级验证之后,还需要单元级验证的支持我们针对处理器验证中核心难点L2cacheL3 cache完成了 TL-Test,一个支持TileLink总线缓存验证框架。

香山南湖架构是双核 SoC 其设计复杂度相比于雁栖湖有了巨大提高。而 TL-Test 通过单元级验证、子系统级验证和SoC级验证共同支撑了南湖架构缓存一致性验证。

image.png

有了处理器验证框架之后,我们还需要在仿真出现BUG 后进行调试。我们提出了 LightSSS 轻量级仿真调试技术,其原理为基于快照完成对仿真现场快速重建,支持后续调试。核心技术为通过fork 系统调用,能够帮助通过差分快照、高可移植性、高效率等角度共同实现了低开销进程级快照。

我们实验中实测发现,LightSSS带来了小于 1% 性能损失,这大幅提高了波形获取效率。现在即使在仿真一周之后报错,我们也能够在两分钟之内完成报错现场重现来辅助调试。

image.png

最后面向香山性能分析和性能验证问题,我们提出了 Top-Down模型,它能够支持性能建模、数据处理、结果分析、优化建模完整性能分析工作流程基于公开的论文,我们做了几点创新。首先,原有工作基于x86 ,不兼容 RISC-V结构,因此我们针对 RISC-V指令集完成了大量针对性优化适配。其次由于现有Top-Down工作主要针对另微结构,而香山的微结构原始论文已经存在很大差异。因此,我们针对香微结构设计完成了大量优化。最后,香山处理器微结构复杂度相比于原有设计已经高出几个量级。因此我们进一步细化Top-Down模型分层设计,从而支持更准确性能分析。

image.png

刚才我介绍了一些香山开发过程中同步产出的基础开发工具。从这些内容中我们能看出,香山项目整体不仅包括香山芯片,更重要的部分是底层支撑香山开发敏捷基础设施和基础工具。在香山处理器设计开源的同时,我们希望将开发香山的基础能力开源,赋能企业加速处理器研发节奏,最终能够实现像软件生态一样,少量开发人员即可完成一款自定义芯片开发能够支持按需快速定制芯片。

image.png

2021 年底,在北京市和中科院支持下,18 家企业联合发起了北京开源芯片研究院,将参与后续的“香山”处理器产品化改造和架构研发。

image.png

面向未来,我们希望通过快速迭代和流片验证,探索芯片开放开源开发模式和敏捷开发基础设施,搭建一套敏捷开发基础流程,像使用开源软件一样,快速实现从 idea 到实际芯片产品落地。

我们希望建立规范开源社区,并且基于北京开源芯片研究院稳定资金源推动香山快速在工业界完成落地。同时,香山将继续成为学术界创新平台,赋能更多学术界研究者和工业界开发人员。

lQLPJxbcF2cqM2TM-M0CnrCgW_7LDpyh1wNpqgFKAPsA_670_248.png

相关文章
|
机器学习/深度学习 人工智能 算法
|
1月前
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天Arm架构深入探讨
基于「倚天710自研芯片+CIPU云原生基础设施处理器」组合的倚天ECS实例为解决算力挑战提供新思路。
|
1月前
|
编译器 调度 数据库
DP读书:鲲鹏处理器 架构与编程(十)鲲鹏软件生态与云服务
DP读书:鲲鹏处理器 架构与编程(十)鲲鹏软件生态与云服务
112 0
|
1月前
|
安全 前端开发 Linux
DP读书:鲲鹏处理器 架构与编程(十一)鲲鹏生态软件架构 AND 硬件特定软件
DP读书:鲲鹏处理器 架构与编程(十一)鲲鹏生态软件架构 AND 硬件特定软件
46 0
|
7月前
|
Ubuntu Linux 开发工具
第三代软件开发环境搭建
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
9月前
|
弹性计算 安全 虚拟化
万字干货分享 | 阿里云CIPU技术解析
2022年6月,阿里云发布了云基础设施处理器CIPU(Cloud Infrastructure Processing Unit),将其定义为取代传统CPU的新一代云计算体系架构的核心。在这个全新体系架构下,CIPU向下对数据中心计算、存储、网络等底层基础设施快速云化并进行硬件加速,向上接入飞天云操作系统,将全球数百万台服务器构建为一台超级计算机,实现资源的灵活编排和调度,给用户提供高质量弹性云计算算力集群。
|
10月前
|
存储 Kubernetes 架构师
干货!阿里「大型分布式技术手册」现已开源
其实当你真正去使用这些不同的架构方法去解决问题,然后在实践中观察它们的优劣,这确实会是一种很好的成长方式,但这是一个漫长的过程,而且没有哪个大厂会花时间让你自己去探索,所以这些经验又要从哪儿来呢? 答案是:前人的经验。既然别人已经总结了一套通过实践得来的经验,那我们为什么不去用呢?将别人的知识学会再变为自己的,才叫厉害。
|
存储 安全 前端开发
业界新标杆!阿里开源自研高并发编程核心笔记(2023最新版)
提到并发编程很多人就会头疼了;首先就是一些基础概念:并发,并行,同步,异步,临界区,阻塞,非阻塞还有各种锁全都砸你脸上,随之而来的就是要保证程序运行时关键数据在多线程中的可见性、核心业务的原子性、多线程通信的有序性。虽然很多人工作可能接触不到这些的东西,但是面试就是得问。假如你跟一个有过高并发编程经验的人一起面试同一个岗位,你就是背了些面试题,而人家是确确实实有真东西的,那后续的录用结果想必就不用我多说了吧~
|
芯片 开发者
玄铁RISC-V处理器入门与实战-RISC-V 未来探索-高校合作
玄铁RISC-V处理器入门与实战-RISC-V 未来探索-
113 0