Senior Compiler Engineer - CUDA
Excelero Storage
We are looking for a highly motivated Compiler Software Engineer to join this dynamic and innovative CUDA Compiler team. You will craft 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.
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. In this role, as a leader on our team, you have the opportunity of working on the optimizing CUDA compiler, a core component of our platform for accelerating general purpose computation on the GPU. The CUDA compiler and its supporting tools, including the assembler, linker, loader etc. are fundamental for enabling software to interact effectively with our GPU's. You will be solving challenging problems alongside some of the top valued diverse minds in GPU computing and systems software, doing what you enjoy. If you’re excited by these challenges, we’d love to hear from you!
What you'll be doing:
Build and optimize systems at the intersection of compiler technology, linking, loading and developer tools to deliver efficient and scalable software builds.
Ensure robust support for ELF and DWARF standards, maintaining high-quality symbol and debug information handling.
Collaborate with cross-functional teams to improve the integration of the compiler toolchain.
Optimize the compiler and linker to reduce compilation time and memory consumption.
Apply strong C++ development skills to deliver high-performance, reliable compiler and toolchain features.
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.
What we need to see:
BS/MS/PhD degree in Computer Science, Computer Engineering, or related field (or equivalent experience)
4+ years of experience in developing production compilers or related software
Deep knowledge of compiler front-end technologies and/or linker and loader internals.
Strong C++ programming skills
Strong interpersonal, verbal and written communications skills
Ability to manage competing priorities and achieve objectives under tight deadlines
Experience working with industry standard C++ compilers and development frameworks.
Ways to stand out from the crowd:
Strong track-record in compiler engineering with knowledge of compiler internals (parsing, semantic analysis, type systems) or optimizer/code generation pipelines
Expertise in linker and loader internals, with hands-on experience working with ELF binaries, symbol resolution, and relocation.
Strong systems programming background, ideally in C++
CUDA C++ application development experience with a solid understanding of parallel programming concepts.
Familiarity with deep learning frameworks and GPUs
With competitive salaries and a generous benefits package, we are 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 and, due to unprecedented growth, our exclusive engineering teams are rapidly growing. If you're a creative and autonomous engineer with a real passion for technology, we want to hear from you.
You will also be eligible for equity and benefits. NVIDIA accepts applications on an ongoing basis.