Distinguished Software Architect - Deep Learning And Hpc Communications
Tech Stack
Tag name is followed by "@" symbol and proficiency level value.
About proficiency levels:
- 1-2 — basic awareness. Minimal hands-on experience, and a rudimentary understanding of the technology's purpose;
- 3-6 — daily use. Comfortable and regular usage, capable of handling common tasks and challenges related to the technology;
- 7-9 — you are an expert, you can teach others, you know all the pitfalls and tricks;
- 10 — exceptional knowledge, comprehensive understanding, and adeptness in all aspects of the technology, including advanced problem-solving. Think twice before claiming or demanding such level.
AI
Algorithms @ 7
CUDA @ 6
Communication @ 6
Deep Learning
GPU @ 6
HPC @ 6
InfiniBand @ 7
MPI @ 6
Machine Learning
NCCL @ 6
NVLink
Networking @ 7
Parallel Programming @ 6
Performance Analysis @ 7
PyTorch @ 7
Software Development @ 6
System Architecture @ 6
TensorFlow @ 7
- 1-2 — basic awareness. Minimal hands-on experience, and a rudimentary understanding of the technology's purpose;
- 3-6 — daily use. Comfortable and regular usage, capable of handling common tasks and challenges related to the technology;
- 7-9 — you are an expert, you can teach others, you know all the pitfalls and tricks;
- 10 — exceptional knowledge, comprehensive understanding, and adeptness in all aspects of the technology, including advanced problem-solving. Think twice before claiming or demanding such level.
Details
NVIDIA is leading the way in groundbreaking developments in Artificial Intelligence, High Performance Computing and Visualization. The GPU, our invention, serves as the visual cortex of modern computers and is at the heart of our products and services.
We are the GPU Communications Libraries and Networking team at NVIDIA. We deliver communication libraries like NCCL, NVSHMEM, UCX for Deep Learning and HPC. We are looking for a Distinguished Software Architect to help co-design our next generation data center platforms.
DL and HPC applications have a huge compute demand already and run on scales which go up to tens of thousands of GPUs. The GPUs are connected with high-speed interconnects (eg. NVLink, PCIe) within a node and with high-speed networking (eg. Infiniband, Ethernet) across the nodes.
Communication performance between the GPUs has a direct impact on the end-to-end application performance; and the stakes are even higher at huge scales.
Responsibilities
- Research new communication technologies (e.g. expand the GPUDirect technology portfolio) and design new features for our communication libraries
- Propose innovative solutions in HW and SW for our next-gen platforms; co-design these solutions with the GPU, Networking, and SW architects and ensure seamless integration with the software stacks
- Inspire changes based on quantitative data coming from proof-of-concepts or detailed technical analysis/modeling
- Drive the adoption of new communication technologies across application verticals
- Keep up with the latest DL research and collaborate with diverse teams (internal and external), including DL researchers, and customers
Requirements
- PhD in Computer Science, Computer Engineering or related field or strong equivalent experience; 15+ years of relevant experience in academia or the industry
- Expert in: HPC, parallel programming models (MPI, SHMEM), at least one communication runtime (MPI, NCCL, NVSHMEM, OpenSHMEM, UCX, UCC), computer and system architecture, GPU architecture and CUDA
- Deep understanding of various aspects of high performance networking from prior work experience: network technologies (Infiniband, Ethernet), network design, network topologies, network debug and performance analysis
- Strong in at least a few of these areas: ML/DL fundamentals and how they tie to communications, parallel algorithms, fault tolerance and resiliency, competitive assessments, performance analysis and optimizations for parallel applications on large clusters, developing applications using DL Frameworks (PyTorch, TensorFlow)
- Programming fluency with C or C++ for systems software development
- Flexibility to work and communicate effectively across different HW/SW teams and timezones
Benefits
You will also be eligible for equity and benefits.