GPU Software Developer
Role details
Job location
Tech stack
Job description
The GPU libraries team, within the ROCm software ecosystem, develops software for the latest innovations that power the ultimate computing experience provided by our AMD Instinct GPUs. The highly tuned libraries are developed with C++, Python, HIP, and low-level GPU assembly programming involving large teams. To grow these libraries with rich features and support customers at scale, development must follow great software design principles while striving for simplicity, ease-of-maintenance, and extensibility.
The successful candidate for this role will be an integral part of our GPU Matrix & Tensor operations team through modular and maintainable code development, code refactoring, debug, and performance optimizations. Relevant open-source projects include:
https://github.com/ROCm/rocm-libraries/tree/develop/projects/hipblaslt
https://github.com/ROCm/rocm-libraries/tree/develop/projects/rocblas, * Planning, designing, and refactoring existing codebases to improve maintainability and extensibility across multiple target hardware configurations
- Developing new software designs to integrate a variety of code optimization patterns in a clear modular fashion in code generators
- Identify and help resolve functional and performance issues by working closely with libraries development teams and other internal engineering teams
- Participate in enhancing code integration process to verify conformance of new code submissions to the improved practices and designs
- Apply a data minded approach to target optimization efforts
- Stay informed of software and hardware trends and innovations, especially pertaining to algorithms and architecture
- Design and develop new groundbreaking AMD technologies, AMD may use Artificial Intelligence to help screen, assess or select applicants for this position. AMD's "Responsible AI Policy" is available here.
Requirements
- Possess excellent software skills in Python and C++
- Have low-level software optimization experience
- Have strong desire and ability to solve problems quickly
- Be able to schedule, and work on tasks independently
- Have excellent written and verbal communication skills
- Be flexible and accept new challenges, * 3+ years software development experience
- Proficient in Python & C/C++ programming employing best software design practices
- Experience working with large-scale software development projects and understanding of PC architecture
- Proven experience in code optimizations for any architectures such as CPU/GPU/FPGA
- GPU software development or validation involvingHIP, CUDA, or OpenCL
- Experience in SIMD vectorization is a plus
- Experience in system-level performance evaluations and debugging
- Ability to closely interact with architects, developers, and tuning teams to maintain and release production software
- Great communication and teamwork skills, * Bachelor's or higherdegree in Computer Science, Computer Engineering, Electrical Engineering, or equivalent