Senior Math Libraries Engineer, CPU and GPU Optimization
NVIDIA
NVIDIA is looking for an expert software engineer to help us deliver CUDA-X libraries across the NVIDIA CPU and GPU ecosystem. For over a decade, NVIDIA's accelerated computing platform has revolutionized HPC and AI with applications ranging from COVID-19 research to autonomous machines. Did you know that our team develops the GPU/CPU-accelerated mathematical libraries that make all of this possible?
The hardware and software accelerated computing ecosystem is constantly evolving, including shifts towards hybrid backends, deep integration with high-level languages and ecosystems (such as Python, Numpy, JAX, MLIR…), and optimization at runtime for maximum flexibility and performance. Our libraries follow CUDA Everywhere approach to let developers use highly-optimized mathematical operations on all hardware available in NVIDIA ecosystem. You will be part of a team designing, developing, and optimizing math libraries for the future. If you are passionate about designing modern HPC libraries and want to build software that will stand the test-of-time as it accelerates countless applications, we might have the dream job you have been waiting for!
What you'll be doing:
+ Design modern, flexible, and easy to use APIs and kernels for math libraries and lead design reviews with all collaborators.
+ Work closely with internal (e.g., Engineering, Product Management) and external partners such as researchers to understand their use cases and requirements.
+ Work with internal and external customers to deliver timely math libraries releases.
+ Become a domain expert by continuously surveying current trends in software systems.
What we need to see:
+ PhD or MSc degree in Computer Science, Applied Math, or a related science or engineering field is preferred (or equivalent experience).
+ 12+ years of experience designing and developing software for high-performance computing and/or AI applications.
+ Advanced C++ skills, including modern design paradigms (e.g., template meta-programming, RAII).
+ Parallel programming experience with CUDA, OpenCL or vector programming on CPU (AVX, NEON or similar).
+ Strong collaboration, communication, and documentation habits.
+ Experience with ARM, RISC-V and/or x86_64 CPU architectures.
Ways to stand out from the crowd:
+ Strong background in numerical methods (e.g., FFT, numerical linear algebra).
+ Programming skills with Python, and modern automation setups for both building software (e.g. cmake) as well as testing it (e.g. CI/CD, sanitizers).
+ Background with cross-compilation, setting up CPU/GPU/accelerator (cross-)compilation toolchains and bringing existing codes to new architectures.
+ Experience with CCCL, OpenMP, OpenACC, multi-threading, MPI, PGAS.
+ Experience with scientific and deep learning libraries and frameworks such as PyTorch, JAX, MKL, MAGMA, PETSc, Kokkos, etc.
With competitive salaries and a generous benefits package, we are widely considered to be one of the technology world’s most desirable employers. We have some of the most forward-thinking and hardworking people in the world working for us and, due to unprecedented growth, our exclusive engineering teams are rapidly growing. If you're a creative and autonomous engineer with a real passion for technology, we want to hear from you!
Confirmar seu email: Enviar Email
Todos os Empregos de NVIDIA