清微智能
NPU Runtime开发工程师
岗位职责
1. 开发NPU用户态运行时及API,管理设备、上下文、程序、内存和执行对象的创建、查询、销毁与配套检查。
2. 实现程序加载、入口与参数绑定、内存分配及复用、数据搬运,明确资源所有权、访问权限和回收行为。
3. 实现任务提交与调度、队列、Stream及同步,对接驱动和固件,处理并发、超时、取消、设备异常、进程退出及恢复。
4. 实现性能采集启停、范围控制、事件关联与缓冲,提供软件时间、内存、搬运和CPU数据的查询与导出,记录时基、单位、版本和完整性。
5. 验证采集开销、记录丢失及异常路径,依据实际硬件能力扩展时间戳和计数器接口,为上层性能分析工具提供数据。
6. 依据NPU指令与硬件规格开发CModel,模拟计算、访存及状态更新,实现浮点与量化数值行为,处理舍入、饱和、溢出及非法访问。
7. 建立单指令、指令序列与独立参考测试,提供指令跟踪和状态转储,对接Spike所需的NPU功能接口,区分指令、程序和设备验证。
8. 建设接口、并发、数值和异常回归,参与RTL、FPGA及芯片结果的差异定位,维护示例、调试记录、接口及版本文档。
任职要求
1. 计算机、电子或相关专业本科及以上学历,3年及以上系统软件研发经验,在加速器Runtime、指令功能模型或相近底层执行系统中至少一个方向有实际开发经历。
2. 熟练掌握C/C++、Linux开发与调试,具备Python脚本能力,理解线程同步、原子操作、内存可见性及资源生命周期。
3. 理解加速器的队列、内存、数据传输和同步,以及指令、寄存器和执行状态之间的关系,能够阅读设备接口及ISA资料。
4. 在运行时方向能设计API、对象所有权和错误处理并定位竞态、泄漏、超时;或在指令模型方向能实现计算与状态语义并定位浮点、量化及访存偏差,至少深入其中一侧并具备跨侧协作能力。
5. 具备性能埋点与事件采集、独立数值参考、指令测试或差分验证中的相关实践,能够保留可复现输入、配置和执行记录。
6. 熟悉构建、自动化测试、接口与版本文档,能够与框架、算子、编译器、驱动固件及硬件团队共同完成联调与问题定位。
加分项
1. 有GPU/NPU/DSP Runtime、CUDA/OpenCL/Level Zero或自研异步执行系统的实现经验。
2. 有RISC-V、Spike、QEMU、自研ISS或NPU指令CModel研发及独立参考对拍经验。
3. 有Profiler、Trace时间线、低开销采集、硬件计数器,或RTL/FPGA/芯片联合验证经验。
信息来自企业官方招聘渠道
OfferSeek 对公开岗位信息进行聚合、去重和结构化整理,最终申请以企业官方页面为准。