Senior Deep Learning Software Engineer
Job Description
We are looking for a Senior Deep Learning Software Engineer to design and build our automated inference and deployment solution. As part of the team, you will be instrumental in defining a scalable architecture for DL inference with emphasis on ease-of-use and compute efficiency. Your work will span multiple layers of the DL deployment stack, encompassing developing features in high-level frameworks like PyTorch and JAX, designing and implementing a high-performance execution environment, low-level GPU optimizations and developing custom GPU kernels in CUDA and/or Triton. This is an exceptional opportunity for passionate software engineers straddling the boundaries of research and engineering, with a strong background in both machine learning fundamentals and software architecture & engineering.
What you’ll be doing:
Play a pivotal role in architecting and designing a modular and scalable software platform to provide an excellent user experience with broad model support and optimization techniques.
Leverage and build upon the torch 2.0 ecosystem (TorchDynamo, torch.export, torch.compile, etc...) to analyze and extract standardized model graph representation from arbitrary torch models for our automated deployment solution.
Develop high-performance optimization techniques for inference, such as automated model sharding techniques (e.g. tensor parallelism, sequence parallelism), efficient attention kernels with kv-caching, and more.
Collaborate with teams across Nvidia to use performant kernel implementations within the automated deployment solution.
Analyze and profile GPU kernel-level performance to identify hardware and software optimization opportunities.
Continuously innovate on the inference performance to ensure Nvidia's inference software solutions (TRT, TRT-LLM, TRT Model Optimizer) can maintain and increase its leadership in the market.
What we need to see:
Masters, PhD, or equivalent experience in Computer Science, AI, Applied Math, or related field.
5+ years of relevant work or research experience in Deep Learning.
Excellent software design skills, including debugging, performance analysis, and test design.
Strong proficiency in Python, PyTorch, and related ML tools.
Strong algorithms and programming fundamentals.
Good written and verbal communication skills and the ability to work independently and collaboratively in a fast-paced environment.
Ways to stand out from the crowd:
Contributions to PyTorch, JAX, or other Machine Learning Frameworks.
Knowledge of GPU architecture and compilation stack, and capability of understanding and debugging end-to-end performance.
Familiarity with Nvidia’s deep learning SDKs such as TensorRT.
Prior experience in writing high-performance GPU kernels for machine learning workloads in frameworks such as CUDA, CUTLASS, or Triton.
Increasingly known as “the AI computing company” and widely considered to be one of the technology world’s most desirable employers, NVIDIA offers highly competitive salaries and a comprehensive benefits package. Are you creative, motivated, and love a challenge? If so, we want to hear from you! Come, join our model optimization group, where you can help build real-time, cost-effective computing platforms driving our success in this exciting and rapidly-growing field.
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.