Senior Math Libraries Engineer - Sparse Linear Algebra

NVIDIA NVIDIA · Semiconductors · Santa Clara, CA +1 · Remote

Software engineer to join development efforts in sparse linear algebra kernels for high-performance libraries such as cuSPARSE and cuDSS. This role will involve designing, implementing, and optimizing scalable high-performance numerical sparse linear algebra software for GPU architectures, working with library engineers, QA engineers, and interns on various algorithms. The ideal candidate will have experience developing accelerated computing kernels and be motivated to advance the state-of-the-art in accelerated computing domains.

What you'd actually do

  1. Designing, implementing and optimizing scalable high-performance numerical sparse linear algebra software for existing and future GPU architectures
  2. Working with library engineers, QA engineers, and interns on topics ranging from sparse BLAS operations to advanced direct and iterative sparse solvers
  3. Working closely with product management and other internal and external partners to understand feature and performance requirements and contribute to the technical roadmaps of libraries
  4. Finding and realizing opportunities to improve library quality, performance and maintainability through re-architecting and establishing innovative software development practices

Skills

Required

  • C++
  • parallel programming
  • CUDA
  • MPI
  • OpenMP
  • OpenACC
  • pthreads
  • floating point arithmetic
  • sparse linear algebra primitives
  • matrix-vector products
  • matrix-matrix products
  • software development practices
  • collaboration
  • communication
  • documentation

Nice to have

  • GPU hardware architecture
  • low-level GPU performance optimization
  • multi-frontal factorizations
  • iterative solvers
  • preconditioners
  • algebraic multigrid
  • CI/CD systems
  • JIRA
  • PDE solvers
  • eigenvalue solvers
  • time-domain simulation methods
  • CFD
  • FEA
  • agile organization

What the JD emphasized

  • 5+ years of overall experience in developing, debugging and optimizing high-performance sparse linear algebra software using C++ and parallel programming; ideally using CUDA, MPI, OpenMP, OpenACC, pthreads, or equivalent technologies
  • Strong fundamentals in floating point arithmetic and implementation of sparse linear algebra primitives like matrix-vector and matrix-matrix products
  • Experience in developing , maintaining, and testing sparse linear algebra libraries