Software Engineering Intern - Math Libraries

Posted:
8/20/2024, 12:53:28 AM

Location(s):
Bavaria, Germany ⋅ Munich, Bavaria, Germany ⋅ Masovian Voivodeship, Poland

Experience Level(s):
Internship

Field(s):
AI & Machine Learning ⋅ Software Engineering

NVIDIA is looking for a software engineering intern for its GPU-accelerated Deep Learning (DL) and high-performance computing (HPC) mathematical libraries team. Researchers and companies around the world are using GPUs to redefine areas such as artificial intelligence, deep learning, engineering, and scientific computing. Did you know that the GPU accelerated libraries developed by NVIDIA are used in various industries such as: healthcare, quantum chemistry, VR, autonomous vehicles, social media, and e-commerce? NVIDIA also recently announced Grace CPU and Grace Hopper Superchips that will further accelerate computing. If the idea of contributing to these excite you, come join our team and help us build accelerated software libraries which are used by the entire world. 

 

In this role you will be part of our team responsible for the development of libraries that provide top performance and functionality. Your contributions may include extending the capabilities of existing libraries as well as building new libraries that will be used in various AI and HPC applications. Interacting and collaborating with engineers within your team as well as internal partners is essential to this role. This internship involves working with senior software engineers who will provide mentorship and guidance. Projects will involve implementing new numerical algorithms, defining APIs, analyzing performance, finding appropriate solutions for difficult numerical corner cases, and other general software engineering work. 

What you’ll be doing: 

  • Collaborating with team members and other teams to understand software use cases and requirements. 

  • Research, analyze, and document state-of-the art algorithms 

  • Develop algorithms for high-dimensional tensor operations or high-performance computing (HPC) 

  • Analyze and improve performance of existing implementations 

What we need to see: 

  • Pursuing a PhD in Computer Science, Artificial Intelligence, Applied Math, Physics or related field 

  • Algorithms, mathematical fundamentals 

  • Programming skills (C/C++, Python), debugging, performance analysis, high-performance computing, parallel programming, and test design skills

  • Knowledge of distributed programming (multi-GPU or multi-node)
  • Ability to work independently and manage your own development effort 

  • Good communication and documentation habits 

  • Technical writing skills 

Ways to stand out from the crowd: 

  • Knowledge of CPU or GPU hardware architecture 

  • GPU programming experience (CUDA or OpenCL) 

  • Knowledge of tensor contractions or tensor networks

  • Knowledge about dense linear algebra

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.