Senior Systems Software Engineer, Profiling Tools

NVIDIA

NVIDIA

Software Engineering
Multiple locations
Posted on Sep 22, 2023

We are now looking for a Senior Systems Software Engineer, Profiling Tools! NVIDIA’s invention of the GPU in 1999 sparked the growth of the PC gaming market, redefined modern computer graphics, and revolutionized parallel computing. More recently, GPU-enabled deep learning ignited modern AI — the next era of computing — with the GPU acting as the workhorse that powers intelligent applications in a multitude of domains and computing environments. With performance at the center of everything we do at NVIDIA, we pride ourselves on not only building the world’s fastest processors, but also on providing a full ecosystem that empowers developers to realize that performance in practice.

NVIDIA’s GPU Architecture Group is looking for a software engineer to help us push the boundaries of our performance analysis capabilities. As a member of our team, you will work closely with GPU/CPU architects, CUDA developers, and deep learning performance engineers to devise innovative approaches to hardware and software profiling and incorporate them into our internal tools. Your work will accelerate progress toward our broader mission, which spans both hardware and software, to consistently deliver the world’s fastest accelerated computing systems in domains ranging from autonomous vehicles to supercomputers. Join our technically diverse team of GPU architects, software engineers, and infrastructure experts to advance the frontiers of computing performance!

What you’ll be doing:

  • Design and develop software tools to analyze performance of CUDA applications from various sectors (e.g. Deep Learning and scientific computing) on various platforms including embedded systems and large clusters.

  • Work with multi-disciplinary teams to design, implement, and verify new features for profiling and monitoring, often incorporating new hardware capabilities

  • Define hardware metrics for performance analysis and verify them for upcoming architectures

  • Give feedback to improve GPU and CPU architectures for profiling

  • Constantly learn about hardware architecture and the performance analysis process to improve the efficiency and effectiveness of our tools

What we need to see:

  • Bachelors, Masters, or PhD in relevant field (e.g. CS, EE, CE) or equivalent experience.

  • 5+ years of relevant work experience

  • Proficiency in C, C++, and Python.

  • Experience in software architecture and design

  • Strong computer science fundamentals - algorithm and data structures, parallel computing and system software

  • Strong software optimization and debugging skills.

  • Experience in developing, analyzing, and optimizing parallel algorithms

  • In-depth knowledge of GPU and/or CPU architecture and general computer architecture principles

Ways to stand out from the crowd:

  • Knowledge of operating systems, device drivers, and/or compiler implementation

  • Experience developing CUDA libraries or applications

  • Experience analyzing GPU application performance

  • Experience with design and development of monitoring, profiling or optimization software tools

The base salary range is $144,000 - $270,250. 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 is committed to fostering a diverse work environment and proud to be an equal opportunity employer. As we highly value diversity in our current and future employees, we do not discriminate (including in our hiring and promotion practices) on the basis of race, religion, color, national origin, gender, gender expression, sexual orientation, age, marital status, veteran status, disability status or any other characteristic protected by law.