Tech Stack
Tag name is followed by "@" symbol and proficiency level value.
About proficiency levels:
- 1-2 — basic awareness. Minimal hands-on experience, and a rudimentary understanding of the technology's purpose;
- 3-6 — daily use. Comfortable and regular usage, capable of handling common tasks and challenges related to the technology;
- 7-9 — you are an expert, you can teach others, you know all the pitfalls and tricks;
- 10 — exceptional knowledge, comprehensive understanding, and adeptness in all aspects of the technology, including advanced problem-solving. Think twice before claiming or demanding such level.
AI @ 7
CUDA @ 4
Communication @ 7
Debugging @ 6
Deep Learning @ 7
Distributed Systems @ 7
GPU @ 4
Hiring @ 7
JAX @ 4
MPI @ 4
Machine Learning @ 6
Mentoring @ 4
NCCL @ 4
Performance Analysis @ 6
PyTorch @ 4
Python @ 6
- 1-2 — basic awareness. Minimal hands-on experience, and a rudimentary understanding of the technology's purpose;
- 3-6 — daily use. Comfortable and regular usage, capable of handling common tasks and challenges related to the technology;
- 7-9 — you are an expert, you can teach others, you know all the pitfalls and tricks;
- 10 — exceptional knowledge, comprehensive understanding, and adeptness in all aspects of the technology, including advanced problem-solving. Think twice before claiming or demanding such level.
Details
NVIDIA's Deep Learning Compiler Technology team is hiring a software engineer with AI compiler and distributed systems experience. The team builds JaxPP, NVIDIA's open-source library for pipeline parallelism in JAX. JaxPP transforms a JAX training program into per-stage tasks and runs them across multiple GPUs, enabling large models to be trained on NVIDIA GPU clusters using unmodified JAX and XLA.
Responsibilities
- Design and implement program transformations on JAX programs (jaxpr) for large-scale training, including pipeline schedules, task placement across stages, sharding—including JAX explicit sharding—and overlapping communication with computation.
- Develop optimizing compiler and runtime execution technologies for accelerating deep learning training on large-scale distributed systems.
- Compile graph intermediate representations (IR) to target-specific code and build distributed runtimes that dispatch per-stage programs to multiple GPUs and move data between stages using communication libraries such as NCCL.
- Advance compiler technology for high-performance large-scale training workloads, including mixture-of-experts models.
- Collaborate with software framework teams, including JAX and XLA, and hardware architecture teams to accelerate deep learning software.
- Integrate JaxPP into JAX training frameworks, including MaxText.
- Contribute to the open-source JaxPP project by maintaining compatibility with new JAX releases, testing, tracking performance, and supporting teams adopting it for training runs.
Requirements
- Master's or PhD in Computer Science, Computer Engineering, or a related field, or equivalent experience.
- 6+ years of relevant work or research experience in compilers, distributed systems, or deep learning training.
- Experience designing and implementing compilers.
- Experience designing, developing, and deploying distributed systems.
- Experience with deep learning frameworks such as JAX and PyTorch.
- Experience with GPU training and inference of deep learning models.
- Proficiency in C/C++ and Python, with excellent software design skills, including debugging, performance analysis, and test design.
- Experience with parallel computing libraries such as MPI.
- Ability to work independently, define project goals and scope, and lead development efforts.
- Strong communication skills, including the ability to work directly with engineers at partner companies to debug and tune large training runs.
- Ability to work effectively in a dynamic, product-oriented team.
Preferred Qualifications
- Experience with JAX internals, including jaxpr, tracing, sharding, and shard_map, or with XLA, StableHLO, or MLIR.
- Experience building or tuning large training jobs with pipeline, tensor, expert, and data parallelism, including work with MaxText or Megatron-LM.
- Experience debugging the performance of large training jobs on GPU clusters.
- Knowledge of GPU communication libraries such as NCCL, NVSHMEM, or RDMA, and of CPU and/or GPU architecture.
- CUDA programming experience.
- Contributions to open-source compiler or machine learning projects.
- Experience mentoring early-career engineers and interns.
Benefits
The position offers equity and benefits in addition to the base salary. The expected base salary range is USD 184,000–287,500, determined by location, experience, and other objective job-related factors.
More jobs at Nvidia
Senior Networking Architect
Nvidia · Santa Clara, United States
USD 152,000-287,500 per year
Senior Vision Language Model Engineer
Nvidia · Santa Clara, United States
USD 184,000-356,500 per year
Software Engineering Intern - 2027
Nvidia · Munich, Germany
EUR 47,800-82,900 per year
Network Site Reliability Engineer
Nvidia · Santa Clara, United States
USD 168,000-333,500 per year
Manager, Systems Software Engineering - GPU
Nvidia · Santa Clara, United States
USD 184,000-356,500 per year
Similar jobs
Principal Developer, AI Networking
Nvidia · Santa Clara, United States
USD 272,000-488,800 per year
Senior Deep Learning Frameworks CUDA Software Engineer
Nvidia · Santa Clara, United States
USD 184,000-356,500 per year
Senior Deep Learning Software Engineer, Inference and Model Optimization
Nvidia · Santa Clara, United States
USD 184,000-356,500 per year
Senior Software Engineer, DGX Cloud AI Infrastructure
Nvidia · Santa Clara, United States
USD 184,000-356,500 per year
Senior Deep Learning Framework Communications Engineer
Nvidia · Santa Clara, United States
USD 152,000-287,500 per year
Member of Technical Staff (AI Inference Engineer)
Perplexity AI · San Francisco, United States, Palo Alto, United States, New York City, United States
USD 220,000-485,000 per year
Software Engineer, Performance Instrumentation
Nvidia · Santa Clara, United States
USD 168,000-270,200 per year
Senior Software Engineer, GPU Code Generation for Machine Learning Inference
Nvidia · Santa Clara, United States
USD 152,000-287,500 per year