Senior System Software Engineer - AI Performance And Efficiency Tools
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.
CUDA @ 4
Communication @ 7
Debugging @ 4
GPU @ 4
Kubernetes @ 4
Linux @ 4
Networking @ 4
PyTorch @ 4
Python @ 7
Software Development @ 4
TensorFlow @ 4
- 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
A key part of NVIDIA's strength is our sophisticated analysis / debugging tools that empower NVIDIA engineers to improve performance and power efficiency of our products and the running applications. We are looking for forward-thinking, hard-working, and creative people to join a multifaceted software team with high standards! This software engineering role involves developing tools for AI researchers and software/hardware teams running AI workload in GPU cluster.
As a member of the software development team, we will work with users from different departments like Architecture teams, Software teams. Our work brings the users intuitive, rich and accurate insight in the workload and the system, and empowers them to find opportunities in software and hardware, build high level models to propose and deliver the best hardware and software to our customers, or debugging tricky failures and issues to help improve the performance and efficiency of the system.
Responsibilities
- Build internal profiling and analysis tools for AI workloads at large scale
- Build debugging tools for common encountered problems like memory or networking
- Create benchmarking and simulation technologies for AI system or GPU cluster
- Partner with hardware architects to propose new features or improve existing features with real world use cases
Requirements
- BS+ in Computer Science or related (or equivalent experience) and 5+ years of software development
- Strong software skills in design, coding (C++ and Python), analytical, and debugging
- Good understanding of Deep Learning frameworks like PyTorch and TensorFlow, distributed training and inference
- Knowledge of GPU cluster job scheduling (Slurm or Kubernetes), storage and networking
- Experience with NVIDIA GPUs, CUDA Programming and NCCL
- Motivated self-starter with strong problem-solving skills and customer-facing communication skills
- Passion for continuous learning. Ability to work concurrently with multiple global groups
Ways to stand out from the crowd
- Proven experience in GPU cluster scale continuous profiling & analysis tools/platforms
- Solid experience in large AI job performance analysis for training/inference workload
- Knowledge of Linux device drivers and/or compiler implementation
- Knowledge of GPU and/or CPU architecture and general computer architecture principles