Software Development Engineer - GPU Kernel Development
AMD - Advanced Micro Devices
Cambridge, United Kingdom
THE ROLE:
As a core member of the team, you will play a pivotal role in optimizing and developing deep learning frameworks for AMD GPUs. Your experience will be critical in enhancing GPU kernels, deep learning models, and training/inference performance across multi-GPU and multi-node systems. You will engage with both internal GPU library teams and open-source maintainers to ensure seamless integration of optimizations, utilizing cutting-edge compiler technologies and advanced engineering principles to drive continuous improvement.
THE PERSON:
Skilled engineer with strong technical and analytical expertise in C++ development within Linux environments. The ideal candidate will thrive in both collaborative team settings and independent work, with the ability to define goals, manage development efforts, and deliver high-quality solutions. Strong problem-solving skills, a proactive approach, and a keen understanding of software engineering best practices are essential.
KEY RESPONSIBILITIES:
- Optimize Deep Learning Frameworks: Enhance and optimize frameworks like TensorFlow and PyTorch for AMD GPUs in open-source repositories.
- Develop GPU Kernels: Create and optimize GPU kernels to maximize performance for specific AI operations.
- Develop & Optimize Models: Design and optimize deep learning models specifically for AMD GPU performance.
- Collaborate with GPU Library Teams: Work closely with internal teams to analyze and improve training and inference performance on AMD GPUs.
- Collaborate with Open-Source Maintainers: Engage with framework maintainers to ensure code changes are aligned with requirements and integrated upstream.
- Work in Distributed Computing Environments: Optimize deep learning performance on both scale-up (multi-GPU) and scale-out (multi-node) systems.
- Utilize Cutting-Edge Compiler Tech: Leverage advanced compiler technologies to improve deep learning performance.
- Optimize Deep Learning Pipeline: Enhance the full pipeline, including integrating graph compilers.
- Software Engineering Best Practices: Apply sound engineering principles to ensure robust, maintainable solutions.
PREFERRED EXPERIENCE:
- GPU Kernel Development & Optimization: Experienced in designing and optimizing GPU kernels for deep learning on AMD GPUs using HIP, CUDA, and assembly (ASM). Strong knowledge of AMD architectures (GCN, RDNA) and low-level programming to maximize performance for AI operations, leveraging tools like Compute Kernel (CK), CUTLASS, and Triton for multi-GPU and multi-platform performance.
- Deep Learning Integration: Experienced in integrating optimized GPU performance into machine learning frameworks (e.g., TensorFlow, PyTorch) to accelerate model training and inference, with a focus on scaling and throughput.
- Software Engineering: Skilled in Python and C++, with experience in debugging, performance tuning, and test design to ensure high-quality, maintainable software solutions.
- High-Performance Computing: Solid experienced in running large-scale workloads on heterogeneous compute clusters, optimizing for efficiency and scalability.
- Compiler Optimization: Foundational understanding of compiler theory and tools like LLVM and ROCm for kernel and system performance optimization.
ACADEMIC CREDENTIALS:
- Bachelor’s and/or Master’s Degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field.
- 3+ years of professional experience in technical software development, with a focus on GPU optimization, performance engineering, and framework development.
Apply Now
Don't forget to mention EuroTechJobs when applying.