Skip to content

Latest commit

 

History

History
157 lines (88 loc) · 9.15 KB

2020-06-16.md

File metadata and controls

157 lines (88 loc) · 9.15 KB

PLCT开源进展·第03期·2020年06月16日

卷首语

中国有句老话,大家可能都知道,叫:「高调做事,低调做人。」

最近在国内的IT行业,我们看到了一个有意思的现象:不管是初创团队、还是深耕细分领域多年的操作系统公司、还是方兴未艾的云计算巨头,都开始「高调招人」。而高调的亮点,并未体现在「事」,而是体现在「人数」,动辄开口就是五千人规模,豪横。

作为PLCT实验室的招聘负责人,我是非常羡慕的。PLCT平均需要花六到九个月来初筛、接触、考察、考核、团队磨合一位候选人,最终发出Offer并迎接新同事加入。每一位同事的加入都是独一无二的定制考察和培育过程。对于基础不好但是有动机和能力的同学,我们通过六个月到两年半不等的实习期来完成从LV2到LV4+的培养,成为合格的PLCT新同事。

这么长的招聘周期,当然是首先是因为我们穷(老脸一红),要确保每个人都能把自己的工资赚出来。更重要的是,PLCT从事的是基础软件领域,要求非常扎实的计算机和数学理论功底,强悍的单兵分析和调试能力,这些能力,学校不教,公司也不教,社招面试了很多,能够通过PLCT能力测试的比例非常低。

我个人对于目前业内的「高调做事 by 高调招很多人」的模式感到担忧。五千人招聘的宣传口号, 这种运动式、营销目的的招聘形式,体现了对要做的技术难度和深度的不了解、在技术人员能力匹配程度、特定能力的培养周期等都缺乏考虑。 如果招聘花的钱不是自己赚的、或不用自己去把工资赚回来,那么,情况就会更加糟糕。

在这样浮躁的环境里,不如,低调做人,也低调的做点真正的事情。从6月1日起,PLCT实验室新设立 Code Analyst (代码分析员)岗位。目标是将编译器、虚拟机、模拟器、调试器等基础开源软件中的 undocumented details 文档化,确保PLCT具备维护、定制、魔改的能力。我们在此向在校的学生和从业者、爱好者发出邀请,加入我们的代码分析员阵列,成为开源知识图书馆的一员。新开放岗位长期有效,欢迎对开源有兴趣的同学投递简历。[9]

来一起做点有意思有难度的事情吧!

本期亮点:永恒天平的再生产

Eternal Balance(永恒天平)项目是PLCT内部的测评体系,偏重编译系统的性能(速度)、安全性、代码体积三个方面。从2019年11月份开始到12月份,PLCT实验室邱吉主管做了5次测评并公开了报告。之后由于要恰饭,邱主管去组建和lead一个新项目(V8 for RISC-V),永恒天平项目一直处于暂停的状态。

随着LV3实习生陈影同学的加入,永恒天平项目开始重新运转。目前,陈影同学已经完成了半年前5份测评中的4份报告的复现,复现过程中的源代码、构建系统修改、原始数据等都已经更新到了永恒天平项目的仓库,最后一份报告也将在6月17日完成。

之后,陈影同学将开始进行自动化测评系统的搭建和维护,这将构成永恒天平项目的本体。(实际上 eternal-balance 的含义就是一个永远在运行的自动测评系统,类似于在RV工具链领域的 AreWeFastYet.com )

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

如果你感兴趣,加入永恒天平项目,一起做些有意思的事情!如果你是在校学生的话,可以以实习生身份加入,我们还可以发一点补贴。如果已经工作了,可以以志愿者身份贡献力量。

RISC-V 开源工具链进展

RISC-V Vector Extension Support

这两周PLCT在RVV方向上有以下工作进展:

  1. LLVM上的RVV汇编支持:

    • 将RISC-V向量扩展的汇编反汇编的支持更新至最新的v0.9版本。目前PLCT实验室的rvv-llvm仓库的主分支rvv-iscas已经完全支持v0.9版本的汇编与反汇编。由于RVV intrinsics的文档也已经更新至v0.9版本,我们后续会将intrinsics的支持也转移到主分支下,基于v0.9版本的汇编继续推进intrinsics支持。

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

  2. LLVM上的RVV intrinsics支持:

    • 实现了vsetvl指令intrinsic,添加了vsetvl. ll测试用例。
    • 添加了RVV intrinsics向量类型(Vector Types)系统。
    • 在clang中添加vector扩展支持选项,实现32位和64位march。
    • 进行了riscv的gdb调试,将riscv32的gcc链接成可执行文件。

    目前intrinsics支持暂时位于rvv-0.8分支下:

    GitHub Link: https://github.com/isrc-cas/rvv-llvm/tree/rvv-0.8

  3. RVV规范文档中文连载:

    • 实验室的实习生陈影同学在知乎连载的《RISC-V "V"(向量)扩展规范v0.9+文档》第四期已发布,目前更新至RVV规范的第十章。

    Link: https://zhuanlan.zhihu.com/p/144282006

Clang/LLVM for RISC-V

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

V8 for RISC-V 项目进展

移植进展:

  1. 正在进行ASM和CPP类型BUILTIN的实现
  2. 继续完善Codegen, MacroAssembler和Assembler,开始进行Disassembler的实现
  3. 关闭ASM和CPP BUILTIN以后,可以成功构建mksnapshot,产生snapshot_blob.bin并构建出RISCV64的d8 binary
  4. 开始适配d8运行所需的Linux操作系统

持续输出原创性V8技术分析报告

  1. V8中的Snapshot机制分析
  2. V8: 几个Torque语句分析
  3. V8引擎TurboFan后端代码浅析

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

技术报告视频地址 https://space.bilibili.com/296494084

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

参考SiFive Freedom E系列在QEMU的实现,我们针对芯来科技的RV-Star开发板进行了模拟,实现芯来SOC Machine 主体代码以及芯来主要外设框架代码。能够运行hello world的支持芯来模拟的基础版QEMU实现基础版目前仍在测试过程中,预期在本月公布。

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

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

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

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

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

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

MLIR

MLIR的GSoC 2020项目MLIR Python Bindings发布GitHub仓库:https://github.com/zhanghb97/mlir-python-bindings

初步完成:

  • MLIR Module 和 Context的初始化
  • 从Module中获取Operation:getOperation()
  • 从Operation中获取Name:getName()

其他工作

非常高兴的宣布,新加入PLCT实验室的汪辰老师开通了知乎账号,后续将不定期会有文章分享,欢迎关注:

https://www.zhihu.com/people/unicornxdotw

以下是汪辰老师的第一次分享(掌声鼓励):

搜集整理基于树莓派开发底层裸机驱动程序的相关知识与技能,希望对热爱计算机技术,渴望探索底层开发的同学提供帮助,进而能够用树莓派这款现代超级流行的硬件平台替代经典的 51 单片机来学习裸机开发。

先贡献一篇随笔,以后积攒多了再搞个专栏系列。

知乎:https://zhuanlan.zhihu.com/p/148629587

参考链接

[1] PLCT许愿池2020计划 https://github.com/isrc-cas/PLCT-Weekly/blob/master/RISCV-DevTools-Wishlist-2020.md

[2] PLCT2020年开源路线图 https://github.com/isrc-cas/PLCT-Weekly/blob/master/RISCV-Roadmap-2020.md

[3] PLCT南京小队隶属于软件所南京分院智能软件研究中心。

[4] 面向国内 RISC-V 芯片厂商的 QEMU 支持计划 https://github.com/isrc-cas/PLCT-Weekly/blob/master/PLCT-QEMU-Support-Project-for-Domestic-RV-Vendors.md

[5] PLCT OpenDay 2019 https://github.com/isrc-cas/PLCT-Weekly/blob/master/PLCT-OpenDay-2019.md

[6] RISC-V Vector Extension Intrinsic RFC 开始活跃更新,我们号召国内厂商抱团参与 https://mp.weixin.qq.com/s/qAQmXwhCccVGms90lJzz2g

[7] PLCT实验室的开放职位 https://github.com/isrc-cas/PLCT-Weekly/blob/master/open-positions.md

[8] [PLCT] 面向国内 RISC-V 芯片厂商的 QEMU 支持计划 https://mp.weixin.qq.com/s/e5dDHOUY6oz3KBhqCRn5nw

[9] https://github.com/isrc-cas/PLCT-Weekly/blob/master/interns.md

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