GPU Compute Compiler Engineer - New College Grad 2024
On-site
Job Description
We are looking for a highly motivated Compiler Software Engineer to join this dynamic and innovative CUDA Compiler team. You will contribute to compiler capabilities that enable development and deployment of high performance parallel applications on NVIDIA's next generation GPU's. Our team delivers language extensions and performance improvements to better realize the potential of NVIDIA hardware for a growing range of computational workloads, ranging from deep learning, scientific computation, and self-driving cars to video games and virtual reality.
In this role, you have the opportunity of working on the CUDA C++ compiler, a core component of our platform for accelerating general purpose computation on the GPU. The CUDA programming language defines a unified programming model across a range of system configurations and hardware capabilities. The compiler is responsible for translating parallel programs written in the CUDA/C++ programming language into microcode that is optimized for fast execution on NVIDIA's family of industry-leading GPU architectures. You will be solving challenging problems working alongside some of the top valued diverse minds in GPU computing and systems software, doing what you enjoy. If this sounds like a fun challenge, and you are interested, please let us know.
Responsibilities
- Design and implement enhancements to the CUDA C++ compiler driver and front-end, ensuring tight integration with industry-leading third-party compiler software.
- Contribute to the programming language specification and its evolution factoring in support for new GPU hardware capabilities.
- Collaborate closely with teams developing other components of the compiler in ensuring language conformance, robustness, high-quality code generation and suitability for developing programs used in deep learning and safety-critical execution environments.
- Provide engineering support for the compiler and deliver targeted changes for production customer releases.
- Establish strong customer/partner relationships and trust through excellent execution and high-quality software development.
Job Requirements
- Pursuing a MS or PhD degree in Computer Science, Computer Engineering, or related field (or equivalent experience)
- Deep understanding of and passion for compiler technology, esp. programming language design, implementation and/or formalisms.
- Strong knowledge of C++ programming language, including the modern standards e.g. C++14, C++17, C++20.
- Excellent hands-on programming and analytical skills
- Experience writing and debugging multithreaded, parallel programs.
- Knowledge of computer architecture (any parallel system e.g. GPU would be a plus).
- Strong interpersonal, verbal and written communications skills