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!
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.
Responsibilities:
- Evangelize, architect, and implement new CUDA features
- 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++