NVIDIA is looking to hire senior engineers to enhance the CUDA driver, a critical component for accelerating general-purpose computation on GPUs. The goal is to improve the realization of NVIDIA hardware potential across various computational workloads like deep learning, scientific computation, self-driving cars, video games, and virtual reality.
Requirements
- Strong C programming skills
- Experience designing, debugging, and maintaining complex software stacks
- Experience 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
- 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
Responsibilities
- 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
Other
- 15+ years of relevant systems software development experience
- Strong 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
- Some familiarity with kernel mode development
- Some familiarity with C++