Senior System Software Engineer, Scalable ML Profiling Services
Job Description
We are seeking a deeply technical, creative, and hands-on software engineer to pioneer the next generation of scalable, always-available profiling services. This role will enable developers worldwide to harness the full power of NVIDIA GPUs. We are looking for someone who can help us build the best possible experience for ML performance engineers seeking to debug, profile, and optimize their training and serving pipelines using next-generation profiling technologies.
What you’ll be doing:
Develop tools and features for NVIDIA GPUs that enable ML engineers to profile long-running ML workloads on single node and multi-node clusters. Synthesize customer’s performance analysis use cases into the key GPU performance metrics required to advise those insights. Use NVIDIA GPU performance monitoring system and design efficient hardware performance counter arrangements for observation. Optimize GPU profiling tools to minimize overheads, improve observability, and make smart tradeoffs between observability and observer effects. Innovate and improve our GPU profiling library with new features to maximize ML application performance.
What we need to see:
Strong proficiency in C, C++, and Python.
8+ years of experience in system software development
B.S. or M.S. in Electrical Engineering, Computer Science, or related technical field (or equivalent experience).
Experience in building performance analysis developer tools
Strong computer science fundamentals, including algorithms, data structures, optimization, debugging, operating systems, parallel computing and computer architecture
Excellent written and verbal communication skills.
Ways to stand out from the crowd:
Background in working with drivers and system software.
Knowledge of GPU Compute APIs such as CUDA and OpenCL.
Prior experience developing tools for GPUs and Knowledge of compute architecture and operating systems.
Expertise in performance analysis, particularly for ML and GPU applications.
Demonstrate ability to select and implement efficient algorithms for complex problems.
You will also be eligible for equity and benefits. NVIDIA accepts applications on an ongoing basis.