System Software Engineer - Cuda Chips

NVIDIA NVIDIA · Semiconductors · Santa Clara, CA

System Software Engineer to work on the CUDA driver, a core component of NVIDIA's platform for accelerating general purpose computation on the GPU. The role involves developing features and improvements for workloads ranging from deep learning, scientific computation, to self-driving cars, video games, and virtual reality. Responsibilities include design feedback, simulation, hardware bringup, feature deployment, and working with OS, kernel drivers, and hardware architecture.

What you'd actually do

  1. Develop Software on Pre-Si environments(Simulation/Emulation)
  2. Own and drive CUDA enablement for new Silicon and Architecture
  3. Work with SW, HW and relevant teams to develop, stabilize and productize CUDA features for new chips and systems
  4. Promote, architect, and implement new features, as well as own contribution to bring up of CUDA on new chips
  5. Help define forward-looking improvements to the CUDA APIs and programming model, while driving development efforts across multiple teams

Skills

Required

  • BS or MS degree in Computer Engineering, Computer Science, Electrical Engineering or equivalent experience
  • 2+ years of relevant systems software development experience
  • Strong C programming skills
  • knowledge of parallel programming
  • Excellent knowledge of computer system architectures
  • Experience with operating system interfaces for threads, process control, and virtual memory
  • Experience writing and debugging multithreaded programs
  • Background with working with large codebases
  • Good written communication
  • strong collaborative skills
  • ability to effectively guide and influence across groups

Nice to have

  • Understanding of system level architecture, such as interconnects, memory hierarchy, interrupts, and memory-mapped IO
  • Knowledge of memory coherence and consistency models
  • Background with kernel mode development
  • Experience with Windows, Linux, or macOS driver development
  • Some familiarity with C++
  • CUDA experience

What the JD emphasized

  • 2+ years of relevant systems software development experience
  • Strong C programming skills
  • Excellent knowledge of computer system architectures
  • Experience with operating system interfaces for threads, process control, and virtual memory
  • Experience writing and debugging multithreaded programs
  • Background with working with large codebases
  • Deep understanding of technology
  • Understanding of system level architecture, such as interconnects, memory hierarchy, interrupts, and memory-mapped IO
  • Knowledge of memory coherence and consistency models
  • Background with kernel mode development
  • Experience with Windows, Linux, or macOS driver development