Senior Software Engineer - CUDA and Unified Memory

NVIDIA Ltd.
Santa Clara, United States of America
1 month ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior
Compensation
$ 162K

Job location

Santa Clara, United States of America

Tech stack

C
Microsoft Windows
API
Apple Mac Systems
Computing Platforms
C++
Nvidia CUDA
Software Debugging
Linux
Memory Management
Video Game Development
Scientific Computating
Virtual Memory
Multithreading
Virtual Reality
Deep Learning
Information Technology
Operational Systems

Job description

We are hiring software 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, and the operating system. Unified Memory kernel driver provides kernel memory management that enables these advanced features.

What you'll be doing:

As a member of our team, you will apply your design, coding expertise , and creativity, and to collaborate with peers across NVIDIA to deliver upon the best compute platform in the world. You will craft sophisticated solutions to exciting problems shaping the future direction of CUDA!

  • Architect, and implement new features for new chips and new kernel features
  • Coordinate with other teams to accomplish your work daily
  • Help define forward-looking improvements to the CUDA APIs and programming model
  • Write effective, maintainable, and well-tested kernel and userspace code
  • Develop code for multiple Linux operating systems

Requirements

  • BS or MS degree in Computer Science, Electrical Engineering or related field (or equivalent experience)
  • Strong C programming skills
  • Minimum of 10+ years of related development experience
  • Experience working with large codebases
  • Background with operating system interfaces for threads, process control, and virtual memory
  • Experience writing and debugging multithreaded programs
  • Good written communication

Ways to stand out from the crowd:

  • Understanding of system level architecture, such as interconnects, memory hierarchy, interrupts, and memory-mapped IO
  • Knowledge of memory coherence and consistency models
  • Experience with kernel mode development
  • Experience with Windows, Linux, or macOS driver development
  • Some familiarity w 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 184,000 USD - 287,500 USD for Level 4, and 224,000 USD - 356,500 USD for Level 5., $41.00 - $78.00 per hour

Apply for this position