中国有句老话,大家可能都知道,叫:「高调做事,低调做人。」
最近在国内的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
如果你感兴趣,加入永恒天平项目,一起做些有意思的事情!如果你是在校学生的话,可以以实习生身份加入,我们还可以发一点补贴。如果已经工作了,可以以志愿者身份贡献力量。
这两周PLCT在RVV方向上有以下工作进展:
-
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
-
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
-
RVV规范文档中文连载:
- 实验室的实习生陈影同学在知乎连载的《RISC-V "V"(向量)扩展规范v0.9+文档》第四期已发布,目前更新至RVV规范的第十章。
本次除RVV之外没有其他新增内容。
移植进展:
- 正在进行ASM和CPP类型BUILTIN的实现
- 继续完善Codegen, MacroAssembler和Assembler,开始进行Disassembler的实现
- 关闭ASM和CPP BUILTIN以后,可以成功构建mksnapshot,产生snapshot_blob.bin并构建出RISCV64的d8 binary
- 开始适配d8运行所需的Linux操作系统
持续输出原创性V8技术分析报告
- V8中的Snapshot机制分析
- V8: 几个Torque语句分析
- V8引擎TurboFan后端代码浅析
下载地址:https://github.com/isrc-cas/PLCT-Open-Reports
技术报告视频地址 https://space.bilibili.com/296494084
参考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的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 Weekly https://github.com/isrc-cas/PLCT-Weekly
- C910 LLVM 支持 https://github.com/isrc-cas/c910-llvm
- RISC-V Vector Extension Support(rvv-llvm) https://github.com/isrc-cas/rvv-llvm
- V8 for RISC-V https://github.com/isrc-cas/v8-riscv
- 永恒天平 https://github.com/isrc-cas/eternal-balance/
- PLCT 公开报告 https://github.com/isrc-cas/PLCT-Open-Reports
- 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
- OpenCV for RISC-V https://github.com/isrc-cas/opencv-riscv
- pacific(方舟编译器玩具运行时) https://github.com/isrc-cas/pacific