AMD ROCm is an ecosystem of libraries and tools for developing applications that harness the processing power of AMD graphics cards. It is a series of libraries with primitives rocmCUB, rocBLAS, rocSparse, rocThrust. These are also special purpose libraries such as MIOpen which provides basic algorithms from the area of machine learning running on GPU. In addition to libraries, ROCm provides development tools, a C++ and Fortran language compiler.
The main programming tool is HIP. The HIP is a C++ programming interface and runtime layer for writing software to execute on AMD and NVIDIA GPUs. The HIP framework includes many components based on the LLVM infrastructure.
In Gdańsk, we are building a team of 7 people who will work on different aspects of the HIP platform. These include GPU C++ compiler, profiler, OpenMP, FORTRAN compiler. The team will be part of a larger international AMD team working on ROCm components.
Application profiling is one of the essential parts of creating high-performance applications running on the GPU. The more straightforward and more reliable the tools are, the more enjoyable the profiling process is. If you are a C++ engineer with experience in application profiling, knowledge about performance metrics, counters, CPU, and GPU architectures, then you are the person we are looking for. The right candidate will be working on a GPU profiler which is one of the toolchain components of the HIP platform.
- Propose design, defend and implement the GPU Profiler features for HIP framework on Linux operating systems
- Review code changes and design proposals from team members
- Working with on-site and offshore teams to deliver the software solutions on schedule.
- Work with opensource communities delivering patches and reviewing the solutions from the community and upstreaming as required.
- Contribute to the technical content of the compiler documentation/manuals.
- Develop a close working relationship with Compiler QA, Compiler Support and other compiler teams.
Who we're looking for?
- Strong programming skills, mainly C++
- Linux System Programming
- Knowledge about performance counters, both hardware and software.
- GPU Pipeline architecture
- Extensive experience with parallel programming models
- Experience using version control software such as Git
- Good communication in English (both written and spoken)
- Positive attitude and integrity
- Experience in LLVM compiler
- Experience in one of the computing frameworks: OpenCL, CUDA, HIP