小米高级llvm编译器开发工程师
社招全职3年以上A128153地点:北京状态:招聘
任职要求
1. 计算机科学、电子工程相关专业硕士及以上学历; 2. 3年以上编译器开发经验,有GPU/NPU编译器开发经验者优先; 4. 有SIMT编程语言(CUDA/HIP/OpenCL)编译器或运行时开发经验; 5. 精通LLVM编译器框架,具有实际参与Clang/LLVM后端开发或重要Pass开发经验; 6. 深入理解SIMT执行模型(线程层次结构、Warp调度、内存层级); 7. 熟悉编译原理关键技术:数据流分析、指令选择、寄存器分配、循环优化; 8. 掌握现代C++(C++17/20)、Python,具备大规模代码工程化开发能力;
工作职责
1. 基于Clang/LLVM框架,设计并实现面向SIMT架构的编程语言编译器; 2.开发LLVM IR到SIMT硬件指令(如GPU/NPU并行指令集)的转换与优化; 3.扩展Clang前端支持SIMT编程语言特性; 4.设计针对SIMT架构的编译器优化策略: 5.与硬件团队协同设计编译器-芯片联合优化方案;
包括英文材料
学历+
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.
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.
后端开发+
https://www.youtube.com/watch?v=tN6oJu2DqCM&list=PLWKjhJtqVAbn21gs5UnLhCQ82f923WCgM
Learn what technologies you should learn first to become a back end web developer.
C+++
https://www.learncpp.com/
LearnCpp.com is a free website devoted to teaching you how to program in modern C++.
https://www.youtube.com/watch?v=ZzaPdXTrSb8
Python+
https://liaoxuefeng.com/books/python/introduction/index.html
中文,免费,零起点,完整示例,基于最新的Python 3版本。
https://www.learnpython.org/
a free interactive Python tutorial for people who want to learn Python, fast.
https://www.youtube.com/watch?v=K5KVEU3aaeQ
Master Python from scratch 🚀 No fluff—just clear, practical coding skills to kickstart your journey!
https://www.youtube.com/watch?v=rfscVS0vtbw
This course will give you a full introduction into all of the core concepts in python.
相关职位
社招A27485
1、参与RISC-V面向C/C++、Java或Go语言编译器/虚拟机/高性能库等相关软件的开发和优化; 2、基于云端服务器应用,开展RISC-V生态软件的性能分析和优化,ISA和微架构软硬件协同设计优化。
更新于 2025-05-27
社招A213151C
1、参与RISC-V面向C/C++、Java或Go语言编译器/虚拟机/高性能库等相关软件的开发和优化; 2、基于云端服务器应用,开展RISC-V生态软件的性能分析和优化,ISA和微架构软硬件协同设计优化。
更新于 2025-05-27
社招4年以上研发类
1、负责C/C++/JAVA编程语言的编译态、运行态性能调优; 2、负责产品编译器和运行时的技术竞争力,包括识别相关性能突破点,并提出优化方法,支持产品卖点特性构建; 3、负责编译器和运行时领域内的前沿技术研究,导入先进技术,支撑产品能力提升。