2025腾讯犀牛鸟开源人才培养计划-ncnn
腾讯犀牛鸟开源人才培养计划
欢迎广大高校学子及开发者加入2025腾讯犀牛鸟开源人才培养计划!犀牛鸟开源人才培养计划同教育部计算机类专业教学指导委员会、教育部软件工程专业教学指导委员会、教育部电子信息类专业教学指导委员会、中国信息通信研究院一起作为联合指导单位,腾讯开源和腾讯高校合作联合主办,开发者通过参与腾讯全链路技术栈15个明星项目的学、练、赛研学,有机会获得腾讯颁发的荣誉证书、现金奖励以及腾讯特色礼包,获得“优秀学生”即可优先获得腾讯面试机会。
期待同学们在本次研学旅程中,和腾讯一起探索未知、学习技术,让开源伴你成长,收获满满一夏!
项目简介
一个为手机端极致优化的高性能神经网络前向计算框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。
项目导师
倪辉,ncnn作者
导师寄语
ncnn是业界知名的AI推理框架,社区支持很好,参与研发是能学到知识和技术的,导师会很耐心帮助你的,对吧对吧!
培养概览
1️⃣ 参与“腾讯开源基础课程” 完成考试可获得《腾讯开源研学结课证书》
2️⃣ 参与“腾讯开源issue实战” 完成任意issue即可获得专属《腾讯开源实战证书》+ 腾讯周边精美礼包一套。其中issue难度对应礼包大小
3️⃣ 参与“腾讯开源课题实战” 任务奖金从6K、8K到12K不等、腾讯犀牛鸟研学专属《优秀学生证书》或《优秀开发者证书》、全球限量《腾讯开源贡献者证书》 *获得《优秀学生证书》,即可优先获得腾讯面试机会
4️⃣ 彩蛋玩法:分享有礼、帮带有礼
【玩法1-分享有礼】 在任意社交平台(知乎/b站/掘金/CSDN等)分享你在【本届犀牛鸟研学的心得+犀牛鸟官网】,在9月10日前把分享记录填写在【分享有礼登记表】表中,分享量Top 10即可获得鹅厂周边礼包!🎁
【玩法2-帮带有礼】: 你可以在项目社群、项目repo页面、项目研学基地【我要提问】区域三个位置回答其他同学提出的问题,在9月10日前,我们会综合导师意见,对积极且正确帮助他人解答问题的幸运同学送出鹅厂周边礼包!🎁
如何贡献
参与“腾讯开源issue实战”
进入“研学基地”,参与“腾讯开源issue实战”,选择你感兴趣项目的 Issue 任务,认领和完成它。7月10日开放 issue ,学生及开发者可无门槛参与和认领
1、如果你愿意解决issue,请在腾讯开源研学基地的【3️⃣issue认领任务大厅】领取issue任务 2、Fork 到个人的仓库下 3、在个人仓库解决完对应的任务后,提交 PR 至 Issue 所在仓库的 master 分支 4、PR提交后,项目导师将进行 code review, PR 被合并后即视为任务完成 5、如有任何疑问可以在评论区留言或者邮件至联络人
参与“腾讯开源课题实战”
时间安排:6月20日至7月28日为活动报名期,8月1日公布入围名单,8月2日至9月10日为课题实战期,通过筛选的学生即可参与此模块。
初阶任务:
- pnnx input npy files 目标:pnnx添加 input=a.npy,b.npy 参数,支持从npy文件获取输入tensor的shape和内容,用于pnnx后续的推理优化 难度:普通 前置条件:熟悉cpp,跨平台处理环境变量
https://zhuanlan.zhihu.com/p/444022507 《PNNX编译流程(新)》
https://zhuanlan.zhihu.com/p/427512763 《5分钟学会!用 PNNX 转换 TorchScript 模型到 ncnn 模型》
- ncnn in micropython 目标:为micropython平台,实现ncnn c api的绑定和调用例子 难度:普通 前置条件:熟悉c/cpp
https://github.com/Tencent/ncnn/blob/master/src/c_api.h ncnn C API
https://docs.micropython.org/en/latest/develop/cmodules.html MicroPython external C modules
中阶任务:
- spir-v fastmath mode 目标:ncnn编译glsl到spir-v后,当GPU支持VK float control2扩展时,在spir-v中添加fastmath模式的capability 难度:普通~难 前置条件:熟悉cpp,了解spir-v二进制
https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_float_controls2.html
https://github.com/KhronosGroup/SPIRV-Guide
参考 https://github.com/Tencent/ncnn/blob/master/src/gpu.cpp#L3510 inject_local_size_xyz() 类似实现 inject fastmath capability
- persistent vulkan pipeline cache 目标:为pipeline cache增加新的保存和加载api,实现文件级缓存vulkan pipeline数据,必须严格检查shader,平台信息,GPU型号,驱动版本和pipeline二进制的对应一致性 难度:普通~难 前置条件:熟悉cpp,了解vulkan-api
https://docs.vulkan.org/guide/latest/pipeline_cache.html
https://github.com/Tencent/ncnn/blob/master/src/gpu.h gpu信息查询接口
https://github.com/Tencent/ncnn/blob/master/src/pipelinecache.h pipelinecache实现 load save
高阶任务:
apple amx optimization 目标:结合ruapu检测apple amx指令集,实现apple amx在conv/gemm的优化,并实现动态派发,ci测试结果正确并有性能提升 难度:难 前置条件:熟悉cpp,指令集优化
https://github.com/corsix/amx
https://zhen8838.github.io/2024/04/23/mac-amx/
https://github.com/Tencent/ncnn/pull/5649 去年未完成的实现代码
联系导师
💁🏻♀️ 如有项目任何疑问,欢迎加入腾讯开源犀牛鸟官方微信群,期待你来!
💁🏻♀️欢迎加入ncnn项目官方交流群,导师在线为你答疑解惑!
issue