# rocm-developer-tools/hip

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rocm-developer-tools-hip).**

4,362 stars · 587 forks · C++ · MIT

## Links

- GitHub: https://github.com/ROCm-Developer-Tools/HIP
- Homepage: https://rocmdocs.amd.com/projects/HIP/
- awesome-repositories: https://awesome-repositories.com/repository/rocm-developer-tools-hip.md

## Description

HIP is a C++ GPU kernel language and cross-platform runtime designed for writing portable high-performance compute applications. It provides a programming interface that allows a single source codebase to execute on both AMD and NVIDIA GPU architectures.

The project functions as a compatibility layer that enables the conversion and migration of existing CUDA source code to run on AMD hardware. This is achieved through a syntax mapping that mirrors CUDA and a source-to-source translation process during compilation.

The toolkit covers the broader surface of cross-platform GPGPU development, including heterogeneous compute optimization and the creation of portable kernels. It utilizes a runtime abstraction to map unified API calls to vendor-specific driver libraries for memory and kernel management.

## Tags

### Programming Languages & Runtimes

- [Portable Kernel Languages](https://awesome-repositories.com/f/programming-languages-runtimes/gpu-kernel-programming/portable-kernel-languages.md) — Provides a C++ GPU kernel language for writing parallel compute kernels that target multiple hardware backends.
- [Syntax Mapping Layers](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-infrastructure/jit-kernel-compilers/cuda-kernel-compilers/syntax-mapping-layers.md) — Implements a language grammar that mirrors NVIDIA CUDA to simplify the porting of GPU kernels.
- [GPU Programming Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/gpu-programming-runtimes.md) — Supports writing single-source C++ code that runs on both AMD and NVIDIA GPUs.
- [Source-to-Source Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/source-to-source-compilers.md) — Translates a shared C++ dialect into platform-specific GPU code during the compilation phase.
- [Build-Time Dialect Mappings](https://awesome-repositories.com/f/programming-languages-runtimes/build-time-dialect-mappings.md) — Uses preprocessor macros and conditional headers to resolve hardware-specific types and function signatures at build time.

### Development Tools & Productivity

- [CUDA Source Converters](https://awesome-repositories.com/f/development-tools-productivity/ai-coding-assistants/cuda-code-assistants/cuda-source-converters.md) — Converts existing NVIDIA CUDA source code into a compatible format to run on AMD hardware. ([source](https://github.com/rocm-developer-tools/hip#readme))

### Hardware & IoT

- [Cross-Vendor Compute Engines](https://awesome-repositories.com/f/hardware-iot/integration-performance/gpu-performance/gpu-computations/cross-vendor-compute-engines.md) — Functions as a cross-platform runtime allowing compute applications to run on different GPU manufacturers.

### Operating Systems & Systems Programming

- [GPU Kernel Development](https://awesome-repositories.com/f/operating-systems-systems-programming/gpu-kernel-development.md) — Enables the development of single-source C++ kernels that execute on multiple GPU architectures. ([source](https://github.com/rocm-developer-tools/hip#readme))

### Software Engineering & Architecture

- [CUDA and HIP Code Generators](https://awesome-repositories.com/f/software-engineering-architecture/openapi-specification-parsers/go-code-generators/cuda-and-hip-code-generators.md) — Facilitates the migration of existing CUDA source code to run on AMD hardware via the HIP interface.
- [CUDA Compatibility Layers](https://awesome-repositories.com/f/software-engineering-architecture/openapi-specification-parsers/go-code-generators/cuda-and-hip-code-generators/cuda-compatibility-layers.md) — Provides a programming interface that allows NVIDIA CUDA source code to be converted and run on AMD hardware.
- [Runtime Abstraction Layers](https://awesome-repositories.com/f/software-engineering-architecture/runtime-abstraction-layers.md) — Maps unified API calls to vendor-specific driver libraries for memory and kernel management.
- [Cross-Platform Development](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-development.md) — Provides a framework for developing high-performance compute kernels that remain portable across GPU vendors.

### Artificial Intelligence & ML

- [Kernel Dispatchers](https://awesome-repositories.com/f/artificial-intelligence-ml/gpu-kernel-implementations/kernel-dispatchers.md) — Provides a common interface to schedule GPU workloads across different hardware vendors.

### Scientific & Mathematical Computing

- [Heterogeneous Computing Libraries](https://awesome-repositories.com/f/scientific-mathematical-computing/heterogeneous-computing-libraries.md) — Creates efficient GPU-accelerated applications that can be deployed across diverse hardware environments.

### Part of an Awesome List

- [Parallel Programming Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/parallel-programming-frameworks.md) — C++ runtime API and kernel language for GPU acceleration.
