Skip to content

Latest commit

 

History

History
166 lines (102 loc) · 9.1 KB

2020-12-16.md

File metadata and controls

166 lines (102 loc) · 9.1 KB

PLCT开源进展·第15期·2020年12月16日

卷首语

距离魔幻2020结束还有半个月。大概已经到了各个公司或单位开年会庆祝的时候了。PLCT实验室的年会意义上的活动已经在12月4日举办了,也就是 PLCT OpenDay 2020 开放日活动。每个员工都上台表演30分钟,单人solo一段技术报告。底层技术人员的娱乐,就是这么简单且快乐。视频一如既往的挂在了B站 [1, 2],欢迎围观。

PLCT除了开放日的第二项传统大型活动就是「RISC-V许愿池计划」的。今年的许愿池计划,我们不仅继续向国内的RISC-V软件硬件厂商发出邀请,同时我们也开始在英语世界用英文向更为广阔的RISC-V社区介绍了许愿池计划。在英语世界我们收到了更多的回复,目前,LuaJIT 的移植工作等,都已经被正式的列入了PLCT在2021年的路线图。我们继续欢迎在2020年最后的15天中,国内的小伙伴们可以给2021年的许愿池计划提供一些建议和目标[3, 4]。

最后,顺带一提,中科院软件所正式签署了FSF的GPLv3的版权转让协议。以后,PLCT和其他ISCAS的邮箱终于可以向GNU工具链直接贡献代码了。国内的公司在这方面一直很保守,希望PLCT实验室可以在后续带动更多的公司加入到贡献 upstream 的行动中。

本期亮点

由PLCT和CNRV发起的东亚时区RISC-V双周同步会议[5]已经建立起来了。12月10日举办了第一次同步会,一个小时,内容充实紧凑[7]。12月24日是第二次同步会议,依然是开放加入[8],有兴趣参与的同学在CNRV公众号私信「双周会」即可获得Zoom会议链接。12月8日很高兴邀请到 RISC-V 工具链的维护者、Sifive 的 Kito Cheng 在双周会组织的第一次 off-cycle sharing 中介绍了 RISC-V 基金会管理下 GNU 工具链的分支管理策略及后续变更计划[6]。

RISC-V 「V」向量扩展LLVM实现

欢迎使用,地址在老地方:

https://github.com/isrc-cas/rvv-llvm

主要更新内容:

  1. 使用whole register load/store向量指令进行栈上的访问
  2. 对widening/narrowing指令,设置正确的LMUL和SEW
  3. 增加更多的向量intrinsic测试用例

同时我们也开放了使用的 benchmark(整理自 RISC-V V 扩展的官方文档)

https://github.com/isrc-cas/rvv-benchmark

Clang/LLVM for RISC-V 相关工作

本次除RVV之外没有其他新增内容。

V8 for RISC-V 项目进展

按部就班的进行。

  1. 修复unsinged变量导致的溢出奔溃的问题 riscv-collab/v8#355

  2. 修复跳转蹦床未弹出的问题 riscv-collab/v8#351

  3. 去掉无效的断言 riscv-collab/v8#346

  4. 在谷歌头文件独立性检查CI中增加riscv64支持 riscv-collab/v8#346

  5. 修复DynamicCheckMapsBuiltin的寄存器分配bug riscv-collab/v8#338

  6. 技术报告: 介绍V8中指针压缩的原理

  7. 技术报告:介绍PLCT V8 for RISCV项目的过去、现状和未来

  8. 技术报告: V8寄存器分配源码分析

AOSP for RISC-V

  • 开始移植 bionic 的动态链接功能,目前完成了 libc.solinker 的编译链接,但运行还有问题,还在调试中,欢迎熟悉动态链接器实现或者对此感兴趣的小伙伴一起来研究。此外还进一步改进优化了 make 框架。具体改动请参考 bionic 移植主仓库 https://github.com/aosp-riscv/port_bionic 的 develop 分支以及其相应的 submodule 仓库。下一步的工作重点依然是实现动态链接支持,目前感觉实现难度比静态链接要大。除此之外会继续完善 bionic 功能并尝试移植 AOSP 的 Soong 构造系统,支持采用 AOSP 的 Soong 构造系统编译 RISC-V 版本的 bionic 库和相关应用。

  • 目前移植工作涉及的 AOSP 子仓库已经达到 9 个,全部下载完有 537M。为了方便中国国内的小伙伴下载访问,我们在 Gitee 上为 https://github.com/aosp-riscv 建了一个 mirror 网站,具体地址是 https://gitee.com/aosp-riscv/。具体访问操作说明请参考另外一篇新发布的知乎介绍文章 《AOSP-RISCV 的开源仓库在 Gitee 上新建了镜像》

OpenJDK for RISC-V

  1. “知乎” 上新增 “BishengJDK for RV64G” 专栏,发布了一篇实验报告:
  2. 反馈了毕昇JDK 11 for RICSV64 的一处copy_memory的问题:

面向国内RISC-V厂商的QEMU支持计划

初步添加了基于UX600 Soc的Hbird Machine,能够支持 Nuclei Linux 启动;同时,基于FD扩展指令修改方式和寄存器映射方式实现了Zfinx扩展,代码还在调试当中,后续会更新到github上。

RISC-V Spike 模拟器扩展

初步完成了主体部分Zfinx扩展实现,目前pk初始化部分存在问题,测试案例尚在调试当中,后续会更新到github上。

在方舟开源编译器社区的工作

MLIR

PLCT实验室张洪滨向 MLIR repo 提交 patch:

Committed:

[mlir] [Python] Check numpy in Python bindings configuration.

https://reviews.llvm.org/rG3024b1efde6097779d86277131e2de60086f637b

The test process of the ir_array_attributes.py depends on numpy. This patch checks numpy in Python bindings configuration.
- Add NumPy in find_package as a required component to check numpy.
- If numpy is found, print the version and include directory.

Differential Revision: https://reviews.llvm.org/D92276

Waiting on Review:

[mlir][Python] Initial Affine Map Python Bindings.

MLIR文章:

使用MLIR完成一个端到端的流程 -- 工具链 - https://zhuanlan.zhihu.com/p/328559928

使用MLIR完成一个端到端的编译流程 -- 一条通路 - https://zhuanlan.zhihu.com/p/328993481

MLIR视频:

[MLIR] 使用MLIR完成一个端到端的编译流程 - https://www.bilibili.com/video/BV1Wp4y1z72d/

CIRCT / OpenROAD / Chisel / FIRRTL

实习生招募!

永恒天平 / Eternal Balance

TODO 吴伟

https://github.com/isrc-cas/eternal-balance

如果你感兴趣,欢迎加入永恒天平项目,一起做些有意思的事情!

参考链接

PLCT开源仓库及分享