NVIDIA
Senior Systems Software Engineer, CUDA Driver
India, Bengaluru · full-time
Company's own boardBachelor's degree8+ yrs
First seen Oct 12 · seen live today · from NVIDIA's own Workday board
Skills mentioned
c++linux
The posting, as published
NVIDIA’s invention of the GPU in 1999 sparked the growth of the PC gaming market, redefined modern computer graphics, and revolutionized parallel computing. More recently, GPU deep learning ignited modern AI — the next era of computing — with the GPU acting as the brain of computers, robots, and self-driving cars that can perceive and understand the world. We're looking to grow our company and form teams with the most inquisitive people in the world. Join us at the forefront of technological advancement. We are hiring software engineers to work on the CUDA driver for Tegra. CUDA is NVIDIA’s 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, user mode drivers, and the operating system.
What you’ll be doing:
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 shape the future direction of CUDA as you collaborate with your peers across NVIDIA.
You will architect and implement new features
Coordinate development efforts across multiple teams
Help define forward-looking improvement to the CUDA APIs and programming model
Write effective, maintainable, and well-tested code
Focus on developing code that targets the Tegra devices
Integrate AI practices into the development workflows across the compute organisation
What we need to see:
BS or MS degree in Computer Science, Electrical Engineering or related field (or equivalent experience)
8+ years of relevant industry experience or equivalent academic experience after BS
Strong C and C++ programming skills
Experience working with large codebases
Experience with operating system interfaces for threads, process control, and virtual memory
Experience writing and debugging multithreaded programs
Understanding of system level architecture, such as interconnects, memory hierarchy, interrupts, and memory-mapped IO
Strong interest in system software
Good written communication
Ways to stand out from the crowd:
Prior experience with parallel computing - preferably writing CUDA Programs or Libraries that use CUDA
User mode driver development experience
Experience with Linux Systems Software development as well as experience maintaining and extending programming models or higher-level language support for similar environments