Skip to content

Latest commit

 

History

History
890 lines (603 loc) · 46 KB

open-internships.md

File metadata and controls

890 lines (603 loc) · 46 KB

实习生岗位

全职员工的招聘可以 从 PLCT-Weekly 仓库找到

如果你是即将毕业的应届生,欢迎按照下属方式投递简历,应届生也可以走实习生的招聘通道。

PLCT实验室(PLCT Lab)

PLCT全称是程序语言与编译技术实验室,隶属于中国科学院软件研究所(ISCAS)智能软件研究中心(ISRC)。PLCT实验室致力于成为编译技术领域的开源领导者,推进工具链及运行时系统等软件基础设施的技术革新,具备主导开发和维护重要基础设施的技术及管理能力。与此同时,致力于培养一万名编译领域尖端人才,推动先进编译技术在国内的普及和发展。

如何正确的投递简历

在投递简历之前最好对我们有更多一点了解。以下是阅读材料:

阅读之后,接下来就可以发邮件了。以下内容请认真阅读。不符合条件邮件不会收到回复。

有意者请投递简历至: 吴老师 wuwei2016@iscas.ac.cn

邮件标题请注明: 岗位编号 - 姓名 - 手机号码 - 学校

(兼职实习的伙伴可以用【兼职】取代【学校】)

邮件正文请: 进行跟应聘职位相关的自我介绍,不超过300字。

邮件必须附带简历。没有PDF格式简历的邮件不保证会收到回复

实习要求和注意事项

所有岗位都需要满足的:

  • 有强烈地上进心,希望自己能够变得更强、更好。
  • 并且能够积极而谦卑地与他人一起共事,及时的响应团队成员的消息。
  • 岗位默认都是远程实习,因此需要你具有比较好的自律能力。
  • 希望你能够有至少三个月的实习时间,并能够保证每周有一些连续的时间可以用来实习。

技术岗位(开发、测试、助教)需要满足的:

  • 技术岗位默认要求能力等级达到LV2及以上。参见:我们如何面试实习生我们如何给实习生评级
  • 熟练使用 Linux 命令行,并且能够写简单的 Bash 脚本。参考 linux技能表
  • 熟练使用 git 进行团队合作。参考 git技能列表
  • 知道如何描述 bugs/issues 以及礼貌地向其他人求助,做到尽量不浪费他人的时间,将复现 bug 需要的信息提供完整。
  • 加分:自学了 RISC-V 指令集,包括 RV32GC 和 RV64GC。在自己的电脑上部署运行起来QEMU-RISCV64以及Spike模拟器。
  • 加分:对于网络知识有基本了解并熟练使用,例如SSH任意端口登陆、Port Forwarding、反向链接、ProxyCommand 等配置自行掌握。

运营岗位需要满足的:

  • 喜欢跟人打交道。能够倾听。能够观察和共情到他人的情感和需求。主动沟通。
  • 对外界有强烈的好奇心。
  • 可选:能看懂简单的Python程序。参考 python技能表
  • 可选:最好是有GitHub账号,知道如何开新分支,提交PR。这个如果不知道可以看看GitHub官网的帮助,很详细。
  • 可选:具备网站制作、社区运营、公众号运营、社团组织、活动策划、美工设计等技能可以加分。

一些注意事项:

  • 需要注意开源社区都是个人出道,所有的行为都是公开的,要有一颗大心脏。
  • 实习有实习费。每个月底统计外部可见产出,跟mentor商量实习费金额。次月25日左右发放。劳务费每个月根据产出浮动,浮动区间 0k - 5k,正常产出一般是税前 2k-3k 之间。厉害的产出不受5k的限制,可以更高。
  • 实习双方随时都可以解除契约。实习生离职前需要跟mentor沟通下工作交接,并商议好最后一笔实习费发放(如果有产出的话)。

开放岗位列表

(Next Job ID: 122)

P121 RISC-V 测试实习生(朱旭昌小队,Sail/ACT 测试方向) 【20240527 开放 2 名】

工作内容:

  • 参与PLCT实验室在RISCV-Sail模型和ACT(riscv-arch-test)等相关开源项目(包括riscof/riscv-isac/riscv-ctg等)的测试。在开源社区内进行ISSUE和PR的提交与反馈。

岗位要求:

  • 能力等级:LV2 及以上
  • 对 RISC-V 指令集有一定的了解,掌握RV32I拓展指令的知识。
  • 了解ACT测试及对应测试框架,能本地跑通一次ACT测试。
  • 有一定英语水平,能够在国际开源社区流畅与外国人交流。
  • Bonus1:对sail整个项目有一定了解,了解sail的前后端及其编译过程。
  • Bonus2:对计算机组成原理以及对应的模拟器的实现有所了解。
  • Bonus3:有过ocaml语言编写历史或者C语言能力出众。

P120 RISC-V 测试实习生(郑景坤小队,RuyiSDK 支持矩阵)【20240527 开放 5 名】

PLCT 实验室新成立了丁丑小队,主要负责 RuyiSDK 支持矩阵,涵盖了对主流 RISC-V 开发板的主流操作系统的支持情况,作为一站式入口提供在 RuyiSDK 官网首页,方便用户迅速查找自己手上的开发板能用什么操作系统、怎么使用,快速上手。目标是覆盖市面上所有 RISC-V 开发板。

目前进行中/已完成的工作可查看 ruyisdk/support-matrix 仓库。

工作内容:

  • 测试(所有)目前在售 RISC-V 设备的操作系统可用性。
  • 测试常用软件、工具链等在 RISC-V 设备上的可用性、稳定性与性能。
  • 提交测试报告,编写相关文档。
  • 相关文档的 i18n / 国际化工作。

岗位要求:

  • 能力等级:LV2+
  • 大学英语四级/六级或同等水平,能够在即时通讯软件、国际开源社区流畅与外国人交流的程度,能够做简单的技术文档翻译工作。
  • 使用过至少一种 Linux 发行版,能够独立看着官方文档进行配置以自己日常使用需求的程度。
  • 微信等即时通讯软件响应速度快。尤其是工作日。
  • 做事细心、有耐心。有良好的沟通表达能力。
  • Bonus: 使用/调试过至少一款开发板,当然,如果是 RISC-V 开发板更好。
  • Bonus²: 有和社区对线(非暴力沟通)的经验。

P119 RISC-V 测试实习生(蔡玮霖小队,RuyiSDK 测试方向) 【20240527 开放 2 名】

工作内容:

  • 测试用例开发。理解测试需求,跟踪 RuyiSDK 工具版本迭代,修复优化现有测试用例及编写新的测试用例,用 ruyi-mugen 测试和 openQA 测试为 RuyiSDK 工具质量保驾护航
  • 测试框架开发。测试使用的 ruyi-mugen 框架为自有 mugen 分支,为框架添加新功能以满足测试需求
  • 自动化测试平台构建。用已有的 Jenkins、 openQA、 GitLab 平台,设计测试平台架构,用 Python 实现测试的自动触发、测试的自动失败重测、测试平台的自动日常维护

岗位要求:

  • LV2 及以上
  • 了解 RuyiSDK,在自己的计算机上部署了可用的 RISC-V 虚拟机或容器
  • 微信响应速度快、自驱力强

P118 RISC-V 测试实习生(张馥媛小队,短视频教学普及方向) 【20240523 开放 2 名】

岗位介绍:对RISC-V有兴趣?平时爱刷短视频?这里有个实习岗位很适合你~ get新技能,熟练之后,尝试变成可以传授这个技能的专家吧!把你学会的RISC-V知识做成短视频~

工作内容:

  • 调研RISC-V教学内容,形成调研报告。
  • 学习RISC-V知识,测试复现已有的教学视频并编写教学短视频脚本。
  • 录制/拍摄教学视频及后期剪辑。
  • 协助mentor处理运营相关事务。

岗位要求:

  • LV2 及以上。
  • 爱刷短视频,了解流行元素。
  • 有制作教学视频或技术分享类视频的经验。
  • 自学了 RISC-V 指令集。在自己的电脑上部署运行起来QEMU-RISCV64。
  • 微信响应速度快、自驱力强、良好的沟通和表达能力。

P117 Linux Kernel RISC-V 开发实习生 (20240510 开放 10 名)

工作内容:

  • 写代码,帮助国内 RISC-V 厂商的 IP/SoC 代码进入 Linux Kernel 主线。
  • 帮助维护由PLCT实验室托管维护的 Linux Kernel codebase(目前主要是 6.6 版本长期维护)。
  • 写文档、做技术分享和讨论。
  • 参与英文会议,跟全球社区开发者 battle & review。
  • 根据自己的兴趣参与本地或同城高校的 RISC-V 技术交流推广活动。

岗位要求:

  • LV3 及以上。
  • 玩过 kernel 代码,熟练 debugging。喜欢写 Kernel 代码。
  • 微信响应速度快、自驱力强。

额外说明事项:

  • 实习劳务费每个月根据产出浮动,浮动区间 0k - 5k,大多数学生正常产出一般是税前 2k-3k 之间。不算高。 完成(merge)有点厉害的 upstream 任务则另外以 5k 为单位叠加

BJ116 Gold Linker RISC-V 移植实习生(20240427 开放1名)

任务描述

让 Gold Linker 支持 RISC-V,并且持续优化和维护。

能力要求

LV3 以上。需要完成下手任务的前4步才能投简历。

学习步骤和工作步骤

Linker的移植从简单到复杂,先支持静态链接(static linking),再支持动态链 接(dynamic linking)。

  1. 确保手头有最新的: ELF格式手册: https://refspecs.linuxbase.org/elf/elf.pdf RISC-V ISA手册: https://riscv.org/technical/specifications/ RISC-V ABI手册: https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md GNU Binutils源代码: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git

  2. 阅读ELF格式手册和 RISC-V ABI 手册,Relocation 相关的部分着重(一周)

  3. 编写一个简单的 ELF parser,能parse最简单的 helloworld.o,尤其是 .rel/.rela 段,需要跟 readelf -Wr 输出一致(一周)

  4. 结合RISC-V ISA系统性的汇报RISC-V带立即数编码的指令和关联的relocation类型 (一周)【完成这一步就可以发简历了】

  5. 开始在GOLD linker实做RISC-V静态链接支持(3-5周): A. 添加RISC-V dummy框架,确保能编译出后端 B. 添加基本的静态链接需要的hook,确保能出发相关的代码 C. 添加h elloworld 静态链接重定位支持

  6. 系统性的学习动态链接的知识,汇报GOT/PLT表机制原理(一周)

  7. 调研 RISC-V GOT/PLT 表结构并汇报(一周)

  8. 在 GOLD linker 实作RISC-V动态链接支持(两周 ~ 四周)

  9. 系统性的学习TLS(thread local storage)相关知识(一周)

  10. 在 GOLD linker 实作 TLS optimization (一周 ~ 两周)

  11. IFUNC支持(两周)

全程三个月 ~ 六个月。计划明年6/7月upstream。对参与者来说是难得的机会。

BJ115 openEuler RISC-V 操作系统开发实习生(OERV团队) 【20240501 开放名额:20】

岗位介绍:

参与 openEuler 官方 risc-v sig 的维护工作,探索 RISC-V 操作系统领域前沿技术,建设和推广 openEuler RISC-V 生态。

请注意自2024年3月开始,OERV团队完成孵化,成为与PLCT实验室平级的团队。上机考试和面试等由OERV团队负责人王经纬老师主导。

实习内容:

  • 跟踪 openEuler 在 RISC-V 架构的软件包构建情况并进行修复
  • 参与以 llvm 构建发行版的「LLVM 平行宇宙计划」的软件包构建情况、进行尝试性修复与提交
  • 协助 maintainer 调研并解决 oerv 系统 issue
  • 构建并丰富openEuler软件生态,参加社区 SIG 组开源运作
  • 调研分析操作系统领域最新动向和前沿技术,结合产品场景应用落地
  • 根据自己的兴趣参与本地或同城高校的 RISC-V 技术交流推广活动

岗位要求:

  • 基础能力 Lv2 及以上。
  • 对 RISC-V 指令集有一定了解,对 RISC-V 生态建设感兴趣。
  • 对 linux 发行版有一定使用经验,尝试或使用过包括但不限于 openEuler/archlinux/fedora/Debian 等发行版的 RISC-V 镜像。
  • 掌握中文普通话、英文[通常要求 CET4/6 通过]。
  • 微信响应速度快,每周7天中至少能够有3天、工作时间有至少连续3个小时在线一起工作。

BJ114 Pixman RISC-V 优化实习生 【20240218 开放名额:1】

岗位介绍: Pixman 是非常重要的一个底层像素化图像处理库,被 X11 、 Cairo 等多个显示相关开源项目使用,构成了现代桌面 Linux 绝大多数图形应用程序界面绘制的基础。然而很不幸的是,该库至今为止不具备任何 RISC-V 的架构相关优化代码,在 RISC-V 设备上完全使用纯 C 的 fallback codepath 运行,性能存在较大提升空间(尤其考虑使用 V 扩展的情况)。

实习内容:

  • 实现 Pixman 的 RV 优化代码,重点考虑支持 V 扩展的情况,并在实际硬件上进行性能验证,且如果可能的话对代码进行主线化。

入职要求:

  • LV3 ,熟练使用 C 语言(且必要时会使用汇编),熟悉 RISC-V 指令集与任意 SIMD/Vector 指令的优化开发(最好是 RV V 扩展),最好能够熟练掌握英文。

BJ113 操作系统移植: ThreadX 移植到 RISC-V (Milk-V Duo) 【20240217 开放名额:1】

岗位介绍: 将新开源捐赠给 Eclipse 基金会的 ThreadX 移植到 RISC-V 上(如果还没有移植的话);同时进行测评验证,补充适配更多的RISC-V设备。

岗位要求:

  • 有基本的RTOS的学习积累。
  • LV2

BJ112 QEMU RISC-V 开发实习生 (已满)

岗位介绍:

  • 参与 PLCT 实验室在 QEMU 开源项目的开发。在开源社区直接提交代码。

实习内容:

  • 使 QEMU 的riscv64-linux-user模式能解析 ELF32 格式可执行文件并正确运行。

入职要求:

  • LV2+,对模拟器的内部实现有兴趣。
  • 远程实习,不需要坐班。

BJ111 TH1520 U-Boot 移植实习生 (20240101 开放 1 名)

岗位介绍:

TH1520有一个vendor uboot 需要移植到主线uboot 并提交到主线

实习内容:

  • 移植vendor uboot开源部分功能到主线uboot 并提交给主线

岗位要求:

  1. 基础能力 LV3 及以上,熟练使用c语言。
  2. 拥有 lpi4a/ahead/meles 开发板(必须)。
  3. 可以流畅书写和阅读英文。
  4. 有 u-boot 相关开发经验者优先。

参考uboot链接:

https://github.com/revyos/thead-u-boot/tree/thead-sdk

BJ110 LLVM Flang 开发实习生 (20240101 开放 2 名)

岗位介绍:

Flang 是 LLVM 的 Fortran 语言前端,处于积极开发之中。Flang 当前存在很多问题有待修复,也有一些功能尚未实现。

已经确认有待修复的问题可以参见:

计划中、尚未实现的功能可以参见:

实习内容:

  • 参与 Flang 已知问题的修复,并将工作提交到上游
  • 参与 Flang 尚未实现功能的开发,并将工作提交到上游
  • 利用 gfortran 测试集等对 Flang 进行测试,针对失败用例进行修复或整理提交 issue 到上游

岗位要求:

  1. 基础能力 LV2 及以上,熟练使用脚本语言,shell/python 等。
  2. 熟悉 LLVM 编译器,了解 Fortran 语言。
  3. 可以流畅书写和阅读英文。
  4. 有 LLVM/MLIR 相关开发经验者优先。

OC109 QtRVSim 开发实习生 (20240211 开放 2 名)

岗位介绍:

https://github.com/cvut/qtrvsim 添砖加瓦。PLCT实验室与该开源项目作者建立了初步的合作联系。

实习内容:

注意部分内容有可能已经完成了,请务必在开始之前联系PLCT实验室进行沟通。

TL;DR of the topics (in random order):

  • finish porting more complex unit tests and extend them
  • compressed ISA support
  • 64bit ISA support in gui (it is hard to fit it there)
  • DWARF location display (when C code is simulated)
  • declarative specification of (at least simple) pseudoinstructions (for both encoding and decoding). Right now, it is a special case for compilation only.
  • detail view of instruction encoding
  • recording of pipeline utilization with visualization like this (https://image.slidesharecdn.com/chapter4theprocessor-100520050519-phpapp01/95/chapter-4-the-processor-55-728.jpg?cb=1274344463)
  • time travel debugging ("step back" ability, probably for basic components only, not memory, peripherals...)

岗位要求:

  1. LV3及以上。
  2. 熟练英文文字交流。
  3. 懂得礼貌友好的进行英文社区沟通。

BJ108 RISC-V 测试实习生(北京坐班) (20240211 开放 10 名)

岗位介绍:

中国科学院软件研究所PLCT团队开发和维护着包括 openEuler RISC-V 在内的多个 Linux 发行版。为了保证 RISC-V 平台用户的使用体验,在操作系统的自动化测试之外,需要大量的进行物理设备上的测试验证。本岗位的工作内容是借助于 ISCAS RISC-V Lab 中丰富的 RISC-V 开发板和计算机,对包括 openEuler、 RevyOS、 RT-Thread 在内的多种操作系统进行实际的安装、使用、测试,并验证浏览器、办公软件等常用软件在 RISC-V 上的运行稳定性。

实习内容:

  1. 根据测试要求,将 openEuler 等多款操作系统安装在 Pioneer Box、 LicheePi 4A 等 RISC-V 设备上,并测试功能可用性、稳定性、性能。
  2. 评审和修改完善相关的技术文档。
  3. 参与测试用例的撰写,包括手工测试用例和自动化测试脚本等。
  4. 参与技术分享,包括中文和英文会议的发言等。
  5. 工作突出的同学有机会代表测试小队在各类 RISC-V 会议上进行演讲。

岗位要求和说明:

  1. 需要达到 LV2 能力等级,并且没有在软件所实习过。
  2. 做事细心不浮躁,写文档有耐心。
  3. 在投递简历之前,需要已经自学过 RISC-V 是什么,并且能够在 Linux 环境下的 QEMU 上跑起来 openEuler RISC-V。
  4. 要求北京学校在校大学生,可以来软件所北京本部坐班,工作日每周至少2天。实习生费用按照出勤天数(100元/天)+外部可见产出(可变)叠加的方式。
  5. 注意不提供住宿和任何补助,北京以外其他城市同学可以看看其他岗位信息,基本都是可以远程的。

BJ107 DynamoRIO RISC-V 移植开发实习生(1 人)

岗位介绍:

DynamoRIO 是一个运行时的二进制动态插桩系统,广泛地用于程序的分析、模拟、优化以及性能评估等等。目前 DynamoRIO 的核心模块已经支持 RISC-V,但仍有大量工作需要推进。

实习内容:

和 mentor 一起参与 DynamoRIO for RISC-V 的开发,并将自己的工作直接提交到上游。

岗位要求:

  1. 基础能力 Lv2 及以上;
  2. 对 RISC-V 指令集有一定了解;
  3. 可以流畅书写和阅读英文;
  4. 投递简历之前,我们希望你已经了解并尝试使用过 DynamoRIO。

BJ102 Buddy Compiler 开源社区运营助理实习生 (已满,暂停招聘)

工作内容:

  • 跟踪 Buddy Compiler PR 和 Issue 信息,保障社区仓库的稳定性和响应实时性。
  • 建立维护监控体系,及时检测和处理软硬件适配问题和软件依赖问题等。
  • 每周围绕 MLIR 和 RISC-V 进行全网资料收集和情报整理。
  • 撰写社区宣传文章、开源活动申请书等。
  • 组织社区会议和活动,开源项目每周同步 / 社区伙伴月度分享。

岗位要求:

  • 基础能力 LV2 及以上。
  • 掌握中文普通话、英文。
  • 微信响应速度快,每周至少能够有3天、工作时间有至少连续4个小时在线一起工作。

BJ100 RISC-V nettle 开发实习生 (20240101 开放 1 名)

工作内容:

  • 建立性能测评环境并进行持续跟踪(后续合并进入 PLCT RISC-V PTS)。
  • 给 nettle 补充 RISC-V 支持,使用 Crypto Scalar 和 Vector 等扩展指令进行加速,并且尝试进行 upstream。
  • 搭建 for RISC-V 的回归测试环境。
  • 根据自己的兴趣参与本地或同城高校的 RISC-V 技术交流推广活动。(LV2)

岗位要求:

  • 基础能力 LV3 及以上。
  • C/C++、计算机本科各类基础课原理扎实,自学掌握能力强。

BJ99 RISC-V OpenSSL 开发实习生 (20240101 开放 1 名)

工作内容:

  • 建立性能测评环境并进行持续跟踪(后续合并进入 PLCT RISC-V PTS)。
  • 基于openssl算法库,对加解密算法 aes、rsa、sm2、 sm3、 sm4、 md5、 sha、 des、 使用 crypto vector 扩展指令进行加速,并且尝试进行 upstream。
  • 根据自己的兴趣参与本地或同城高校的 RISC-V 技术交流推广活动。(LV2)

岗位要求:

  • 基础能力 LV3 及以上。
  • C/C++、计算机本科各类基础课原理扎实,自学掌握能力强。

BJ98 Flutter RISC-V 开发实习生 (20240101 开放 1 名)

工作内容:

  • 调研分析 Flutter 在 RISC-V Linux 下的适配现状和缺失能力部分,及其应用辐射范围(LV2)
  • 进行必要的 RISC-V Porting (LV4+)
  • 根据自己的兴趣参与本地或同城高校的 RISC-V 技术交流推广活动。(LV2)

岗位要求:

  • 基础能力 LV3 及以上。
  • C/C++、计算机本科各类基础课原理扎实,自学掌握能力强。

BJ97 Milk-V Duo IDE 开发实习生 (20240101 开放 5 名)

工作内容:

  • 基于 VSCode 进行二次(插件)开发,为 Milk-V Duo 提供常用的编辑、编译、调试、管理、配置能力。
  • 开发扩展 Duo 相关的代码示例。
  • 根据自己的兴趣参与本地或同城高校的 RISC-V 技术交流推广活动。

岗位要求:

  • 基础能力 LV3 及以上。
  • C/C++、计算机本科各类基础课原理扎实,自学掌握能力强。
  • (加分)玩过各种嵌入式小物件;最好是摸过电焊(大学课程里的也算);最好是调试过多线程程序或者内核。
  • (加分)有设计或美工软件使用的经验(画了点图标、P过自己照片都算)。
  • 微信响应速度快、自驱力强。

BJ96 Milk-V Duo SDK 开发实习生 (20240101 开放 2 名)

工作内容:

  • 整理目前 Duo 相关的文档和 Demo,进行验证和完善、扩充。
  • 探索 Duo 中大小核的各类玩法,输出 Demo 和技术分享。
  • MicroPython 支持; RT-Thread 支持。
  • 参与英文会议,跟全球社区开发者 battle。
  • 根据自己的兴趣参与本地或同城高校的 RISC-V 技术交流推广活动。

岗位要求:

  • 基础能力 LV3 及以上。
  • C/C++、计算机本科各类基础课原理扎实,自学掌握能力强。
  • (加分)玩过各种嵌入式小物件;最好是摸过电焊(大学课程里的也算);最好是调试过多线程程序或者内核。
  • 微信响应速度快、自驱力强、自己喜欢写 Kernel 代码。

BJ95 Milk-V Duo Linux Kernel 开发实习生 (20240101 开放 2 名)

工作内容:

  • 写代码,帮助 Milk-V Duo / CV1800 进入 Linux Kernel 主线
  • 写文档、做技术分享和讨论。
  • 参与英文会议,跟全球社区开发者 battle。
  • 根据自己的兴趣参与本地或同城高校的 RISC-V 技术交流推广活动。

岗位要求:

  • 基础能力 LV3 及以上。
  • 玩过 kernel 代码,熟练 debugging。
  • 微信响应速度快、自驱力强、自己喜欢写 Kernel 代码。

额外说明事项:

  • 劳务费每个月根据产出浮动,浮动区间 0k - 5k,正常产出一般是税前 2k-3k 之间。不算高。 完成牛x的 upstream 任务另外以 1w 为单位叠加

BJ94 Milk-V Duo Buildroot 开发实习生 (20240101 开放 1 名)

工作内容:

  • 写代码,帮助 Milk-V Duo / CV1800 进入 Buildroot 主线。
  • 写文档、做技术分享和讨论。
  • 参与英文会议,跟全球社区开发者 battle。
  • 根据自己的兴趣参与本地或同城高校的 RISC-V 技术交流推广活动。

岗位要求:

  • 基础能力 LV3 及以上。
  • 在投递简历之前已经尝试玩过 Buildroot, 在 RISC-V 设备上跑起来 Buildroot 构建的系统, 尝试修改过一点代码。
  • 微信响应速度快、自驱力强、自己喜欢倒腾。

BJ93 Milk-V Duo Yocto 开发实习生 (20240101 开放 1 名)

工作内容:

  • 写代码,帮助 Milk-V Duo / CV1800 进入 Yocto 主线。
  • 写文档、做技术分享和讨论。
  • 参与英文会议,跟全球社区开发者 battle。
  • 根据自己的兴趣参与本地或同城高校的 RISC-V 技术交流推广活动。

岗位要求:

  • 基础能力 LV3 及以上。
  • 在投递简历之前已经尝试玩过 Yocto, 在 RISC-V 设备上跑起来 Yocto 构建的系统, 尝试修改过一点代码。
  • 微信响应速度快、自驱力强、自己喜欢倒腾。

BJ92 Milk-V Duo OpenWRT 开发实习生 (20240101 开放 1 名)

工作内容:

  • 写代码,帮助 Milk-V Duo / CV1800 进入 OpenWRT 主线。
  • 写文档、做技术分享和讨论。
  • 参与英文会议,跟全球社区开发者 battle。
  • 根据自己的兴趣参与本地或同城高校的 RISC-V 技术交流推广活动。

岗位要求:

  • 基础能力 LV3 及以上。
  • 在投递简历之前已经尝试将 OpenWRT 在 RISC-V 设备上跑起来。
  • 微信响应速度快、自驱力强、自己喜欢写操作系统代码。

BJ89 编译器功能支持实习生 (20240101 开放 2 名)

岗位名称: 编译器功能支持实习生

工作内容: 完成rvv0.7.1 汇编器以及intrinsic功能支持。具体:

  • 需要根据rvv0.7.1 spec在llvm的riscv后端完成汇编器支持。
  • 根据rvv0.7.1 intrinsic 标准,完成llvm和clang的intrinsic支持.
  • 完成功能开发阶段的单元测试编写,改写目前rvv-intrinsic-doc的测试用例使之适用于rvv0.7.1。

报名要求:

  1. LV3及以上;熟练使用脚本语言,shell/python 等。
  2. 熟悉 LLVM 编译器,熟悉 riscv 架构。
  3. 了解rvv指令集,以及intrinsic.
  4. 有过intrinsic开发经验的优先。

BJ88 RISC-V SAIL 开发实习生 (20240101 开放 10 名)

工作内容:

  • 参与PLCT实验室在SAIL等相关开源项目的开发。在开源社区直接提交代码。

入职要求:

  • LV3+,对RISC-V形式化模型的内部实现有兴趣。
  • 远程实习,不需要坐班。

BJ87 RISC-V ACT 开发实习生 (20240101 开放 10 名)

工作内容:

  • 参与PLCT实验室在ACT(riscv-arch-test)等相关开源项目(包括riscof/riscv-isac/riscv-ctg等)的开发。在开源社区直接提交代码。

入职要求:

  • LV2+,对RISC-V架构测试有兴趣。
  • 远程实习,不需要坐班。

BJ76 OpenCV RISC-V P 扩展移植实习生 (已满,暂停招聘)

工作内容:

  • 参与 PLCT 实验室 OpenCV for RISC-V 相关项目的开发,主要包括面向 RVP 扩展的 Universal Intrinsic 后端开发和针对现有 SIMD 优化算法的移植。

入职要求:

  • LV2+,熟悉 C++语言,喜欢从事开源软件开发工作。
  • 对 RISC-V 指令集和 P 扩展有一定的了解
  • 加分项:具有开源项目开发经验,为 OpenCV 或其他开源社区提交过代码
  • 加分项:了解SIMD编程模型,使用Intrinsic编写过向量化代码(SSE / AVX / NEON / RVV 等)

BJ75 OpenJDK 实习生(Lilliput、RISC-V) (20240101 开放 5 名)

ISCAS Intern Job Description

Add support for Openjdk Lilliput on 64-bit RISC-V

Openjdk Lilliput Project: https://openjdk.org/projects/lilliput/

The goal of this Project is to explore techniques to downsize Java object headers in the Hotspot JVM from 128 bits to 64 bits or less, reducing Java's memory footprint. Improved performance across most, if not all, workloads is also expected.

Currently only supports x64 and aarch64 platforms.

Target:

  • Port this feature to Linux RISC-V 64-bit platform.
  • Pass jtreg tier1-4 regression tests on Linux RISC-V 64-bit HiFive Unmatched board.
  • Demonstrate effect on CPU and/or memory usage for Java benchmarks like SPECjvm2008, SPECjbb2015, etc.

报名要求:

  1. LV3+
  2. 熟练构建 OpenJDK,看过 OpenJDK 内部实现,调研 Lilliput。

BJ74 编译器性能评测实习生 (已满,暂停招聘)

岗位名称: 编译器性能评测实习生

mentor: 廖春玉 等。

工作内容: 搜集开源 benchmarks,用 GCC 和 LLVM 分别编译 benchmark,对比 benchmark 的性能数据。具体:

  • 需要使用 GCC 和 Clang 编译 benchmark,对比 benchmark 的指令数和 codesize 等指标。
  • 每日用 Clang 编译 benchmark,完善CI;分析自动化脚本的输出,如果指令数和 codesize 比前一天的有所增加提示具体 benchmark 的信息,并保留 log 和 Clang 的 commit IDs.
  • 根据需要配置不同版本和配置的本地工具链,随时手动复现结果并进行汇编或 trace 级别的分析。

报名要求:

  1. LV3及以上;熟练使用脚本语言,shell/python 等。
  2. 熟悉 GCC 和 LLVM 编译器。 能够成功编译并读懂测试集输出的数据。(例如 git@github.com:llvm/llvm-test-suite.git )
  3. 了解 benchmark 的方法学,熟悉创建测试集,比如 spec cpu 2006, coremark 等。
  4. 熟练使用 llvm-test-suite,对其实现过外部 benchmark 扩展功能支持的优先。

BJ73 SystemVerilog编译器工程师(slang to mlir), (进行中,名额 1)

(NOTE: 这是由兆松科技提供外部mentor支持的联合培养实习岗位)

注意:申请者至少需要保证每周投入到项目的时间不少于20小时,不少于半年的连续投入。

职位描述:

  • 评估CIRCT框架当中Moore dialect等方言的设计,以及对SystemVerilog的支持情况。
  • 基于开源SystemVerilog编译器slang的前端,设计可以生成CIRCT项目当中Moore dialect(或者自定义dialect)的编译器前端。
  • 参考CIRCT Moore编译器(rust)的实现,在slang编译器当中实现Moore dialect(或者自定义dialect)的代码生成。

任职要求:

  • 扎实的数据结构基础知识,熟练掌握C++,熟练使用C++ STL,最好了解STL实现原理。
  • 熟练使用Linux,会编写shell脚本。
  • 学习过数字电路,以及最好有编译原理基础知识。
  • 足够自信的英语阅读和书写能力,需要和上游无障碍沟通。
  • 有LLVM/CIRCT/MLIR开发经验者优先考虑。
  • LV3+ 及以上能力等级。

参考信息:

BJ72 eunomia-bpf intern (20240101 开放 2 名)

(本岗位为外部社区联合贡献岗位,mentor来自 eunomia-bpf 社区。)

eunomia-bpf 社区是一个致力于探索、改进、扩展 eBPF 相关开发工具链和运行时的开源社区,我们维护了一系列的开源项目、文档教程,并且积极探索将 eBPF 从内核态扩展到用户态、简化 eBPF 的开发和移植、发布流程、使用 LLM 自动生成 eBPF 代码、将 Wasm 和 eBPF 结合起来等等相关解决方案。希望我们能有机会一起扩展整个 eBPF 生态的边界,并且做出能持续长久、有影响力的开源项目。

工作内容:

  1. 维护 eunomia-bpf 社区中的项目,并积极向内核和相关上游社区贡献代码
  2. 追踪 eBPF 相关领域的研究和工程实践,了解、响应社区开发者的需求,以及给出让人耳目一新的解决方案
  3. 向 PLCT 内部和全世界输出文档、教程、演讲和论文,分享和扩大我们的工作影响力,普及 eBPF 相关知识和实践(比如我们之前在 Kubecon 和 Linux Plumbers 等等的 Talk)

岗位要求:

  1. LV2+ (如果你自我评级 LV2 的话,可以先从文档和测试工作做起?)
  2. 在投递岗位之前学习过 eBPF,如果没接触过的话,这里有个关于如何学习 eBPF 的小建议:https://eunomia.dev/zh/tutorials/0-introduce/ (花个两三天看看也好?)
  3. 学习过 C/C++ 和操作系统相关知识
  4. 希望能在以下任何一个方向有一些了解或背景:eBPF 的内核实现本身,LLVM/编译工具链与运行时,WebAssembly,二进制插桩与反编译,LLM/langchain/GPT,可观测性和性能分析,可编程网络(没有也没关系,如果你愿意并且有能力现学的话?)
  5. 英文阅读能力和解决、调试复杂问题的能力

BJ71 RT-Thread 社区实习生 (20240101 开放 5 名)

RT-Thread诞生于2006年,是一款以开源、中立、社区化发展起来的物联网操作系统。 RT-Thread主要采用 C 语言编写,浅显易懂,且具有方便移植的特性(可快速移植到多种主流 MCU 及模组芯片上)。RT-Thread社区是一个开放、开源的社区。RT-Thread拥有非常丰富的软件包,基于这些软件包可以快速构建产品原型。并且拥有较好的POSIX接口支持,可方便的移植Linux应用。为了更好的服务蓬勃发展的RISC-V生态,我们期望可以将RT-Thread已有的软件生态都很好的对接到RISC-V平台上。同时,RT-Thread Smart微内核系统支持用户态应用程序,rootfs等的构建程序,后面也会积极推进Smart for riscv 版本,也欢迎大家积极参与进来!

RT-Thread相关的工作可以分为三类:A类(MCU)、B类(Smart)、C类(libc)

A类(MCU)-工作内容:

  • 维护RT-Thread的代码;
  • 开发或完善RISC-V架构相关的BSP及驱动;
  • 开发或完善测试用例,提升RT-Thread的可维护性;
  • 在RISC-V平台上构建良好的POSIX生态,测试并完善POSIX接口支持;
  • 在RISC-V平台上构建良好的软件包生态,测试并完善软件包对RISC-V平台上的支持;
  • 在RISC-V上搭建基于RT-Thread的Arduino生态;
  • 编写文档来介绍RT-Thread&&RISC-V相关的知识,当前的文档在:https://www.rt-thread.org/document/site/#/

B类(Smart)-工作内容:

  • 参与并推进 RT-Thread Smart for riscv;
  • 开发或完善RISC-V架构相关的BSP及驱动;
  • 完善应用支持,迁移更多的GNU应用到 RT-Thread Smart for riscv 平台上;
  • 完善 Smart for riscv 的 GUI 生态,移植LVGL、Wayland及终端Terminal软件;
  • 编写文档来介绍RT-Thread Smart&&RISC-V相关的知识,当前的文档在:https://www.rt-thread.org/document/site/#/

C类(libc)-工作内容:

  • 一个国际的开源项目:开发维护一套 riscv mcu 下的 mlibc 库;
  • 小型化的 libc 库,针对体积做特殊优化;
  • 使用这个 mlibc 出一份 riscv 工具链;

岗位要求:

  • 电子、计算机、通信、自动控制等专业;
  • c语言基础扎实,熟悉计算机体系结构;
  • 熟悉一种或数种嵌入式CPU软硬件平台,例如STM32,RISC-V等;
  • 有强烈的学习能力和学习新知识的欲望;

BJ70 Aya 全套生态开发实习生【暂停招聘】

工作内容

PLCT Aya 小队致力于研发划时代的类型论实现,包括如何更好地通过元编程技术和约束求解算法来实现程序和证明的自动化生成、如何「正确」地设计一些在学界前沿尚有争议的问题、如何利用当代 OpenJDK 的生态来为这一切打下基石。

  1. 实现并参与实现 Aya 的各种语言特性、标准库、工具链(IDE、包管理等)。
  2. 追踪相关领域的研究,调研世界上存在的广大竞品(Lean、Arend、Agda、Coq、Idris2 还有蝉语等),并向它们学习、与它们的作者交流。
  3. 向 PLCT 输出我们学到的知识,可以是博客或者周会报告的形式。
  4. 尽可能解决 Aya 的用户遇到的问题。

能力要求

  1. 强制要求:PLCT 实习生评级 LV3·强能力者 (https://github.com/lazyparser/weloveinterns/blob/master/how-do-we-rank-interns.md)
  • 对具体编程语言的要求可灵活处理,因为 Aya 的开发也不涉及 Python 等语言。
  • 强制要求:英语读写能力、调试查错能力。
  1. 对编程语言理论、函数式编程有一定了解,熟悉至少两门函数式编程语言。
  2. 熟悉面向对象编程基本概念、常见设计模式。

加分项

  1. 阅读编程语言领域的论文,并将相关研究融入 Aya 的实现中。
  2. PLCT 实习生评级 LV4·大能力者。
  3. 熟悉 JVM 相关技术,包括 IntelliJ 平台、性能调优、字节码生成等。
  4. 对文学编程有自己的理解。
  5. 对代码质量要求高,对重构持乐观态度。

BJ65 DynamoRIO 开发实习生(负责 RISC-V 移植及优化) (20240101 开放 1 名)

工作内容

DynamoRIO 是很优秀的一款开源开发工具。PLCT实验室在2021年初吹的牛/立的FLAG,到2022年下半年还没圆上。围观地址:

DynamoRIO/dynamorio#3544

现在我们很高兴的宣布已经有了全职的员工在这个项目中工作了一段时间,准备开始招募实习生了。实习生的工作就是让 DynamoRIO 移植到 RISC-V 架构, x86 和 arm 有的,我们希望 RISC-V 也有。

岗位要求

第一个实习生,需要有 LV4 及以上的等级,能够直接与我们的员工一起直接贡献 upstream。第二个实习生开始需要 LV3 能力等级,能够自发的进行模块的分析和开发。

在投递简历之前,我们希望你已经看过 DynamoRIO 这个项目,下载了代码,在自己的机器上构建了一次。

BJ64 Mono 系统开发实习生(负责 RISC-V 移植及优化) (20240101 开放 1 名)

工作内容

即便微软开源了 dotNet 环境, Mono 系统在 Linux 开源生态中依然占有重要的位置。还有很多事情需要做。具体可以从 [1] 中看到。 PLCT实验室新设置的岗位就是为了让 RISC-V 在不远的未来(2025年之前)成为 Mono 的 Tier-1 支持平台而存在。我们招募看到 RISC-V 发展的同学来一起为开源社区添砖加瓦。

岗位要求

目前PLCT实验室没有全职投入在 Mono 系统的 mentor,因此需要第一位实习生有高度的自驱能力,至少要求达到LV4或以上;第二名之后的实习生要求达到 LV3 或更高级别。

远程实习,支持全球实习工资支付(中国学生必须是国内银行卡)。实习随时可以开始随时可以暂停随时可以结束(如果超过一周旷工、或八周没有外部可见产出会被劝退)。

[1] https://github.com/mono/mono/blob/main/docs/riscv.md

BJ58 libcxx-simd 项目实习生招聘 (20240101 开放 5 名)

工作内容: 参与 libcxx-simd 项目开发与测试相关工作。 experimental/simd 是一个为 C++ 显式数据并行编程提供零开销 C++ 类型的库,该库已经被包含进GCC官方的 libstdc++ 库。PLCT正尝试将其移植到 Clang/LLVM 官方的 libcxx 库中。

要求:

  • 熟练使用C++,熟悉C++模板元编程及C++11/14/17新特性。
  • 了解libstdc++/libc++库的使用与开发流程。
  • 具备SIMD指令集相关基础知识,了解至少一种SIMD指令集及其intrinsic(SSE、AVX、AVX512、Arm Neon、PowerPC AltiVec)。
  • 具备基本的Linux操作基础和基本的git操作基础。

远程实习。要求LV3及以上能力。

BJ15 QEMU/Spike 开源模拟器开发实习生(20240211 开放 5 名)

工作内容:

  • 参与PLCT实验室在QEMU、Spike等相关开源项目的开发。在开源社区直接提交代码。

入职要求:

  • LV3+,对模拟器的内部实现有兴趣。
  • 远程实习,不需要坐班。

BJ32 Dart for RISC-V 开发实习生(20240101 开放 1 名)

PLCT实验室2022年路线图中包含了移植DartVM到RISC-V架构,但是一直没有招募到合适的勇者(非常稀缺的LV4+实习生),所以一直在咕。但~是~!前不久,Google Dart Team 最新的版本中已经包含了初步的RISC-V支持!于是乎我们从躺平中惊坐起,觉得难度大幅度降低,LV3+的实习生也可以开始参与了

工作内容:

  • 就像将 V8 移植到 RISC-V 平台一样,将 Dart 移植到 RISC-V 平台。负责跟 Dart 上游交流,将移植工作 upstream。路线上先从 RV64GC 开始做。

入职要求:

  • 这份工作目前没有正式员工在做,需要一位能力在LV3及以上的同学,与PLCT实验室的mentor和DartVM上游协作(默认mentor是 V8 RISC-V 的maintainer)。
  • 学习了 Dart 语言(现学3天的水平即可)。
  • 基本了解 DartVM 的内部实现(至少学了一周,看过文档、看过技术分享视频、看过源代码、编译运行起来了)。
  • 熟悉语言虚拟机的内部实现(看过书,知道解释器、字节码、JIT、GC、锁、线程等等)
  • 脸皮厚。能跟外国人直接英语对线。

BJ37 GCC 开发实习生(20240101 开放 10 名)

工作内容

  • 最近PLCT实验室在参与RISC-V国际基金会的相关新指令扩展的工作,具体内容是为 unratified extensions (就是还在制定中的扩展指令集)进行 GNU Toolchain 的实现,用于验证草案本身在设计上是否存在遗漏缺失、是否在功能或性能上有改进的空间。目前面向大学生及研究生招募开发者,以PLCT实验室实习生的身份,直接参与到RISC-V基金会管理下的GCC工具链开发中,并有可能后续直接将代码(patch)提交到上游(upstream)。最近开始有业界一线的大佬指导和review实习生的代码,是非常难得的学习机会。
  • 与此同时,实习生岗位 BJ18 Clang/LLVM 开发实习生以及 BJ15 QEMU/Spike 开发实习生同样持续招聘。一个完整扩展指令参考实验和验证包括编译器、二进制工具、模拟器,都是需要的。

入职要求:

  • LV3+,能进行英语交流,对编译技术有基本了解。如果事先了解过ELF格式、RISC-V或其他指令集、相关ABI文档,那么都算是加分项。
  • 远程实习,不需要坐班。

HZ48 Chisel 开发实习生(20240101 开放 1 名)

工作内容: 加入 Chisel 小队,从事 Chisel 的开发工作。

要求:

  • LV2+
  • 已经自学了 Chisel。

BJ17 V8 开发实习生(20240101 开放 5 名)

工作内容:

  • 参与PLCT实验室 V8 for RISC-V 相关项目的开发。在开源社区直接提交代码。

入职要求:

  • LV4及以上,熟练的英语交流。
  • C++ 要熟练。新特性了然于胸。
  • 需要已经看过 V8 的源代码,自行构建 riscv64 后端成功。
  • 需要熟悉 JavaScript 语言。如果看过 WebAssembly 加分。
  • 远程实习,不需要坐班。

BJ45 MLIR 开源开发实习生【暂停招聘】

我们相信MLIR将会成为未来编译器框架的实施标准。因此从2021年开始,PLCT实验室将 MLIR 列入了「关键开源基础设施」名单,已经跟 LLVM、GCC 一样成为PLCT实验室的长期管理对象。

工作内容:

  • 参与PLCT实验室 MLIR 相关开源项目的开发。

入职要求:

  • LV3+,能进行英语交流,对编译技术有很好的了解。对 MLIR 项目有浓厚的兴趣。
  • 远程实习,不需要坐班。

BJ34 OpenJDK 开发实习生(进行中,名额 1)

工作内容:

  • 参与PLCT实验室 OpenJDK for RISC-V 相关项目的开发。帮助 RISC-V 社区将 Java 执行速度提高 100x 以上。

入职要求:

  • LV3+,能进行英语交流,对编译技术有基本了解。对 Java 虚拟机感兴趣。
  • 远程实习,不需要坐班。

BJ18 Clang/LLVM 开发实习生(进行中,名额 15)

工作内容: 参与PLCT实验室 Clang/LLVM 相关项目的开发、技术分析、报告撰写。在开源社区直接提交代码。

入职要求: LV3+,能进行英语交流,对编译技术有基本了解。 远程实习,不需要坐班。

历史岗位(已经不再招募实习生)

  • Android(AOSP) RISC-V 移植开发实习生 BJ77~BJ80 【暂停招聘】
  • BJ101 FORCE-RISCV 开发实习生 (已满,暂停招聘)
  • BJ103 SG2042 操作系统开发实习生 (停止招聘,被新岗位JD替代)
  • BJ104 SG2042 数据库移植实习生 (停止招聘,被新岗位JD替代)
  • BJ105 ART 虚拟机性能评测实习生 (暂停招聘)
  • BJ106 openEuler RISC-V 操作系统开发实习生 (停止招聘,转入软件所其他部门)
  • BJ33 Spidermonkey 开发实习生【暂停招聘】
  • BJ38 LuaJIT 开发实习生【暂停招聘】
  • BJ38 LuaJIT 开发实习生【暂停招聘】
  • BJ39 Web 前端开发实习生【暂停招聘】
  • BJ47 Gentoo RISC-V 操作系统构建实习生 (20240101 开放 2 名)
  • BJ59 开源软件项目经理实习生【暂停招聘】
  • BJ60 开源技术社区运营经理实习生【暂停招聘】
  • BJ61 蝉语实习生【暂停招聘】
  • BJ63 Maple-C 编译器 Linux 构建验证及 RISC-V 移植实习生【暂停招聘】
  • BJ66 科技文档翻译实习生(日语、韩语)【暂停招聘】
  • BJ67 操作系统RISC-V成熟度观测实习生(跟踪所有国内外知名Linux发行版)【暂停招聘】
  • BJ68 OpenWrt RISC-V 移植及观测实习生【暂停招聘】
  • BJ69 Deepin RISC-V 操作系统构建实习生【暂停招聘】
  • BJ81 RISC-V科研实习生:P扩展在 Linux Kernel 中对解压缩算法等模块的加速可能性研究及原型实现 【暂停招聘】
  • BJ82 实现基于 LoongArch 架构的 RISC-V 模拟器 LARVa 【暂停招聘】
  • BJ84 RVWhl Python Package 开发实习生【暂停招聘】
  • BJ90 开源社区运营助理(SG2042 and Duo)实习生 (已满,暂停招聘)
  • BJ91 开源社区运营助理(LicheePi 4A 等 RISC-V SBC)实习生 (已满,暂停招聘)
  • HZ85 CXL软硬件联合开发【暂停招聘】
  • HZ86 CXL开源硬件IP开发【暂停招聘】
  • NJ49 Fedora RISC-V 操作系统构建实习生【暂停招聘】
  • NJ50 Debian/Ubuntu RISC-V 操作系统构建实习生【暂停招聘】
  • NJ51 Arch Linux RISC-V 操作系统构建实习生【暂停招聘】
  • NJ52 测试开发实习生(这是开发岗位)【暂停招聘】
  • NJ53 软件测试实习生(这是测试岗位)【暂停招聘】
  • NJ53a openEuler RISC-V 操作系统构建实习生【暂停招聘】
  • NJ55 开源EDA实习生【暂停招聘】
  • NJ57 Android(AOSP) RISC-V 移植开发实习生【停止招聘】