12 Nov
|
Blackfig Tech
|
Bengaluru
12 Nov
Blackfig Tech
Bengaluru
We are looking for a Senior GPU Compiler Backend Engineer to join and strengthen our Compiler Development Team. The candidate will be responsible for designing, developing, enhancing, and maintaining GPU compiler backends targeting custom GPU architectures and modern GPU platforms.
Position SummaryThe role involves working on LLVM-based compiler infrastructure, developing target-specific code generation capabilities, implementing GPU-specific compiler optimizations, and enabling effective mapping of high-level programming languages and intermediate representations to GPU hardware.The ideal candidate should have strong expertise in compiler internals, LLVM backend development, computer architecture, C/C++ programming, and code generation for parallel processing architectures, particularly GPUs.
Key Responsibilities
- Design, develop, and maintain LLVM-based GPU compiler backends for existing and custom GPU architectures.
- Develop target-specific compiler components, including instruction definitions using LLVM TableGen, instruction selection, register allocation, instruction scheduling, and machine code generation.
- Implement and enhance GPU-specific code generation capabilities for SIMT (Single Instruction, Multiple Threads), SIMD, and other parallel execution architectures.
- Develop and optimize compiler support for GPU architectural features such as:
- Processing cores, compute units, and execution units.
- Warp/Wavefront execution and thread management.
- Vector and scalar instruction sets.
- GPU registers, register files, and register allocation.
- Shared/local memory, global memory, and memory hierarchy.
- Synchronization, barriers, and atomic operations.
- Implement target-specific instruction selection, legalization, lowering, and optimization passes.
- Work on GPU-specific compiler optimizations, including instruction combining, loop transformations, control-flow optimization, memory optimization, and register pressure reduction.
- Develop and maintain support for GPU instruction sets, including assembler, disassembler, and machine code emission.
- Work on ABI, calling conventions, data layout, address spaces, and GPU kernel execution interfaces.
- Analyze and optimize generated GPU assembly and machine code for performance, code size, and execution efficiency.
- Debug complex compiler issues across frontend, LLVM IR, machine-level IR, and target-specific code generation stages.
- Develop test suites and automated validation frameworks for compiler correctness, instruction coverage, and performance.
- Perform performance analysis, benchmarking, and optimization of GPU workloads.
- Contribute to upstream LLVM projects and open-source compiler communities.
- Collaborate with GPU architecture, hardware, runtime, driver, and software teams to align compiler development with hardware requirements.
- Coordinate with team members to meet development milestones and deliverables.
- Mentor and guide junior engineers and contribute to technical planning and design reviews.
- Investigate and resolve customer issues related to compiler functionality, code generation, and performance.
Required Qualifications
- - B.Tech/M.Tech degree in Computer Science, Electronics, Electrical Engineering, or a related field.
- 4 years of experience in compiler development, preferably with LLVM/GCC or proprietary compiler toolchains.
- Strong knowledge of LLVM compiler architecture and internal components.
- Hands-on experience in LLVM backend development and target-specific code generation.
- Strong programming skills in C and C++.
- Good understanding of computer architecture, instruction set architectures (ISA), and microprocessor design.
- Understanding of GPU architectures and parallel programming models.
- Knowledge of SIMT/SIMD execution models, thread hierarchies, warps/wavefronts, and GPU execution pipelines.
- Experience in instruction selection, instruction lowering, register allocation, and instruction scheduling.
- Understanding of LLVM IR, SelectionDAG, GlobalISel, Machine IR, and LLVM optimization passes.
- Knowledge of GPU memory architecture, address spaces, memory models, and synchronization mechanisms.
- Experience in debugging compiler issues using GDB/LLDB and other debugging tools.
- Experience in performance analysis and optimization using profiling and benchmarking tools.
- Familiarity with Git and open-source development workflows.
- Good interpersonal, communication, and technical documentation skills.
- Passion for learning and contributing to evolving GPU and compiler technologies.
Preferred skills
- - LLVM Compiler Infrastructure
- LLVM Target Backend Development
- GPU Architecture and SIMT Execution
- Custom GPU ISA and Code Generation
- Instruction Selection and Register Allocation
- GPU Compiler Optimizations
- SPIR-V / OpenCL / CUDA / HIP
- GPU Assembly and Machine Code Generation
📌 Lead Software Engineer- GPU Compiler Backend (Bengaluru)
🏢 Blackfig Tech
📍 Bengaluru