皮蛋熊 ([email protected])
教育背景
2012.09-2016.07 华东交通大学 | 电气与自动化工程学院 | 电气工程及其自动化 | 学士
电气六班班长、团支书(2012-2013)
优秀学生干部、共青团员(2012-2013)
校电子创新基地实习(2013-2016)
2014中国移动“动感地带”一等奖学金
三年国家励志奖学金(2013-2016)
三年优秀学生奖学金(2013-2016)
2014江西省科技创新与职业技能竞赛金牌
2014第九届全国大学生“飞思卡尔杯”智能汽车竞赛华东赛区一等奖、全国赛区二等奖
2014中国机器人大赛暨RoboCup公开赛 水中全局视觉“抢球博弈”亚军、水中自主视觉“技术挑战”冠军
...... 等各类实验室项目、挑战杯等
2019.09-2022.06 电子科技大学 | 自动化工程学院 | 控制科学与工程 | 硕士
研究生新生奖学金(2019)
论文阅读优秀奖(2021)
论文:Attention-Based Deep Driving Model for Autonomous Vehicles with Surround-View Cameras, IROS 2022 (机器人顶会,个人独立完成,但导师评职称差论文便同意了一作给他)
专业技能
编程基础:熟悉C/C++、Shell、Python,熟悉软硬件调试,了解Delphi、Golang;熟悉常用数据结构;熟悉Git版本管理;
系统技能:熟悉Win/Linux应用开发;具备bootloader开发、Uboot移植经验;熟练使用MATLAB、Python分析数据;熟练使用PyTorch深度学习框架;熟悉常见的AI模型和架构;熟练使用VS/Keil/IAR等嵌入式开发IDE;具备多年Linux内核、Windows内核驱动开发调试经验;多年K/GDB、IDA、x64dbg逆向调试和分析经验;熟悉C51、ARM、X86指令集架构、汇编;熟悉计算机原理、网络;熟悉IMG GPU IP / MT GPU IP;熟悉NVIDIA、INTEL、MT内核驱动设计;对于SR-IOV、MDEV的vGPU架构有深入理解;熟悉GPU工作原理、相关软件栈;对于KVM虚拟化、QEMU、NAS有深入理解;
项目(工作)经历
2016.7-2017.3 天津凯发电气股份有限公司 | 研发部 | 嵌入式软件工程师
主要职责:负责KF6500S(ARM Cortex-M4)、KF6500V2(MPC-8315E)铁路配套设备的底层开发与Uboot、BSP适配
参与项目:
1:KF6500S:C/C++底层Bootloader的开发工作、上层软件与底层环境适配工作,承担底层开发100%工作
2:KF6500V2:MPC8315E VxWorks BSP适配与Uboot移植,承担该部分100%工作
2017.4-2018.4 AlphaNetworks明瑞电子(原D-LINK成都研发中心) | 无线研发一部 | 无线AP软件工程师
主要职责:负责与服务端、前端开发人员协调确定通讯格式与内容并形成文档,分析通讯报文并应用到设备。无线嵌入式设备端软件开发,协议分析,系统软件编写等。
参与项目:
1:AlphaNetworks CWM2.0、D-LINK CWM2.0两套软件系统:设备端(Linux)软件编写,设备启动运行软件,与服务器通讯获取配置并应用到本机系统,错误处理等
2:承担设备端软件、技术文档100%工作
2019.08 - 2022.06 电子科技大学 | 研究生 | 自动化工程学院 | 人机智能技术与系统教育部工程研究中心
项目1:腾讯企鹅V2 (2019.08 - 2020.02)| 主要参与人员(C++、Python、ROS)
项目描述:机器人中心与腾讯合作,开发一款具备环境感知、与人交互、且具备一定运动性能的企鹅外形的机器人
项目情况:
1:利用RGBD深度摄像头采集手势数据
2:分析静态手势与动态手势
3:识别结果通过ROS节点进行发布
项目2:环视端到端自动驾驶系统(2020.06 - 2021.03)| 独立开发(C++、Python、PyTorch)
项目描述:针对端到端自动驾驶进行延伸,尝试以新的模型和方法提升该类型自动驾驶的可行性
项目情况:
1:针对网上公用数据集设计环视端到端模型并训练
2:设计实车系统采集电子科大环视数据集
3:针对当前使用的端到端模型存在的问题提出改进方案
4:针对改进方案撰写论文并发表
项目3:城市智能共享汽车预期功能安全熵的基础理论与验证关键技术(2020.12 - 2022.07)| 主要参与人员(C++、Python、PyTorch)
项目描述:纵向项目、研究自动驾驶汽车预期功能安全与安全大脑系统实现
项目情况:
1:利用Ansys Scade Vision软件分析自动驾驶汽车常用感知模型的漏检、错检等情况
2:针对深度学习的感知不确定性提出方法进行量化与研究
3:安全大脑软件系统的编写
2022.07 - 至今 摩尔线程智能科技有限公司 | 系统软件部-GPU虚拟化 | 系统软件(GPU虚拟化)工程师
项目1:该公司SR-IOV vGPU虚拟化设计(2022.07 - 2022.12) | feature PIC 承担约60%工作量 | 发明专利审查中
项目描述:完成公司研发的芯片QY1的SR-IOV虚拟化软件设计
项目情况:
1. 作为PIC,与各组同事沟通,协作分配相关任务,功能联调,PRD制定
2. 阅读芯片MAS文档,SR-IOV整套设计方案编写
3. 理解mdev框架,将SR-IOV功能嵌入原框架,形成MDEV-SRIOV/MDEV-SOFT两套框架
4. 设计完成SR-IOV下VF显存动态分配特性、FLR功能适配
5. 设计完成eATA隔离设计,GPU虚拟化简易二阶段MMU使能特性
6. 适配SR-IOV中断接收并注入到Guest通路
7. SR-IOV vGPU下MPC(Multi Primary Core)功能、Meta FW加载、显存布局等功能设计
8. 与架构沟通相关特性的后续演进方向
9. 所有功能涉及的linux驱动、windows驱动代码编写和脚本测试
10. 发明专利公开号:CN118502936A
项目2:公司mtExt代码在vGPU下的适配(2022.12 - 2023.01)| 独立完成
项目情况:
1. 完成mtExt windbg插件在vGPU环境中的首次适配
2. 因mtExt权限较高,设计host端转发请求,能够操作host按需开关Guest相应功能
项目3:设计完成Windows Guest virtual display自定义分辨率特性(2023.01 - 2023.02)| 独立完成
项目情况:
1. 完成自定义分辨率特性设计,设计编写API同用户态dll联调,测试并完成功能交付
2. 个人增加IDD(Indirect Display)相关的方案调研
3. 后续增加baremental环境下的virtual display特性
4. 后续增加设计linux下的自定义分辨率调整特性
5. 后续增加多个virtual display的设计。
项目4:设计完成Windows Guest vGPU独立固件特性(2023.02 - 2023.04)| 独立完成
项目情况:
1. 将vGPU对应的Guest驱动内嵌的固件独立为固件文件,在Baremental中则为内嵌。
2. 处理aligncheck、wddm依赖等
2. 设计将该固件文件在Host驱动加载时候进行load,并使能相应功能,测试并完成功能交付
项目5:开发PCIe Perf Monitor功能(2023.03 - 2023.04)| 独立完成
项目情况:
1. 因为vGPU并发数量多,跨PCIe的访问量大,所以开发PCIe带宽统计功能用于QoS的信息来源。
2. 相关的功能设计、代码编写、测试和最终交付。
项目6:调研高效的GPU页表监控方案(2023.04 - 2023.07)| 独立完成 | 发明专利已授权
项目情况:因GPU设计问题,内部缺乏二阶段MMU的GPU缺乏隔离性,GPU安全形势严峻
1. 针对于GPU虚拟化的显存隔离,正常情况是需要一个MMU做隔离,如果缺乏的情况下,页表的攻击将无法避免。
2. 找到一种高效的GPU页表保护方法,能够确保虚拟机之间的数据访问隔离性
3. 该项工作圆满完成,性能超过预期,是绝对王炸的实现,这里为保护方案不做过多介绍。
4. 在极致优化后,保护状态下的性能变化从多项数据统计下均不感知。
5. 发明专利公开号:CN:CN116894275A TW:TW202511997A PCT:WO2025051279A1
项目7:调研虚拟化统一云平台(2023.07 - 2023.07)| 独立完成
项目情况:GPU虚拟化团队当前聚焦在VDI场景下,准备拓展技术栈和业务线的调研,希望能够直接承载多OS、Docker、Host/Guest同时支持等特性
1. 调研Host、Guest Workload同时支持特性
2. 调研ACX、sGPU、cGPU等实现
3. 给出调研报告
项目8:CDI容器云桌面调研(2023.07 ~ 2023.10)| 独立完成
项目情况:国内云桌面基于kvm虚拟化占多,某公司提出我们一同研发容器云桌面
尝试在docker中搭建桌面
梳理glvnd、opengl在linux环境的调用路径和系统配置
探索virtualGL下glmark2的锁帧限制 -> 来源于GPU数据通路读写的限制,需要CE或TDM的引入才可缓解。
内核驱动动态增减虚拟DRM设备,实现DRM设备上的dummy display和相关调用链路
编写dockerfile打包容器关联的环境和驱动交给甲方公司
项目9:调研动态MPC切换配置(2023.11 - 2024.02) | 独立完成
项目情况:GPU多核心可以组不同的簇,类似于nvidia的MIG,只是需要实现更为灵活的配置,随时调整guest物理隔离力度和实际物理性能。
实现MPC的动态配置调研,方案设计
解决Guest中umd驱动因不同MPC配置差异带来的各项错误
解决切换MPC过程中出现的HWR、TDR等问题
解决不同MPC鲁大师分数接近的问题
适配MPC切换影响的Control stream逻辑
同ARCH一同调试GPU IP在切换时出现的相关的问题,如切换后USC SLOT不为空
处理花屏和TDM跑飞等问题
测试和最终的交付
项目10:RockyLinux的适配(2024.01 - 2024.03) | 独立完成
项目情况:给Host系统适配最新的RockyLinux 9.3
梳理Rockylinux中内核mdev相关实现的变化,将host驱动对此进行适配
测试和最终的交付
项目11:GPU-Z 相关功能适配 (2024.04 - 2024.05)| 独立完成
项目情况:
和SDK部门讨论GPU-Z相关的API需求
从KMD部分实现相关需求,对接SDK调用
测试和最终交付
项目12:GPU Outbound性能低探索(2024.04 - 2024.06)| 独立完成 | GOOD JOB
项目情况:vGPU项目部署中发现GPU Outbound性能特别低下,需要探索原因
1. 该问题于2022年我还未入职公司时便已发现,但自发现该问题后的两年里,我们部门的各个老师傅也投入时间探索,但均无果。
2. leader给了两个活,让我选一个,我果断选了最难的这个。
3. 经过我的仔细探索,从PCIe的性能处着手,逐步往GPU IP内部探索,最后用了两周左右发现了芯片中存在的Root cause。
4. 后续和芯片部门沟通问题和改进,和UMD同事沟通workaround方案。
5. 最终交付,GPU Outbound从跨PCIe 1G峰值到能跑满带宽上限,极大的提升了VDI环境下GPU使用Sysmem的性能体验。
6. 得到最大老板的肯定:Good Job
7. 后续继续个人探索到PCIe 4.0跑不满带宽是NoC outstanding tag不够导致
8. 后续继续个人探索FBCDC各种特性使用和FBCDC对带宽利用率的具体数据
9. 后续继续个人探索paging导致的带宽浪费问题,和UMD同事沟通segment的优先级代码实现。
项目13: 调研API Forwarding的vGPU方案可行性(2024.05 - 2024.06) | 独立完成
项目情况:
1. 调研API Forwarding和MDEV/SR-IOV的实现方式、适用场景、差异和体验区别。
2. 调研云游戏的主流实现方案
3. 撰写调研文档
项目14:vGPU适配鲲鹏ARM64环境(2024.06 - 2025.01)| 独立完成 | 负责一个中大型版本的发布
项目情况:
1. 适配ARM64中IRQ remaping相关细节逻辑
2. KVM PCIe页表映射存在问题,向内核内核提交Patch修复该问题
3. 解决ARM64存在的PCIe BAR多段映射的限制,适配remap bar2逻辑。
4. 处理UMD中和ARM64相冲突的部分
5. SMMU适配,重构MM,适配ARM64中SMMU场景。
6. 配合处理OGL、VPU相关的问题
7. 提供版本内核中remap bar2的方案和nGnRnE权限处理
8. 排查适配过程中遇到的fw无法通讯、pagefault等问题。
9. 排查各个应用出现的问题,如VLC、WebGL、各类OGL应用
10. 调研出现的HDMA timeout问题
11. 各类设计文档编写、CI沟通、QA沟通测试和版本的最终发布
项目15:调研如何让ollama跑在不具备技术栈的windows上(2025.03 - 2025.04)| 独立完成
项目情况:因windows下没有相关的musa软件栈,当甲方又强行想要使用ollama,所以进行了探索。
1. 探索ollama vulkan api下表现
2. 了解已有的DirectML的使用限制和表现
3. 探索vulkan api的转发
4. 后端在linux中进行处理workload
5. 结局:和现有方案冲突,成本激增一倍,且无其他解决办法,该方案暂放弃
项目16:vGPU on 某ARM SoC芯片的实现(2025.05 - 现在)| 负责约50%工作,feature PIC
项目情况:因某ARM SoC芯片因版权/授权问题不好直接安装windows,所以希望在原有的Ubuntu Host上启动windows虚拟机,不干扰原系统功能并以vGPU形式提供虚拟机GPU算力。
1. 作为PIC,与各组同事沟通,协作分配相关任务,功能联调,PRD制定
2. 探索vGPU的fw同时接收host、guest workload
3. 适配hypervisor中vGPU相关特性
4. 修改内核,补足ARM64场景下某些固有限制
5. 处理中断相关逻辑
6. 处理windows guest(ARM)下相关逻辑适配
7. 当前进度是Host可以正常接收workload,guest中vGPU已经可以画三角形了,是WoA阵营中最先支持vGPU配合Ubuntu Host同用GPU的先驱者,目前包括高通、nvidia、amd、intel等均无此类产品。
8. 其他工作正在进行中
项目17:某SoC平台的新产品的深度参与 | 从MRD到PRD深度参与,贡献我对该产品的市场理解,软件定义,优势打法等
其他各项工作
1. 跟进并解决各类系统厂商适配中遇到的各种奇怪问题,比如中兴、锐捷、深信服、中科方德、UOS、麒麟、天翼云、BCLinux等
2. 跟进各种硬件系统中出现的各类问题,比如宝德服务器、鲲鹏920服务器、飞腾服务器、MT自有服务器等
3. 调查各类BUG,保障从vGPU 0.9 ~ 2.9.0 发布,高效解决期间出现的各种BUG,项目进行期间会随时被这些小任务所打断
4. 虚拟机中运行游戏、反虚拟化检测等工作
5. 学习内网中的各种文档、跟进前沿技术领域、关注市场动态
6. 使用ebpf对多个场景的数据收集
7. 提供相关脚本,与QA同事一同搭建各种CI环境
8. 研究windows签名、测试模式、完整性检查
9. 学习国际友商的相关实现、文档;调研国内友商的vGPU相关进度
10. 和leader持续讨论后续架构演进、未来市场、vGPU的发展方向等
11. 和芯片同事一起调查PCIe链路超时原因
12. 搭建内网AI服务器,使用该服务分析私有代码
13. 排查Potplayer、VLC、Heaven、3dmark等软件出现问题的原因
14. 排查虚拟机使用中出现的问题如qemu挂死,虚拟机死机,虚拟机缺少指令集的各种奇怪现象等
15. 参与SMC相关IPC特性讨论,对接MPC相关实现。
16. 国产GPU大比武技术支持
17. 调查解决多个项目甲方验收测试过程中遇到的相关问题
18. 处理联想P7加载驱动IPC挂死的问题
19. 调查鲁大师在VNC server环境下多次操作后蓝屏问题
20. 海光3/4号 NUMA性能探索
21. 保障版本发布,版本发布前QA总能测出各式各项的奇怪问题,根据优先级debug这些问题,以最快的速度提交root cause解决方案2
22. 参与vGPU的版本热升级方案讨论,vGPU的版本升级涉及面太广Guest、Host、meta等,要实现一个稳定的升级方案极为不易
23. 动态升级host ko调研
业余工作
皮蛋熊在工作之余常活跃在电子设计、智能家居、NAS、GPU等领域,在这些领域中贡献力量比较大的项目如下
项目1:群晖Nvidia GPU/vGPU驱动适配
项目介绍:群晖用户一直苦于没有GPU赋能,这里皮蛋熊为此适配了驱动,赋能AI监控等,详见:
项目2:Intel DG1驱动魔改和直通、使用等问题修复
项目介绍:Intel DG1作为外置核显,低廉的价格、强悍的转码、超低的功耗,一直是NAS圈友梦寐以求的显卡,但驱动稀烂,直通崩Host等问题一直阻碍着其使用,皮蛋熊出手将这些问题修复,并将其适配到群晖和飞牛,详见:
项目3:群晖 Surveillance Station 监控调研和密钥逆向
项目介绍:群晖的监控平台是独一档的存在,业界天花板,还有AI分析加持。但默认只有两个license,很多群友抱怨这个限制太大。所以调研了市面中存在的相关解决方案和缺陷,同时自己顺手也逆向了一下其激活码的生成逻辑,并编写python工具生成多组激活码,但因影响群晖公司的商业利益,且群晖公司也已经意识到存在问题,所以该算法我并未放出,请谅解。
项目4:NVIDIA 30系vGPU方案调研和逆向解锁
项目介绍:vGPU unlock项目问世四年,一度掀起自建家庭服务器中心热潮。游戏显卡虚拟化为家庭云游戏、家庭VDI、部分商用VDI、云游戏等场景赋能,也是圈子里的常见玩法。但该项目问世之初到现在,一众业界翘楚相继投身破局之战,最终却无不铩羽而返,30系列的vGPU防线始终固若金汤!正好皮蛋熊正在规划系统学习NVIDIA的驱动设计,想要仔细学习其SR-IOV、MDEV、RM、VMIOP等方案设计,所以将业余时间全部投身于此,四年守望,7月磨刀,30系vGPU解锁完成,详见:
1. 文章:30系vGPU unlock技术细节
评论区