Principal System Software Engineer - CUDA Driver
Role details
Job location
Tech stack
Job description
We are hiring senior engineers to work on the CUDA driver, a core component of our platform for accelerating general purpose computation on the GPU. Our team 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, Switches and the operating system. What You'll Be Doing
- You will evangelize, architect, and implement new CUDA features
- You'll oversee and drive development efforts across multiple teams
- Collaborate with members of hardware architecture teams
- Help define forward-looking improvements to the CUDA APIs and programming model
- Design and maintain performance and precision modeling
- Write effective, maintainable, and well-tested code
- Develop code for multiple operating systems
Requirements
- Bachelor of Science or Master of Science degree in Computer Science, Electrical Engineering, or related field (or equivalent experience)
- 15+ years of relevant systems software development experience
- Strong C programming skills
- Experience designing, debugging, and maintaining complex software stacks
- Background with operating system interfaces for threads, process control, and virtual memory
- Experience with HW/SW co-design, perf. modeling using emulation/simulation, creating SW programming model exposures for HW features
- Expert interpersonal, verbal, and written communications skills with a capability to achieve objectives under tight deadlines
- Strong collaborative and interpersonal skills, specifically a proven ability to effectively guide and influence within a dynamic Matrix environment
Ways To Stand Out From The Crowd
- You have an understanding of system level architecture, such as interconnects, memory hierarchy, interrupts, and memory-mapped IO
- Designing and implementing drivers programming rich HW acceleration engines and software verification testplans.
- Knowledge of CPU, GPU architectures, memory coherence and consistency models
- Some background with Kernel mode development
- Some familiarity with C+
Benefits & conditions
Your base salary will be determined based on your location, experience, and the pay of employees in similar positions. The base salary range is 272,000 USD - 431,250 USD.