System Software Engineer - GPU and SoC Profiling
At NVIDIA, we build groundbreaking products for the following sectors: Gaming, Deep Learning, Automotive, Embedded and High Performance Computing. See your efforts in action as developers use your tools to debug, profile and analyze the performance of their systems/applications using the low-level metrics library that you helped to craft as a member of the Profiler Foundations Developer Tools team. We are seeking a senior software developer to join our effort to advance the state of the art of software performance tuning applications for GPU/SoCs. You will apply your knowledge gained of current and future NVIDIA chip architectures to improve our tools that provide meaningful feedback to application developers.
As a software engineer in the Developer Tools organization, you will be establishing software solutions for a variety of platforms such as PC’s, Embedded Systems, Servers working directly with our GPUs/SoCs at a low level. You should be comfortable working in existing driver code and application code as well as writing new shared libraries and targeted performance tests. Join our team and gain exciting opportunities to work hands-on at every layer of NVIDIA's world-class technology.
What you’ll be doing:
Work with multi-disciplinary teams to design, implement, and verify performance metrics and collection methodologies for NVIDIA GPUs/SoCs.
Invent and improve our GPU/SoC profiling library with new features to allow developers to extract the best performance out of their applications.
Understand and use the NVIDIA GPU/SoC performance monitoring system
Get an opportunity to develop new tools for GPUs/SoCs running on several platforms.
What we need to see:
B.S. EE/CS or equivalent experience with 3+ years of work experience or MS with 2+ years experience, or Ph.D.
Strong programming ability in C, C++.
Knowledge of computer architecture (preferably ARM CPUs/ SoCs or GPUs)
Solid understanding of hardware pipeline concepts, with a willingness to work at a detailed implementation level
Experience working in device drivers, embedded systems, or other low level library development
Ways to stand out from the crowd:
Background including shipping device drivers or system software
Knowledge of GPU API's such as: CUDA, OpenCL, OpenGL, Direct3D, Vulkan
Prior experience authoring developer tools, particularly for GPUs or SoCs
Experience in performance analysis, particularly of embedded system applications
You have worked on computer algorithms and proven ability to choose the best possible algorithms to nail complex problems
Knowledge or experience in compute architecture, operating systems, and compilers.
NVIDIA is widely considered to be one of the technology world’s most desirable employers. We have some of the most motivated people in the world working for us. If you are creative and self driven, we want to hear from you. The GPU, our invention, serves as the visual cortex of modern computers and is at the heart of our products and services. Our work opens up new universes to explore, enables amazing creativity and discovery, and powers what were once science fiction inventions from artificial intelligence to autonomous cars. NVIDIA is looking for phenomenal people in multiple disciplines to help us accelerate the next wave of computing.
NVIDIA is committed to fostering a diverse work environment and proud to be an equal opportunity employer. As we highly value diversity, we do not discriminate (including in our hiring and promotion practices) on the basis of race, religion, colour, national origin, gender, gender expression, sexual orientation, age, marital status, disability status or any other characteristic protected by law.