小米资深llvm编译器架构工程师
社招全职8年以上A20323地点:北京状态:招聘
任职要求
1. 计算机相关专业硕士学历+8年经验,或博士+5年经验; 2. 5年以上编译器开发经验,2年以上编译方案设计经验; 3. 完整参与过至少2个工业级编译器项目; 4. 精通LLVM架构:熟悉Clang AST操作与语义分析扩展,掌握LLVM Pass开发与优化管道定制; 5. 熟悉CUDA/OpenCL等编程模型实现原理; 6. 掌握GPU架构特性(SM结构、内存层次、Warp调度); 7. 实现过新型硬件指令集的后端支持; 8. 具有小型技术团队(3-5人)带领经验或关键技术决策经验;
工作职责
1.主导基于Clang/LLVM的SIMT编译器关键技术设计,制定模块化架构方案并推动实施; 2.设计面向SIMT架构的核心编译流程:前端语言特性实现,LLVM IR优化策略,后端指令生成; 3.攻克性能瓶颈问题:大规模并行程序的编译时优化,内存子系统编译优化,指令级并行度提升; 4.领导关键技术预研:多目标代码生成,编译时性能预测模型构建 5.指导中初级工程师进行Pass开发、调试工具链建设等实施工作; 6.主导技术文档体系构建(架构设计文档、优化白皮书);
包括英文材料
学历+
LLVM+
https://llvm.org/docs/GettingStarted.html
Welcome to the LLVM project!
https://llvm.org/docs/tutorial/
This is the “Kaleidoscope” Language tutorial, showing how to implement a simple language using LLVM components in C++.
https://mcyoung.xyz/2023/08/01/llvm-ir/
“LLVM” is an umbrella name for a number of software components that can be used to build compilers.
https://www.youtube.com/watch?v=Lvc8qx8ukOI
This is the first lecture from the "Programming Language with LLVM" course where we build a full programming language similar to JavaScript from scratch, using LLVM compiler infrastructure.
CUDA+
https://developer.nvidia.com/blog/even-easier-introduction-cuda/
This post is a super simple introduction to CUDA, the popular parallel computing platform and programming model from NVIDIA.
https://www.youtube.com/watch?v=86FAWCzIe_4
Lean how to program with Nvidia CUDA and leverage GPUs for high-performance computing and deep learning.
OpenCL+
https://developer.nvidia.com/opencl
OpenCL™ (Open Computing Language) is a low-level API for heterogeneous computing that runs on CUDA-powered GPUs.
https://engineering.purdue.edu/~smidkiff/ece563/NVidiaGPUTeachingToolkit/Mod20OpenCL/3rd-Edition-AppendixA-intro-to-OpenCL.pdf
we will give a brief overview of OpenCL for CUDA programers.
[英文] Hands On OpenCL
https://handsonopencl.github.io/
An open source two-day lecture course for teaching and learning OpenCL
https://leonardoaraujosantos.gitbook.io/opencl/chapter1
Open Computing Language is a framework for writing programs that execute across heterogeneous platforms.
https://ulhpc-tutorials.readthedocs.io/en/latest/gpu/opencl/
OpenCL came as a standard for heterogeneous programming that enables a code to run in different platforms.
https://www.youtube.com/watch?v=4q9fPOI-x80
This presentation will show how to make use of the GPU from Java using OpenCL.
相关职位
社招
我们正在寻找一名全职的机器学习编译器工程师,对建立先进的机器学习编译器基础设施有深入的了解和强烈的热情,以便在通用目的GPU或定制SoC上部署先进的自动驾驶模型。 开发ML编译器,使机器学习模型能够在通用GPU或小鹏汽车定制的SoC芯片上运行,具体的工作包括: 1、clang/MLIR/LLVM编译器工具链开发,包括C/C++、汇编器、链接器。 2、各种前端优化,包括各种计算图优化。 3、各种后端优化,包括通过异构内存管理、分块和并行化。 4、测试和分析编译器部署的模型。
更新于 2025-04-02
社招10年以上A227903
1. 规划公司Rust技术战略,主导小米澎湃OS关键路径(如编译器)的技术攻坚 2. 设计Rust与硬件协同的创新方案(如Rust实现的硬件抽象层、微架构优化) 3. 解决系统级复杂问题(如内存安全边界验证、确定性延迟保障、热升级支持) 4. 代表公司参与Rust社区建设,推动内部技术成果开源及行业标准制定 5. 搭建团队技术护城河,预研Rust在小米澎湃OS领域的前沿方向(如形式化证明、ZKP集成)
更新于 2025-02-26
社招10年以上A142705
1. 规划公司Rust技术战略,主导小米澎湃OS关键路径(如编译器)的技术攻坚 2. 设计Rust与硬件协同的创新方案(如Rust实现的硬件抽象层、微架构优化) 3. 解决系统级复杂问题(如内存安全边界验证、确定性延迟保障、热升级支持) 4. 代表公司参与Rust社区建设,推动内部技术成果开源及行业标准制定 5. 搭建团队技术护城河,预研Rust在小米澎湃OS领域的前沿方向(如形式化证明、ZKP集成)
更新于 2025-02-26