Senior System Software Engineer, Scalable ML Profiling Services
at Nvidia
📍 Santa Clara, United States
$180,000-339,200 per year
SCRAPED
Used Tools & Technologies
Not specified
Required Skills & Competences ?
Software Development @ 7 Python @ 7 Algorithms @ 7 Data Structures @ 7 Communication @ 4 Performance Monitoring @ 4 Debugging @ 7 API @ 4Details
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.
Responsibilities
- 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.
Requirements
- 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.