Senior Software Engineer Cuda Umd - GPU Kernel Scheduling

NVIDIA NVIDIA · Semiconductors · Santa Clara, CA

Senior Software Engineer to work on the CUDA Driver, a core component of NVIDIA's platform for accelerating general purpose computation on the GPU, focusing on GPU kernel scheduling for AI/ML workloads.

What you'd actually do

  1. Evangelize, architect, and implement new features
  2. Coordinate and drive development efforts across multiple teams
  3. Help define forward-looking improvements to the CUDA APIs and programming model
  4. Extend important CUDA programming models and functionality such as CUDA Graphs
  5. Explore ways to use Graphs to improve the scheduling of AI/ML workloads on our GPUS to be more efficient and faster.

Skills

Required

  • BS or MS degree in Computer Science, Electrical Engineering​ or related field (or equivalent experience)
  • Strong C and C++ programming skills
  • Minimum of 4 years of related development experience
  • Experience driving projects across multiple teams
  • Experience working with large codebases
  • Background with operating system interfaces for threads, process control, and virtual memory
  • Understanding of system level architecture, such as interconnects, memory hierarchy, interrupts, and memory-mapped IO
  • Experience writing and debugging multithreaded programs
  • Good written communication as well as presentation skills

Nice to have

  • Prior experience with parallel computing - preferably writing CUDA Programs or Libraries that use CUDA
  • Knowledge of memory coherence and consistency models
  • Background with kernel mode development
  • Experience with Linux Systems Software development
  • Experience maintaining and extending programming models or higher-level language support for similar environments

What the JD emphasized

  • deep understanding of device drivers
  • phenomenal C/C++ skills
  • CUDA Driver
  • CUDA Graphs
  • scheduling of AI/ML workloads