New: upload your resume and get matched to AI jobs. Free to start →

Senior Performance Software Engineer, Deep Learning Libraries

Salary not listed • China, Shanghai • Full-time

Posted 1mo ago

Job Location

China, Shanghai

Tech Stack

Remote Work Policy

On-site

Employment Type

Full-time

Categories

Machine Learning Engineer

About the job

NVIDIA is seeking a Senior Performance Software Engineer to join their Deep Learning Libraries team in Shanghai, China. This role involves developing highly optimized code to accelerate linear algebra and deep learning operations specifically for NVIDIA GPUs. The team contributes to critical libraries like cuDNN, cuBLAS, and TensorRT, enabling breakthroughs in AI domains such as image classification, speech recognition, and natural language processing. You will be working on the foundational software that powers AI advancements globally, focusing on achieving peak GPU efficiency for current and future hardware generations. The work involves deep engagement with the GPU hardware and low-level software stack.

Responsibilities

  • Write highly tuned compute kernels for core deep learning operations like matrix multiplies, convolutions, and normalizations.
  • Adhere to software engineering best practices, including regression testing and CI/CD.
  • Collaborate with internal teams, including the CUDA compiler team for optimal assembly code generation, deep learning performance teams for layer optimization, and hardware/architecture teams for new feature programming models.

Requirements

  • Master's or PhD degree or equivalent experience in Computer Science, Computer Engineering, Applied Math, or a related field.
  • 2+ years of relevant industry experience.
  • Strong C++ programming and software design skills, including debugging, performance analysis, and test design.
  • Experience with performance-oriented parallel programming (e.g., OpenMP, pthreads), even if not GPU-specific.
  • Solid understanding of computer architecture and some experience with assembly programming.
  • Ability to identify bottlenecks, optimize resource utilization, and improve throughput.