AMD is looking to develop and optimize GPU kernels with the AMD Radeon Open Ecosystem (ROCm) to accelerate next-generation computing experiences, particularly in AI and deep learning operations.
Requirements
- Hands-on experience with C++, with relevant applied experience using CUDA, HIP, OpenMP, MPI, or OpenCL for accelerated computing on CPUs and GPUs.
- Familiarity with other programming languages like Python and AI/ML Frameworks.
- Experience contributing to technical and high-performance software systems supported by continuous improvement, regression and performance management systems, and software deployment and orchestration management (Jenkins/Docker/Kubernetes/numerical methods and analysis).
- Experience with open-source software development including collaboration with community maintainers and submitting contributions, and various lifecycle methodologies such as Agile, Scrum, Kanban.
- Knowledge of professional software engineering practices and best practices for the full software development life cycle including requirements elicitation and analysis, scoping/estimation, coding standards, code reviews, version control, build processes, testing, and continuous integration.
- Strong technical and analytical expertise in C++ development within Linux environments.
- Solid understanding of GPU architectures and compiler technologies.
Responsibilities
- Design and implement highly optimized primitives enabling flexible and efficient composition of kernels for deep learning operations such as GEMM, convolution, Attention, and Mixture of Experts.
- Collaboration with internal GPU library teams and open-source maintainers will be key to ensuring these components integrate seamlessly and deliver high performance.
- Works collaboratively across library teams to design, implement, validate, and deliver key software library capabilities, ensuring successful integration with GPU kernels into broader systems.
- Provides significant technical inputs to the software roadmap.
- Provides input to architecture, design, and documentation efforts as they arise across teams.
- Works closely with senior engineering staff to guide technical execution within library teams on broad and complex technical challenges.
- Collaborates with principal members of staff to develop the best technical designs and approaches that holistically consider constraints, performance, and roadmap commitments.
Other
- 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.
- Engages in mentorships with senior and principal staff and champion internal best-practice as part of the regular software development lifecycle in an agile environment.
- Bachelor’s or Master’s degree in Computer Science, Computer Engineering, Electrical Engineering, or equivalent
- Advanced degrees, such as M.Sc. or M.Eng. are preferred