Senior Math Libraries Engineer
at Nvidia
π Santa Clara, United States
$148,000-276,000 per year
SCRAPED
Used Tools & Technologies
Not specified
Required Skills & Competences ?
Software Development @ 4 Python @ 4 Algorithms @ 4 Leadership @ 4 Communication @ 4 Product Management @ 4 Debugging @ 6Details
NVIDIA is now looking for a self-motivated and expert software engineer for its Fast Fourier Transform 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 GPU and these have enabled never before possible AI and scientific research with their extraordinary compute capabilities.
Join our multidisciplinary team and help build and improve HPC GPU and CPU accelerated software libraries integrating latest compiler technologies into our software stack. Libraries like cuFFT, cuFFTMp, MathDx are used by applications everywhere and support NVIDIA's vision and growth.
Responsibilities
As a Sr. Engineer specializing on optimizing for single and multi-processor systems you will be responsible for:
- Developing scalable HPC math library software using modern tools and languages for various numerical methods including but not limited to Fourier Transforms.
- Performance tuning, optimization, and benchmarking of algorithms on various architectures.
- Lead various projects to completion and work with colleagues across teams.
- 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.
- Find opportunities to improve library performance and abstractions that allow to re-architect code for reduced maintenance cost.
- Your projects are by nature complex and will require you to find and explain proposed solutions, exercise leadership, and coordinate with multiple teams to achieve your objectives.
Requirements
- MSc or PhD degree in Computer Science, Applied Math, or related science or engineering field of study or equivalent experience.
- 3+ years experience developing, debugging, and optimizing high-performance parallel numerical applications on modern computing platforms, preferably with GPU acceleration using CUDA.
- Excellent object-oriented software design and C++ programming skills, including functional and performance tests design.
- Deep understanding of fundamental signal processing, linear algebra and computations in science, engineering, or deep learning.
- Proven experience in leading and completing software development projects.
- Excellent collaboration, communication, and documentation habits.
Ways to stand out from the crowd:
- Exposure to: functional languages, C++ template metaprogramming, MLIR or LLVM internals.
- Knowledge of Python language and ecosystem.
- Good knowledge of compute and communication hardware architecture.
- Experience developing distributed memory parallel computing software with MPI or a PGAS library (eg, NVSHMEM).
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!