Senior System Software Engineer

Company: NVIDIA
Company: NVIDIA
Location: US, CA, Santa Clara
Commitment: Full time
Posted on: 2024-09-08 05:29
We are hiring senior 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 across deep learning, scientific computation, and self-driving cars, video games and virtual reality.CUDA helps define a unified programming model across a range of system configurations and hardware capabilities accomplished through CUDA driver interaction with GPU hardware, kernel mode drivers, and the operating system. This role incorporates strong system software programming skills, a detailed understanding of operating systems and kernel programming, hardware architecture, as well as excellent communication and planning skills. You will work closely with both hardware engineers and other software engineers to craft, develop, debug and deploy many functional aspects of NVIDIA hardware and mobile system-on-chip (SOC) devices!What you'll be doing:You can expect be heavily involved through all aspects of development of our world-class products, ranging up front from design feedback, early modeling, simulation of hardware in pre-silicon environments, all the way through to early silicon bringup and final feature deployment in production software ultimately delivered to end users. You should be eager to learn about, and contribute to, the design of new compute and graphics drivers and new GPU architectures!In this role, you will:Develop Software on Pre-Si environments(Simulation/Emulation)Own and drive CUDA enablement for new Silicon and ArchitectureWork with SW, HW and relevant teams to develop, stabilize and productize CUDA features for new chips and systemsPromote, architect, and implement new features, as well as own contribution to bring up of CUDA on new chipsHelp define forward-looking improvements to the CUDA APIs and programming model, while driving development efforts across multiple teamsWrite effective, maintainable, and well-tested codeDeveloping code for multiple operating systemsWhat we need to see:BS or MS degree in Computer Engineering, Computer Science, Electrical Engineering or equivalent experience5+ years of relevant systems software development experienceStrong C programming skills, knowledge of parallel programmingExcellent knowledge of computer system architecturesExperience with operating system interfaces for threads, process control, and virtual memoryExperience writing and debugging multithreaded programsBackground with working with large codebasesDeep understanding of technology and passionate about what you doGood written communication as well as strong collaborative skills and ability to effectively guide and influence across groupsWays to stand out from the crowd:Understanding of system level architecture, such as interconnects, memory hierarchy, interrupts, and memory-mapped IOKnowledge of memory coherence and consistency modelsBackground with kernel mode developmentExperience with Windows, Linux, or macOS driver developmentSome familiarity with C++, CUDA experienceThe base salary range is 148,000 USD - 276,000 USD. Your base salary will be determined based on your location, experience, and the pay of employees in similar positions.You will also be eligible for equity and benefits. NVIDIA accepts applications on an ongoing basis. NVIDIA is committed to fostering a diverse work environment and proud to be an equal opportunity employer. As we highly value diversity in our current and future employees, we do not discriminate (including in our hiring and promotion practices) on the basis of race, religion, color, national origin, gender, gender expression, sexual orientation, age, marital status, veteran status, disability status or any other characteristic protected by law.
View Original Job Posting