About the Role
About the Role
As a Machine Learning Applications and Compiler Engineer at NVIDIA, you will develop algorithms and optimizations for the LPX inference and compiler stack, focusing on high-performance runtime and compiler components. This role involves collaborating with hardware architects and design teams to enhance the efficiency of neural network workloads on NVIDIA platforms.
What You’ll Be Doing
- Build, develop, and maintain high-performance runtime and compiler components, focusing on end-to-end inference optimization.
- Define and implement mappings of large-scale inference workloads onto NVIDIA’s systems.
- Extend and integrate with NVIDIA’s SW ecosystem, contributing to libraries, tooling, and interfaces that enable seamless deployment of models across platforms.
- Benchmark, profile, and monitor key performance and efficiency metrics to ensure the compiler generates efficient mappings of neural network graphs to our inference hardware.
- Collaborate closely with hardware architects and design teams to feedback software observations, influence future architectures, and codesign features that unlock new performance and efficiency points.
- Prototype and evaluate new compilation and runtime techniques, including graph transformations, scheduling strategies, and memory/layout optimizations tailored to spatial processors.
- Publish and present technical work on novel compilation approaches for inference and related spatial accelerators at top tier ML, compiler, and computer architecture venues.
Who You Are
- Pursuing or recently completed a MS or PhD in Computer Science, Electrical/Computer Engineering, or related field, or equivalent experience.
- Possess software engineering background with familiarity in systems level programming (e.g., C/C++ and/or Rust) and solid CS fundamentals in data structures, algorithms, and concurrency.
- Hands on experience with compiler or runtime development, including IR design, optimization passes, or code generation.
- Experience with LLVM and/or MLIR, including building custom passes, dialects, or integrations.
- Familiarity with deep learning frameworks such as TensorFlow and PyTorch, and experience working with portable graph formats such as ONNX.
- Understanding of parallel and heterogeneous compute architectures, such as GPUs, spatial accelerators, or other domain specific processors.
- Strong analytical and debugging skills, with experience using profiling, tracing, and benchmarking tools to drive performance improvements.
- Excellent communication and collaboration skills, with the ability to work across hardware, systems, and software teams.
Bonus Points
- Prior work on spatial or dataflow architectures, including static scheduling, pipeline parallelism, or tensor parallelism at scale.
- Contributions to opensource ML frameworks, compilers, or runtime systems, particularly in areas related to performance or scalability.
- Demonstrated research impact, such as publications or presentations at conferences like PLDI, CGO, ASPLOS, ISCA, MICRO, MLSys, NeurIPS, or similar.
- Experience with large-scale AI distributed inference or training systems, including performance modeling.
Requirements
Software Engineering Background
Possess familiarity in systems level programming (e.g., C/C++ and/or Rust) and solid CS fundamentals.
Compiler Development Experience
Hands on experience with compiler or runtime development, including IR design and optimization.
Deep Learning Frameworks
Familiarity with frameworks such as TensorFlow and PyTorch, and experience with ONNX.
Analytical Skills
Strong analytical and debugging skills, with experience using profiling and benchmarking tools.
Nice to Have
Experience with LLVM and/or MLIR, including building custom passes and dialects.
Demonstrated research impact, such as publications or presentations at top conferences.