Senior Compiler Architect, MLIR - LLVM
NVIDIA
We are looking for an experienced Compiler Architect with technical leadership experience for an exciting role in our Compute Compiler Team. We deliver features and improvements to CUDA and other compute compilers to better realize the potential of NVIDIA GPUs for a growing range of computational workloads, ranging from deep learning, scientific computation, and self-driving cars.
Our compiler organization makes its mark on every GPU NVIDIA produces. We need you as a key member of a small team that is working on a core compiler component for accelerating general purpose computation on the GPU. You will be solving critical problems working alongside some of the top valued diverse minds in GPU computing and systems software, doing what you enjoy. See your efforts in action as HPC and DL developers use features and optimizations to achieve the best performance of their applications. If this sounds like a fun challenge, we want to hear from you!
What you will be doing:
Provide technical leadership to a small team of engineers working on compiler middle-end optimizations.
Analyze the performance of application code running on NVIDIA GPUs with the aid of profiling tools.
Work with hardware architects, assembly language teams to help define architecture evolution, informed by application use-cases.
Identify opportunities for performance improvements in the LLVM based compiler optimizer.
Interact with Open-source MLIR/LLVM community to ensure tighter integration.
Work with geographically distributed compiler, architecture and application teams to oversee improvements and problem resolutions.
Be part of a team that is at the center of deep-learning compiler technology spanning architecture design and support through higher level languages.
What we need to see:
M.S or Ph.D. in Computer Science, Computer Engineering, or related fields (or equivalent experience)
10+ years experience in Compiler Optimizations such as Loop Optimizations, Inter-procedural optimizations and Global optimizations and Program Analysis.
3+ years technical leadership experience
Excellent hands-on C++ programming skills.
Excellent understand of architecture features used in parallel programming (fence, vote, synchronization directives etc.)
Experience writing significant analysis or transformation passes in LLVM framework.
Understanding of Processor ISA (GPU ISA would be a plus).
Strong background in software engineering principles with a focus on crafting robust and maintainable solutions to challenging problems
Good communication and documentation skills and self-motivated
Ways for you to stand out from the crowd:
Experience in developing applications in CUDA or other parallel programming language.
Deep understanding of parallel programming concepts.
Prior experience working with architecture teams on parallel processing hardware.
Experience working on compile-time improvements in JIT compilation contexts.
NVIDIA is leading the way in groundbreaking developments in Artificial Intelligence, High-Performance Computing and Visualization. The GPU, our invention, serves as the visual cortex of modern computers and is at the heart of our products and services. Our work opens up new universes to explore, enables amazing creativity and discovery, and powers what were once science fiction inventions from artificial intelligence to autonomous cars. We are looking for great people like you to help us accelerate the next wave of artificial intelligence.
The base salary range is 180,000 USD - 339,250 USD. Your base salary will be determined based on your location, experience, and the pay of employees in similar positions.You will also be eligible for equity and benefits. NVIDIA accepts applications on an ongoing basis.