Skip to content

Latest commit

 

History

History
197 lines (107 loc) · 8.61 KB

2020-09-01.md

File metadata and controls

197 lines (107 loc) · 8.61 KB

PLCT开源进展·第08期·2020年09月01日

卷首语

最近重新找回了领英的账号,添加了这段时间做开源和RISC-V认识的小伙伴。领英有一个朋友入职周年提醒的功能,提醒我注意到,原来很多华为和 FutureWei 的朋友,都已经入职华为有10年、11年、甚至13年了。十几年在一家公司,无论如何都已经会有深厚的习惯内化,会成为自己生命的一部分。而能够让大量优秀而资深的员工留下来,华为公司是有值得尊敬的地方的。华为太大了,好的坏的方面都有;而有这些我尊重和憧憬的前辈们在,我相信华为还有翻盘从头再来的机会。

PLCT Lab 从2019年9月开始以 PLCT 名字独立宣传和发展,到这一期正好一周年。这一年来,吹了不少的牛皮,蹭过不少的热点,为了生存和人才储备也接了不少的商业横向项目。从最开始的 LLVM 基本盘,开始围绕着软件所的 RISC-V 战略,逐步开始做 V8 for RISC-V、QEMU for 国内的RISC-V初创公司等项目。人数也从一开始的个位数,增加到了两位数————这种说法留足了至少88个吹牛的空间(笑)。

站在一周年的时间点,我们诚挚的邀请新的同事加入,现在,或许就是个加入的好时候了。显然的,PLCT能够提供的薪资并不足以致富或者快速在北京上海买房。可以提供一段安静和单纯实力至上主义的环境、与业界一流一线的工程师共事,是我们能够提供的。或许,这在当前的中国大陆,是更加的稀缺的。

本期亮点:无

本期没有什么特别的,一切都在按部就班的开发,debug,推送到上游。

RISC-V 开源工具链进展

RISC-V Vector Extension Support

目前完成了50%的intrinsic支持,同时支持了小数lmul,并且已经跑通rvv_saxpy.c 和rvv_segmm.c 两个测试程序

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

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

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

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

Clang/LLVM for RISC-V

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

V8 for RISC-V 项目进展

  1. RISCV-V8在合入上游最新的代码之后,新增了多个构建目标导致构建失败。PLCT实验室提交了pr分别修复了构建脚本与缺失的汇编代码

    riscv-collab/v8#164

  2. 在PLCT实验室提交给的google上游bug修复之后,PLCT启动了RISCV-V8的项目fuzz测试

    老的pr: riscv-collab/v8#67

    上游issue: https://bugs.chromium.org/p/v8/issues/detail?id=10770

    新的pr: riscv-collab/v8#190

  3. 重构宏汇编器中使用t5和t6临时寄存器的方法 riscv-collab/v8#197

  4. 使用从Label中载入PC的方法替代原有的使用定值offset的方法来计算返回地址 riscv-collab/v8#202

AOSP for RISC-V

  1. PLCT实验室创建了AOSP for RISC-V的 working group,欢迎大家关注和参与:https://github.com/aosp-riscv/working-group

  2. PLCT实验室正在向RISC-V移植AOSP,截止目前为止:添加了RISC-V配置文件到build体系,在"mmm art/compiler"的命令下,目前已经解决了build目录、perbuilts目录生成ninja的错误,正在解决system目录和cts目录无法识别RISC-V架构的问题。

  3. PLCT实验室的汪辰新发布了两个AOSP for RISC-V相关的视频:

    AOSP for RISC-V 移植教程 003 开始 ART 移植:https://www.bilibili.com/video/BV1JK411M7e5

    AOSP for RISC-V 移植教程 004 dex 介绍:https://www.bilibili.com/video/BV1TK4y1e7kv

OpenJDK for RISC-V

刚开始看。欢迎实习生投递简历!

OpenBLAS for RISC-V using Vector Extension

刚开始看。欢迎实习生投递简历!

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

PLCT实验室正在为芯來科技的蜂鸟开发板以及RV-Star开发板提供QEMU的模拟,目前致力于允许实时操作系统(RTOS)RT-Thread运行于QEMU模拟的芯来开发板。

经过长时间针对中断控制器ECLIC的实现、实验与勘误,目前可以运行芯来科技SDK中的demo_timer 以及 demo_eclic等。

同时,RV-Star(gd32vf103)模拟目前初步支持RT-Thread的基础运行。预计逐步增加外设的模拟。

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

PLCT实验室的史宁宁依然每周在更新方舟编译器社区周报(OpenArkCompiler Weekly),目前已经更新到第二十六期。

方舟编译器周报每周日晚上通过Repo、知乎、Bilibili和邮件列表发布。

Repo: https://github.com/isrc-cas/arkcompiler-materials

知乎:https://zhuanlan.zhihu.com/openarkcompiler

Bilibili:https://www.bilibili.com/read/readlist/rl199373

邮件列表及其订阅方式:https://gitee.com/harmonyos/OpenArkCompiler/issues/I1EWAX

Spike 新特性支持

块设备功能支持已实现,目前主要通过 plugin device 支持块设备加载,需要特定内核驱动模块支持(已完成,后续会和代码一起更新到 github 中,欢迎大家试用)。更进一步的 virtio_blk, virtio_net 后端功能正在移植当中。

QEMU RVV v0.9+ 指令集支持

sifive 发起了第4版 patchset,sifive 自身已提交其 github 版本,PLCT 这边暂时不再进行同步。 PLCT RVV machine 暂无新功能添加。

MLIR

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

Committed:

Initial MLIR python bindings based on the C API.

https://github.com/llvm/llvm-project/commit/fcd2969da9e04a70103bfbf8a382c0842fcf6aaf#diff-d9deddd32f9ffd2d005c6ec62c06c90f

  • Basic support for context creation, module parsing and dumping.

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

[mlir] Add Index Type, Floating Point Type and None Type subclasses to python bindings.

https://github.com/llvm/llvm-project/commit/1f6c4d829c2dad147e30dcb0611eb9886dae9155#diff-d9deddd32f9ffd2d005c6ec62c06c90f

Based on the PyType and PyConcreteType classes, this patch implements the bindings of Index Type, Floating Point Type and None Type subclasses. These three subclasses share the same binding strategy:

  • The function pointer isaFunction points to mlirTypeIsA***.
  • The mlir***TypeGet C API is bound with the ***Type constructor in the python side.

Reviewed By: stellaraccident

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

Reviewing:

[mlir] Add Complex Type, Vector Type and Tuple Type subclasses to python bindings

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

CIRCT

刚开始看。欢迎实习生投递简历!

OpenROAD

刚开始看。欢迎实习生投递简历!

Chisel/FIRRTL

** FIRRTL 语言简介 @ OSDT **

Slides 下载地址:https://github.com/isrc-cas/PLCT-Open-Reports

技术报告视频地址 https://www.bilibili.com/video/BV12a4y177ME

永恒天平 / Eternal Balance

项目成员正在学习编程语言知识,持续更新《计算机程序的构造与解释》的学习记录如下:

https://zhuanlan.zhihu.com/p/193039589

https://zhuanlan.zhihu.com/p/201227236

https://zhuanlan.zhihu.com/p/202734420

https://zhuanlan.zhihu.com/p/208743032

永恒天平项目地址:

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

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

其他工作

GSoC OpenCV项目进展

PLCT实验室的在读研究生张尹同学参与的GSoC项目“Optimize OpenCV for RISC-V”现在进入了GSoC的final evaluation. 项目简介,GSoC期间的项目代码,目前的实现情况,以及对未来的工作展望在下面的pull request中有详细介绍。GSoC结束后我们依然会继续推进该项目,进一步完善OpenCV中对RISC-V向量扩展的支持与实现。

Universal intrinsics implementation with RISC-V vector extension

PLCT开源仓库及分享

  1. PLCT Weekly https://github.com/isrc-cas/PLCT-Weekly
  2. C910 LLVM 支持 https://github.com/isrc-cas/c910-llvm
  3. RISC-V Vector Extension Support(rvv-llvm) https://github.com/isrc-cas/rvv-llvm
  4. V8 for RISC-V https://github.com/isrc-cas/v8-riscv
  5. 永恒天平 https://github.com/isrc-cas/eternal-balance/
  6. PLCT 公开报告 https://github.com/isrc-cas/PLCT-Open-Reports
  7. QuickJS for RISC-V https://github.com/isrc-cas/quickjs-riscv
  8. PLCT-QEMU https://github.com/isrc-cas/plct-qemu
  9. Flounder https://github.com/isrc-cas/flounder
  10. OpenCV for RISC-V https://github.com/isrc-cas/opencv-riscv
  11. pacific(方舟编译器玩具运行时) https://github.com/isrc-cas/pacific
  12. rvv-benchmark https://github.com/isrc-cas/rvv-benchmark
  13. 工具箱 https://github.com/isrc-cas/PLCT-toolbox