logo

NVIDIA

Software Engineering Intern, GPU Compute Compiler

Department
Engineering
Job Type / Location
Santa Clara
Experience Required
0+ years
Posted On

About the Role

NVIDIA is seeking outstanding software engineering interns to join the GPU Compute Compiler team. Our mission is to build the world's best compiler for parallel computing, enabling software developers to unlock the full potential of NVIDIA's cutting-edge GPU architectures.

As an intern, you will contribute to the design and implementation of compiler features, optimizations, and tools that enhance the performance and programmability of GPU applications. This is an excellent opportunity to work on challenging problems at the intersection of compilers, computer architecture, and high-performance computing.

What you'll be doing:

  • Design and implement features for our GPU compute compiler, including new language features, optimizations, and code generation improvements.
  • Work on various aspects of the compiler stack, from frontend parsing and semantic analysis to intermediate representation (IR) transformations and backend code generation.
  • Collaborate with GPU architecture and driver teams to ensure optimal performance and functionality of compiled code.
  • Develop and maintain compiler infrastructure, testing frameworks, and debugging tools.
  • Analyze and optimize the performance of GPU kernels for a wide range of applications.
  • Contribute to the research and development of novel compilation techniques for parallel architectures.

What we need to see:

  • Currently pursuing a Master's or PhD in Computer Science, Electrical Engineering, or a related field.
  • Strong proficiency in C++ and experience with large-scale software development.
  • Solid understanding of compiler design principles, including parsing, semantic analysis, IR representation, optimization, and code generation.
  • Knowledge of computer architecture, especially GPU architectures and parallel processing concepts.
  • Experience with parallel programming models such as CUDA, OpenCL, Vulkan, or DirectX Compute.
  • Excellent problem-solving and debugging skills.
  • Ability to work effectively in a collaborative team environment.

Ways to stand out from the crowd:

  • Experience with LLVM or other compiler frameworks.
  • Familiarity with domain-specific languages (DSLs) for parallel computing.
  • Contributions to open-source compiler projects (e.g., LLVM, TVM).
  • Experience with performance profiling and optimization of GPU applications.
  • Knowledge of various programming languages like Python.

View Assessment Process

Think you'll be a good fit?