蚂蚁金服蚂蚁技术研究院长期研究型实习生-编译器方向
实习兼职蚂蚁技术研究院长期研究型实习生项目地点:北京 | 上海 | 深圳状态:招聘
任职要求
职位要求: 1.有相关研究背景的博士生,特别优秀的硕士生亦可; 2.在编程语言、体系结构、软件工程、系统软件等相关领域有高质量论文(CCFA类学术会议或者期刊的论文); 3.在编译技术领域具有显著成果,具有很强的研究和创新能力,跟踪领域内前沿的研究成果并能够将研究成果验证落地; 4.深入理解至少一种编译器架构,例如:GCC/LLVM等,有runtime及虚拟机开发经验,例如:JIT/JVM等,熟悉CPU指令集,例如:RISC-V/x86/ARM等; 5.了解编译器优化技术,对数据流/控制流分析、循环优化、IPA分析、GC等有经验; 6.较强的表达和沟通能力,工作认真、严谨、敬业。有很强的分析问题和解决问题的能力,有强烈的责任心; 7.至少3个月的实习工作。
工作职责
职位描述: 1.面向异构计算、软件工程、安全隐私、绿色计算等方向,打造蚂蚁编译技术平台; 2.定义新的编译架构,打造新的编译生态,探索新的技术方向。
包括英文材料
GCC+
https://gcc.gnu.org/onlinedocs/gcc-15.2.0/gcc/
This file documents the use of the GNU compilers.
https://www.seas.upenn.edu/~ese5320/fall2022/handouts/_downloads/788d972ffe62083c2f1e3f86b7c03f5d/gccintro.pdf
The purpose of this book is to explain the use of the GNU C and C++ compilers, gcc and g++.
https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html
The original GNU C Compiler (GCC) is developed by Richard Stallman, the founder of the GNU Project.
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.
JVM+
https://www.freecodecamp.org/news/jvm-tutorial-java-virtual-machine-architecture-explained-for-beginners/
https://www.youtube.com/watch?v=e2zmmkc5xI0
GC+
[英文] Garbage Collection
https://craftinginterpreters.com/garbage-collection.html
The GC doesn’t throw away the memory, it reclaims it to be reused for new data.
https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals
In the common language runtime (CLR), the garbage collector (GC) serves as an automatic memory manager.
https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html
This tutorial covers the basics of how Garbage Collection works with the Hotspot JVM.
https://www.youtube.com/watch?v=c32zXYAK7CI
How does memory management work? In C you had to manage things yourself, but modern languages take care of a lot of it for you.
RISC-V+
[英文] Learn RISC-V
https://github.com/riscv/learn
A community-driven compilation of RISC-V resources and learning material.
https://riscv-programming.org/
This website contains a set of resources to support learning/teaching assembly programming using the RISC-V ISA.
https://www.youtube.com/watch?v=bEUMLh2lasE
This is the first in a series of tutorials which will teach you how to get started with RiscV (Risc 5) programming
[英文] 📺You Can Learn RISC-V Assembly in 10 Minutes | Getting Started RISC-V Assembly on Linux Tutorial
https://www.youtube.com/watch?v=GWiAQs4-UQ0
In this video, we talk about the RISC-V processor architecture.
相关职位