Santa Clara, CA, USA
54 days ago
System Software Engineer, Performance - CUDA Driver

We are hiring engineers to work on the CUDA driver and runtime, core components of our platform for accelerating general purpose computation on the GPU. Our team analyzes performance of applications, investigates bottlenecks in software or hardware and delivers features and improvements to better realize the potential of NVIDIA hardware for a growing range of computational workloads, ranging from deep learning, scientific computation, and self-driving cars to video games and virtual reality.

 

CUDA defines a unified programming model across a range of system configurations and hardware capabilities. To accomplish this, the CUDA driver interacts with GPU hardware, kernel mode drivers, and the operating system.

What you'll be doing:

As a member of our team, you will use your design abilities, coding expertise, and creativity to deliver the best compute platform in the world. You will craft elegant solutions to exciting problems and craft the future direction of CUDA as you collaborate with your peers across NVIDIA. You will investigate complex performance problems and deliver robust solutions that accelerate applications.

Evangelize, architect, and implement new features

Analyze full stack performance ranging from application level through libraries, system software, kernel software and hardware

Define forward-looking improvements to the CUDA APIs and programming model

Create novel system software optimizations

Write effective, maintainable, and well-tested code

Develop code for multiple operating systems

What we need to see:

BS or MS degree in Computer Science, Electrical Engineering (or equivalent experience)

1 to 3+ years of relevant industry experience or equivalent academic experience after BS

Strong C programming skills

Experience or comfort in working with large codebases

Track record of debugging performance problems in complex environments with software and hardware components

Experience with operating system interfaces for threads, process control, and virtual memory

Experience writing and debugging multithreaded programs

Deep understanding of technology and passionate about what you do

Strong collaborative and interpersonal skills, specifically a proven ability to effectively guide and influence within a dynamic matrix environment. Good written communication.

Ways to stand out from the crowd:

Understanding of system level architecture, such as interconnects, memory hierarchy, interrupts, and memory-mapped IO

Experience with performance tuning of device drivers or low level system software

Experience with performance optimizations across a variety of CPU architectures - like x86, POWER and ARM

Knowledge of memory coherence and consistency models

NVIDIA is widely considered to be one of the technology world’s most desirable employers. We have some of the most brilliant and hardworking people in the world working for us. If you're creative and autonomous, and are interested in working on novel problems in a collaborative environment, we want to hear from you!

The base salary range is 120,000 USD - 230,000 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.

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.

Confirm your E-mail: Send Email