NVIDIA

Senior Math Libraries Engineer – Python APIs

NVIDIA

April 8, 2021


NVIDIA is now looking for a self-motivated and specialist software engineer for the design and development of Python APIs for math libraries.
In the last decade, Python has become the de-facto programming language for engineers in AI, data science, and HPC through popular frameworks such as TensorFlow and PyTorch. NVIDIA has been at the forefront of providing GPU accelerated Deep Learning frameworks. These frameworks provide an efficient high-level programming interface allowing their users to focus on their application while providing highly optimized implementations. It is no surprise, this trend is continuing today with the recently emerging quantum computing frameworks and therefore we would like to extend our math libraries to provide Python APIs that support frameworks in an expanding set of ecosystems such as Quantum Computing.
In this role, you would be joining our dynamic team to help build and improve APIs for high performance GPU accelerated numerical libraries supporting Python based frameworks in various ecosystems.
What you will be doing:

  • Designing and developing Python APIs for math libraries for linear algebra and domain specific use cases such as quantum computing;

  • Prototype integrations of developed APIs into targeted frameworks;

  • Performance tuning, optimization, and benchmarking of numerical software on various GPU architectures;

  • Providing technical leadership and guidance to library engineers working with you on projects;

  • Working closely with product management and other internal and external stakeholders to understand feature and performance requirements and contribute to the technical roadmaps of libraries;

  • Finding opportunities to improve software performance and user experience.

What we need to see:

  • PhD or MSc degree in Computer Science, Applied Math, or related science or engineering field is preferred. Comparable relevant work experience will also be considered.

  • 8+ years experience developing, debugging, and optimizing high-performance applications on parallel computing platforms.

  • Excellent C++ and Python programming and software design skills, including functional and performance tests design.

  • Experience using one or more of Numpy, SciPy, TensorFlow, PyTorch.

  • Strong understanding of fundamental numerical methods and computations in science, engineering, or deep learning.

  • Proven experience in leading and executing software development projects.

  • Excellent collaboration, communication, and documentation habits.

Ways to stand out from the crowd:

  • Parallel programming experience with GPUs (CUDA or OpenCL), multi-threading, or MPI.

  • Experience with Quantum Computing and Quantum Circuit Simulators.

  • Good knowledge of CPU and/or GPU hardware architecture.

  • Experience working in an agile software development environment.

NVIDIA is 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. If you're creative and autonomous, we want to hear from you!
NVIDIA is committed to fostering a diverse work environment and proud to be an equal opportunity employer. As we highly value diversity in our current and future employees, we do not discriminate (including in our hiring and promotion practices) on the basis of race, religion, color, national origin, gender, gender expression , sexual orientation, age, marital status, veteran status, disability status or any other characteristic protected by law.