暑期将至,这里有一份技术实战升级攻略,请查收
发布日期:2021-07-01 02:39:05 浏览次数:2 分类:技术文章

本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:CVPR 2021论文解读 | 基于随机标签的神经网络架构搜索
下一篇:技术的真相 I 让手机夜拍也精彩的原理竟然是...

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月12日 23时26分38秒