距离魔幻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 的行动中。
- [1] PLCT OpenDay 2020: https://www.bilibili.com/video/BV1wt4y1k7cN
- [2] PLCT OpenDay 2019: https://www.bilibili.com/video/BV1PJ41147Ek
- [3] Open Wishlist for RISC-V 2021 https://plctlab.github.io/events/RISCV-Open-Wishlist-2021.html
- [4] 第二年的许愿池计划 https://github.com/isrc-cas/PLCT-Weekly/blob/master/RISCV-Open-Wishlist-2021.md
由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]。
- [5] 「关于建立RISC-V社区软件移植及优化工作的双周同步机制的倡议」
- [6] https://github.com/cnrv/RISCV-East-Asia-Biweekly-Sync/blob/main/off-cycle-meetings/2020-12-08-Kito-Cheng-on-RISCV-GNU-Branch-Policy.md
- [7] https://github.com/cnrv/RISCV-East-Asia-Biweekly-Sync/blob/main/biweekly-meetings/2020-12-10.md
- [8] https://github.com/cnrv/RISCV-East-Asia-Biweekly-Sync/blob/main/biweekly-meetings/2020-12-24.md
欢迎使用,地址在老地方:
https://github.com/isrc-cas/rvv-llvm
主要更新内容:
- 使用whole register load/store向量指令进行栈上的访问
- 对widening/narrowing指令,设置正确的LMUL和SEW
- 增加更多的向量intrinsic测试用例
同时我们也开放了使用的 benchmark(整理自 RISC-V V 扩展的官方文档)
https://github.com/isrc-cas/rvv-benchmark
本次除RVV之外没有其他新增内容。
按部就班的进行。
-
修复unsinged变量导致的溢出奔溃的问题 riscv-collab/v8#355
-
修复跳转蹦床未弹出的问题 riscv-collab/v8#351
-
去掉无效的断言 riscv-collab/v8#346
-
在谷歌头文件独立性检查CI中增加riscv64支持 riscv-collab/v8#346
-
修复DynamicCheckMapsBuiltin的寄存器分配bug riscv-collab/v8#338
-
技术报告: 介绍V8中指针压缩的原理
-
技术报告: V8寄存器分配源码分析
-
开始移植 bionic 的动态链接功能,目前完成了
libc.so
和linker
的编译链接,但运行还有问题,还在调试中,欢迎熟悉动态链接器实现或者对此感兴趣的小伙伴一起来研究。此外还进一步改进优化了 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 上新建了镜像》。
- “知乎” 上新增 “BishengJDK for RV64G” 专栏,发布了一篇实验报告:
- BishengJDK 11 for RV64G开源后的第一个PR分析:https://zhuanlan.zhihu.com/p/336985601
- 反馈了毕昇JDK 11 for RICSV64 的一处copy_memory的问题:
初步添加了基于UX600 Soc的Hbird Machine,能够支持 Nuclei Linux 启动;同时,基于FD扩展指令修改方式和寄存器映射方式实现了Zfinx扩展,代码还在调试当中,后续会更新到github上。
初步完成了主体部分Zfinx扩展实现,目前pk初始化部分存在问题,测试案例尚在调试当中,后续会更新到github上。
- 按期发布了第41期 OpenArkCompiler Weekly - No.41 December 13th 2020
- 史宁宁在12月4日的在PLCT实验室2020年开放日做了报告《方舟编译器与Android Runtime》 演讲PPT:https://github.com/isrc-cas/PLCT-OpenDay-2020 视频:https://www.bilibili.com/video/BV1wt4y1k7cN?p=4
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/
实习生招募!
TODO 吴伟
https://github.com/isrc-cas/eternal-balance
如果你感兴趣,欢迎加入永恒天平项目,一起做些有意思的事情!
- PLCT许愿池2020计划 https://github.com/isrc-cas/PLCT-Weekly/blob/master/RISCV-DevTools-Wishlist-2020.md
- PLCT2020年开源路线图 https://github.com/isrc-cas/PLCT-Weekly/blob/master/RISCV-Roadmap-2020.md
- 面向国内 RISC-V 芯片厂商的 QEMU 支持计划 https://github.com/isrc-cas/PLCT-Weekly/blob/master/PLCT-QEMU-Support-Project-for-Domestic-RV-Vendors.md
- PLCT OpenDay 2019 https://github.com/isrc-cas/PLCT-Weekly/blob/master/PLCT-OpenDay-2019.md
- PLCT实验室的开放职位 https://github.com/isrc-cas/PLCT-Weekly/blob/master/open-positions.md
- PLCT Weekly https://github.com/isrc-cas/PLCT-Weekly
- PLCT 公开报告 https://github.com/isrc-cas/PLCT-Open-Reports
- PLCT工具箱 https://github.com/isrc-cas/PLCT-toolbox
- C910 LLVM 支持 https://github.com/isrc-cas/c910-llvm
- RISC-V Vector Extension Support(rvv-llvm) https://github.com/isrc-cas/rvv-llvm
- rvv-benchmark https://github.com/isrc-cas/rvv-benchmark
- OpenCV for RISC-V https://github.com/isrc-cas/opencv-riscv (目前直接提交给上游了)
- V8 for RISC-V https://github.com/v8-riscv/v8
- 永恒天平 https://github.com/isrc-cas/eternal-balance/
- QuickJS for RISC-V https://github.com/isrc-cas/quickjs-riscv
- PLCT-QEMU https://github.com/isrc-cas/plct-qemu
- Flounder https://github.com/isrc-cas/flounder
- pacific(方舟编译器玩具运行时) https://github.com/isrc-cas/pacific