本文共 3104 字,大约阅读时间需要 10 分钟。
暑期将至,你准备好用哪个姿势拥抱假期了吗?
不管躺卧站立,都不耽误你参加 “收获不一样的暑假。
作为一项专门面向高校学生的开源项目开发活动,同学们可自由选择项目,与社区导师沟通实现方案并撰写项目计划书。被选中的同学将在社区导师指导下,按计划完成开发工作,并将成果贡献给社区。
根据项目的难易程度和完成情况,参与者将获得由主办方发放的项目奖金及证书奖励。
每个项目奖金总额根据项目难度分为 12000 元、9000 元和 6000 元(注:奖金数额为税前人民币金额)。
MegEngine 社区作为“开源软件供应链点亮计划”的老朋友,今夏准备了 9 个有趣的开放项目,等同学们来pick哦!下面,全是你们感兴趣的内容!
MegEngine 社区项目列表
项目一:添加 RNN/LSTM 系列算子
1. 项目难度:高
2. 项目产出要求:
在 MegEngine python 接口层面添加 RNN/LSTM 算子
参考内部文档在 c++ 层面实现 RNN/LSTMCell 算子,改进上层 python 接口,并达到与 pytorch 接近的性能
3. 项目技术要求:python、pytorch、C++
项目二:x86 中添加并优化 local
1. 项目难度:高
2. 项目产出要求:
在 x86 backend 下面完成 local 算子填加
算子计算结果和 naive 在所有 case 下结果完全一致
优化算子,使其逼近最佳性能
3. 项目技术要求:C++,性能优化
项目三:x86 中添加并优化 local share 算子
1. 项目难度:高
2. 项目产出要求:
在 x86 backend 下面完成 local share 算子填加
算子计算结果和 naive 在所有 case 下结果完全一致
benchmark 并优化算子,使其逼近最佳性能
3. 项目技术要求:C++,性能优化
项目四:web 上运行 mge 模型
1. 项目难度:高
2. 项目产出要求:
在 web 上跑起来线性回归模型/手写字模型,要求提供 mge.js 和可运行的 model。
方案:
框架部分用 wasm 编译为 mge.js(需要能加载 dump 的 mge 模型,最好不要做模型转换)
缺的 kernel 可以参考 xnnpack 用 wasm 进行补充。(webgpu 当前效率不高,webgl 用于计算比较别扭,所以还是选支持 simd 的 wasm)
实现的效果分为 7 级:
L0:可以加载模型和数据(可以不支持图优化/存储优化等各种优化,可以对现有的框架通过宏进行裁剪,甚至可以重写一个新框架,但必须保证模型的兼容性加载)
L1:dense/matmul(必选)的前向 op 单测通过(要求 nchw 的 layout 下正确性ok)
L2: 跑通线性回归模型前向
L3: 跑通线性回归模型的后向和训练
L4: 跑通 mnist 模型前向
L5: 跑通 mnist 后向和训练
L6: mnist 的 demo(参考 https://storage.googleapis.com/tfjs-examples/mnist/dist/index.html)
3. 项目技术要求:js/wasm/c++/python
项目五:一个对用户友好的 web profile 工具
1. 项目难度:高
2. 项目产出要求:
一个对用户友好的 web profile 工具
C/S 结构,前端负责收集模型、可视化、打印 profile 结果
后端负责实际跑模型,后端的支持可以覆盖 x86/cuda/arm 等
L0: 前端能提交 mge 模型,打印模型的执行延迟。后端支持X86,能接受前端的模型并反馈延迟结果。后端的执行可以包装l oad_and_run(需要能填充模型的输入数据,加载完模型后打印模型的输入输出 tensor)。
L1: 前端支持打印 profile 结果,后端反馈 profile 结果。后端的 profile 可以直接返回 load_and_run的profile json 结果,并提供过滤、排序、聚合等操作。反馈模型的输出 tensor name。
L2: 前端支持模型结构预览(加载完模型后即可预览),并可视化每层的耗时(profile 后可以看到耗时)
L3: 扩展后端范围,包括 cuda/arm。方便没有设备的用户能直接得到性能数据。
L4: 支持 MegEngine 的版本切换,支持上传 np 文件作为输入
3. 项目技术要求:html/js/c++/python
项目六:dnn backend 加入 apple NPU 的支持
1. 项目难度:高
2. 项目产出要求:
在 MACOS上推理可用 APPLE npu,基于 CoreML API
L0: MegEngine 模型转换到 CoreML 可用格式, 能使用 CoreML API 把这个模型跑起来
L1: 参考 MegEngine/src/tensorrt/impl 实现 CoreML 在 MegEngine 下的 runtime opr
L2:最终在支持 CoreML 的平台上跑起来推理 MegEngine 并且利用 CoreML 加速
3. 项目技术要求:c++, macos
项目七:Python whl 支持 apple ARM macos
1. 项目难度:高
2. 项目产出要求:
在 apple arm macos 上,可用 MegEngine python
L0: 本地编译通过
L1: 包具备分发性,可安装到其他 aarch64+ MacBook 上,且能运行
L2: 能在基于 aarch64 + MacBook 上训练一个模型
3. 项目技术要求:c++, 编译,macos
项目八:Python whl 支持 Android (限定在主流的ARM)
1. 项目难度:高
2. 项目产出要求:
在 Android aarch64 上(termux 环境),可用 MegEngine python
L0: NDK-x86 linux cross build aarch64 Android 编译通过
L1: 包具备分发性,可安装到其他 aarch64+ Android 上,且能运行
L2: 能在基于 aarch64 + Android + termux 训练一个小模型
3. 项目技术要求:c++, 编译, Android
项目九:模型转换 - ONNX 转 MegEngine
1. 项目难度:中
2. 项目产出要求:
转换能力需覆盖 model hub 里的模型
方案:
完成 ONNX 模型的解析
实现 ONNX 与 MGE 各类算子的转换
根据 ONNX 模型中包含的算子搭建出完整的 MGE 模型
实现效果:转换出来的模型可以完成推理
L0:在特定版本上实现模型的转换
L1:实现不同版本 ONNX 到 MGE 的转换
3. 项目技术要求:Python、ONNX
活动简介
开源软件供应链点亮计划-暑期2021 是一项专门面向高校学生的开源项目开发活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源社区的蓬勃发展。暑期 2021 由中国科学院软件研究所与 openEuler 社区主办,中科院软件研究所南京软件技术研究院承办,开源社、思否协办,联合各大开源社区,针对重要开源软件的开发与维护提供项目,并向全球高校学生开放报名。
点击「阅读原文」,提交项目申请
转载地址:https://megvii.blog.csdn.net/article/details/117538123 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!