NVIDIA
5 days ago
We are looking for an experienced software professional to contribute to design and development of accelerated and distributed implementations of Python APIs for numerical computing. In the last decade, Python has become the de-facto programming language for practitioners in AI, data science and HPC, through popular frameworks such as NumPy, SciPy, TensorFlow and PyTorch. These frameworks provide an efficient high-level programming interface, allowing their users to focus on their application while providing highly optimized implementations. NVIDIA has been at the forefront of providing GPU-accelerated implementations of the fundamental components of these frameworks.
Join our dynamic team to help develop and optimize GPU-accelerated and distributed implementations of Python numerical libraries, supporting Python-based frameworks in various ecosystems. This developer will be a crucial member of a team that is working to unlock the power of distributed GPU computing for domains such as scientific computing, data analytics, deep learning, and professional graphics, running on hardware ranging from supercomputers to the cloud!
What you will be doing:
work closely with product management and internal or external partners, to understand use cases and requirements, and contribute to the technical roadmaps of libraries
architect, prioritize, and develop accelerated and distributed implementations of numerical algorithms
design future-proof Python APIs for accelerated numerical/scientific computing libraries
analyze and improve the performance of developed APIs on various CPU and GPU architectures, especially as a part of customer-critical end-to-end workflows
prototype integrations of developed APIs into targeted frameworks
write effective, maintainable, and well-tested code for production use
contribute to the development of runtime systems that underlay the foundation of multi-GPU computing at NVIDIA
What we need to see:
BS, MS or PhD degree in Computer Science, Applied Math, Electrical Engineering or related field (or equivalent experience)
5+ years of relevant industry experience or equivalent academic experience after BS
Excellent Python, C++ and CUDA programming skills
Strong understanding of fundamental numerical methods, dense and sparse array computing
Deep familiarity with Python numerical computing libraries (e.g. NumPy, SciPy), including accelerated implementations (e.g. CuPy, Jax.NumPy, NumS, cuNumeric)
Experience developing and publishing Python libraries, following standard methodologies for pythonic API design
Strong background with parallel programming and performance analysis
Ways to stand out from the crowd:
Experience using/contributing to Python libraries for data science (e.g. Pandas), machine learning (e.g. scikit-learn) and deep learning (e.g. TensorFlow, PyTorch)
Experience with low-level GPU performance optimization
Experience building, debugging, profiling and optimizing distributed applications, on supercomputers or the cloud
Background with tasking or asynchronous runtimes
Background on compiler optimization techniques, and domain-specific language design
You will also be eligible for equity and benefits. NVIDIA accepts applications on an ongoing basis.