NVIDIA is now looking for a self-motivated and expert software engineer for its linear algebra libraries.
Around the world, leading commercial and academic organizations are revolutionizing AI, scientific and engineering simulations, and data analytics, using data centers powered by GPUs. Applications of these technologies are in healthcare, VR, deep learning, autonomous vehicles and countless others. The demand to solve bigger and higher fidelity problems faster in AI and HPC has led to the development of the NVIDIA DGX systems as well as the world's fastest Supercomputers being powered by NVIDIA GPUs and these have enabled never before possible AI and scientific research with their extraordinary compute capabilities. Did you know the software that makes all this possible incorporate GPU accelerated mathematical libraries we develop at NVIDIA?
Join our dynamic team and help build and improve high performance GPU accelerated software libraries like cuSOLVER, cuSPARSE, and cuBLAS which are used by applications everywhere and support NVIDIA's vision and growth.
What you will be doing:
As a Senior Engineer specializing on linear algebra optimizations for single and multi-GPUsystems you will be responsible for:
Developing scalable HPC math library software for various numerical methods including but not limited to dense and sparse linear algebra,,
Performance tuning, optimization, and benchmarking of linear algebra algorithms like Cholesky or QR decomposition on various 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 library performance and reduce code maintenance overhead through re-architecting.
These issues are by nature complex and will require you to find and explain complex solutions, exercise leadership, and coordinate with multiple teams to achieve your objectives.
What we need to see:
Ways to stand out from the crowd:
PhD or Masters degree in Computer Science, Applied Math, or related science or engineering field of study is preferred (or equivalent experience).
5+ years experience developing, debugging, and optimizing high-performance parallel numerical applications on modern computing platforms, preferably with GPU acceleration using CUDA.
Excellent C++ programming and software design skills, including functional and performance tests design.
Deep understanding of fundamental dense and sparse linear algebra and computations in science, engineering, or deep learning.
Proven experience in leading and executing software development projects.
Excellent collaboration, communication, and documentation habits.
Background with developing BLAS, LAPACK, SCALAPACK dense linear algebra implementations.
Experience developing distributed memory parallel computing software with MPI or a PGAS library (eg, NVSHMEM).
Good knowledge of compute and communication hardware architecture.
Experience working in an agile software development environment.
A scripting language, preferably Python.
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.