PythonC++CFortranLLMLarge Language ModelsCommunication
About this role
Role Overview
Working directly with key application developers to understand the current and future problems they are solving
Build and optimize core parallel algorithms and data structures using GPUs
Train and inference optimization for large language models (LLM)
Contribute to frameworks and open-source projects in the LLM ecosystem
Collaborate with architecture, research, libraries, tools, and system software teams at NVIDIA
Investigate impact on application performance and developer efficiency
Engage in deep optimization of high-performance operators
Support customers or coordinate within computation libraries and open-source projects
Spearhead advancements in distributed training and inference by refining communication libraries
Study interconnect topologies and network protocols to design efficient data transfer strategies
Requirements
A degree or equivalent experience from a university in an engineering or computer science related field
A masters or doctoral degree is preferred
2+ years of work experience
Solid understanding of C, C++, Python, or Fortran
Strong knowledge of software development, programming techniques, and algorithms
Strong mathematical fundamentals, including linear algebra and numerical methods
Background in parallel programming and accelerated computing, with comprehensive knowledge of parallel architectures and methods for performance analysis and tuning
Experience in GPU programming is desirable
Experience in full-stack performance analysis and optimization within at least one of these areas: large language models and high-performance computing
Having expertise ranging from operator-level through framework-level to algorithm-level optimization is strongly preferred
Experience in distributed communication optimization is highly advantageous
Familiarity with remote direct memory access, GPU interconnects, collective communication algorithms, and associated open-source libraries used in large-scale model training and inference
Solid software engineering fundamentals and system architecture thinking, with the ability to build modules and drive engineering practices in complex systems
Strong communication and cooperation abilities, with the capability to work efficiently alongside architecture, research, and software product teams to promote optimization from concept to production.