diff --git a/docs/about/license.md b/docs/about/license.md index 111744237..e97dc3db1 100644 --- a/docs/about/license.md +++ b/docs/about/license.md @@ -17,14 +17,11 @@ following section. ## ROCm component licenses -ROCm™ is released by Advanced Micro Devices, Inc. and is licensed per component separately. +ROCm is released by Advanced Micro Devices, Inc. and is licensed per component separately. The following table is a list of ROCm components with links to their respective license terms. These components may include third party components subject to additional licenses. Please review individual repositories for more information. -The table shows ROCm components, the name of license, and link to the license terms. -The table is ordered to follow the ROCm manifest file. - | Component | License | |:---------------------|:-------------------------| diff --git a/docs/index.md b/docs/index.md index 288cb3555..70cc0b2ef 100644 --- a/docs/index.md +++ b/docs/index.md @@ -10,13 +10,15 @@ Welcome to the ROCm docs home page! If you're new to ROCm, you can review the following resources to learn more about our products and what we support: -* [What is ROCm?](./what-is-rocm.md) +* [What is ROCm?](./what-is-rocm.rst) * [Release notes](./about/release-notes.md) You can install ROCm on our Radeon™, Radeon™ PRO, and Instinct™ GPUs. If you're using Radeon GPUs, we recommend reading the {doc}`Radeon-specific ROCm documentation`. +For hands-on applications, refer to our [ROCm blogs](https://rocm.blogs.amd.com/) site. + Our documentation is organized into the following categories: ::::{grid} 1 2 2 2 diff --git a/docs/reference/api-libraries.md b/docs/reference/api-libraries.md index f55798be9..4d3342262 100644 --- a/docs/reference/api-libraries.md +++ b/docs/reference/api-libraries.md @@ -21,6 +21,7 @@ * {doc}`MIGraphX ` * {doc}`MIOpen ` * {doc}`MIVisionX ` +* [ROCm Performance Primitives (RPP)](https://rocm.docs.amd.com/projects/rpp/en/latest/) ::: :::{grid-item-card} @@ -60,14 +61,17 @@ :img-alt: Math APIs :padding: 2 +* [half](https://github.com/ROCm/half) * {doc}`hipBLAS ` / {doc}`rocBLAS ` * {doc}`hipBLASLt ` * {doc}`hipFFT ` / {doc}`rocFFT ` +* [hipfort](https://rocm.docs.amd.com/projects/hipfort/en/latest/) * {doc}`hipSOLVER ` / {doc}`rocSOLVER ` * {doc}`hipSPARSE ` / {doc}`rocSPARSE ` * {doc}`hipSPARSELt ` * {doc}`rocALUTION ` * {doc}`rocWMMA ` +* [Tensile](https://github.com/ROCm/Tensile) ::: :::{grid-item-card} diff --git a/docs/reference/rocm-tools.md b/docs/reference/rocm-tools.md index 9b8443ceb..e6a9b0164 100644 --- a/docs/reference/rocm-tools.md +++ b/docs/reference/rocm-tools.md @@ -19,8 +19,8 @@ * {doc}`ROCdbgapi ` * [ROCmCC](./rocmcc.md) +* [ROCm Debug Agent](https://github.com/ROCm/rocr_debug_agent) * {doc}`ROCm debugger (ROCgdb) ` -* {doc}`ROCTracer ` ::: :::{grid-item-card} @@ -29,6 +29,7 @@ :img-alt: Performance tools :padding: 2 +* [RocBandwidthTest](https://github.com/ROCm/rocm_bandwidth_test) * {doc}`ROCProfiler ` * {doc}`ROCTracer ` ::: @@ -41,6 +42,7 @@ * {doc}`AMD SMI ` * {doc}`ROCm Data Center Tool ` +* [ROCm Info](https://github.com/ROCm/rocminfo) * {doc}`ROCm SMI ` * {doc}`ROCm Validation Suite ` * {doc}`TransferBench ` diff --git a/docs/sphinx/_toc.yml.in b/docs/sphinx/_toc.yml.in index 7fee44fb3..e2e56dd76 100644 --- a/docs/sphinx/_toc.yml.in +++ b/docs/sphinx/_toc.yml.in @@ -6,7 +6,7 @@ defaults: root: index subtrees: - entries: - - file: what-is-rocm.md + - file: what-is-rocm.rst - file: about/release-notes.md title: Release notes subtrees: diff --git a/docs/what-is-rocm.md b/docs/what-is-rocm.md deleted file mode 100644 index 095c32b4b..000000000 --- a/docs/what-is-rocm.md +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - -# What is ROCm? - -ROCm is an open-source stack, composed primarily of open-source software, designed for -graphics processing unit (GPU) computation. ROCm consists of a collection of drivers, development -tools, and APIs that enable GPU programming from low-level kernel to end-user applications. - -With ROCm, you can customize your GPU software to meet your specific needs. You can develop, -collaborate, test, and deploy your applications in a free, open source, integrated, and secure software -ecosystem. ROCm is particularly well-suited to GPU-accelerated high-performance computing (HPC), -artificial intelligence (AI), scientific computing, and computer aided design (CAD). - -ROCm is powered by AMD’s -[Heterogeneous-computing Interface for Portability (HIP)](https://rocm.docs.amd.com/projects/HIP/en/latest/index.html), -an open-source software C++ GPU programming environment and its corresponding runtime. HIP -allows ROCm developers to create portable applications on different platforms by deploying code on a -range of platforms, from dedicated gaming GPUs to exascale HPC clusters. - -ROCm supports programming models, such as OpenMP and OpenCL, and includes all necessary open -source software compilers, debuggers, and libraries. ROCm is fully integrated into machine learning -(ML) frameworks, such as PyTorch and TensorFlow. - -```{tip} - If you're using Radeon GPUs, refer to the -{doc}`Radeon-specific ROCm documentation` -``` - -## ROCm projects - -ROCm consists of the following drivers, development tools, and APIs. - -| Project | Description | -| :---------------- | :------------ | -| [AMD Compute Language Runtimes (CLR)](https://github.com/ROCm/clr) | Contains source code for AMD's compute languages runtimes: {doc}`HIP ` and OpenCL | -| {doc}`AMD SMI ` | A C library for Linux that provides a user space interface for applications to monitor and control AMD devices | -| [AOMP](https://github.com/ROCm/aomp/) | A scripted build of [LLVM](https://github.com/ROCm/llvm-project) and supporting software | -| [Asynchronous Task and Memory Interface (ATMI)](https://github.com/ROCm/atmi/) | A runtime framework for efficient task management in heterogeneous CPU-GPU systems | -| {doc}`Composable Kernel ` | A library that aims to provide a programming model for writing performance critical kernels for machine learning workloads across multiple architectures | -| [Flang](https://github.com/ROCm/flang/) | An out-of-tree Fortran compiler targeting LLVM | -| [Half-precision floating point library (half)](https://github.com/ROCm/half/) | A C++ header-only library that provides an IEEE 754 conformant, 16-bit half-precision floating-point type along with corresponding arithmetic operators, type conversions, and common mathematical functions | -| {doc}`HIP ` | AMD’s GPU programming language extension and the GPU runtime | -| {doc}`hipBLAS ` | A BLAS-marshaling library that supports [rocBLAS](https://rocm.docs.amd.com/projects/rocBLAS/en/latest/) and cuBLAS backends | -| {doc}`hipBLASLt ` | A library that provides general matrix-matrix operations with a flexible API and extends functionalities beyond traditional BLAS library | -| [hipCC](https://github.com/ROCm/HIPCC) | A compiler driver utility that calls Clang or NVCC and passes the appropriate include and library options for the target compiler and HIP infrastructure | -| {doc}`hipCUB ` | A thin header-only wrapper library on top of [rocPRIM](https://rocm.docs.amd.com/projects/rocPRIM/en/latest/) or CUB that allows project porting using the CUB library to the HIP layer | -| {doc}`hipFFT ` | A fast Fourier transforms (FFT)-marshalling library that supports rocFFT or cuFFT backends | -| {doc}`hipfort ` | A Fortran interface library for accessing GPU Kernels | -| {doc}`HIPIFY ` | A set of tools for translating CUDA source code into portable HIP C++ | -| {doc}`hipRAND ` | A wrapper library to easily port CUDA applications that use the cuRAND library into the HIP layer | -| {doc}`hipSOLVER ` | An LAPACK-marshalling library that supports [rocSOLVER](https://rocm.docs.amd.com/projects/rocSOLVER/en/latest/) and cuSOLVER backends | -| {doc}`hipSPARSE ` | A SPARSE-marshalling library that supports [rocSPARSE](https://rocm.docs.amd.com/projects/rocSPARSE/en/latest/) and cuSPARSE backends | -| {doc}`hipSPARSELt ` | A SPARSE-marshalling library with multiple supported backends | -| {doc}`hipTensor ` | AMD's C++ library for accelerating tensor primitives based on the composable kernel library | -| [LLVM](https://github.com/ROCm/llvm-project) | A toolkit for the construction of highly optimized compilers, optimizers, and run-time environments | -| {doc}`MIGraphX ` | A graph inference engine that accelerates machine learning model inference | -| {doc}`MIOpen ` | An open source deep-learning library | -| [MIOpenGEMM](https://github.com/ROCm/MIOpenGEMM) | An OpenCL general matrix multiplication (GEMM) API and kernel generator | -| {doc}`MIVisionX ` | A set of comprehensive computer vision and machine learning libraries, utilities, and applications | -| [Radeon Compute Profiler (RCP)](https://github.com/GPUOpen-Tools/radeon_compute_profiler/) | A performance analysis tool that gathers data from the API run-time and GPU for OpenCL and ROCm/HSA applications | -| {doc}`RCCL ` | A standalone library that provides multi-GPU and multi-node collective communication primitives | -| {doc}`rocAL ` | An augmentation library designed to decode and process images and videos | -| {doc}`rocALUTION ` | A sparse linear algebra library for exploring fine-grained parallelism on ROCm runtime and toolchains | -| [RocBandwidthTest](https://github.com/ROCm/rocm_bandwidth_test/) | Captures the performance characteristics of buffer copying and kernel read/write operations | -| {doc}`rocBLAS ` | A BLAS implementation (in the HIP programming language) on the ROCm runtime and toolchains | -| {doc}`rocDecode ` | A high performance video decode SDK for AMD GPUs | -| {doc}`rocFFT ` | A software library for computing fast Fourier transforms (FFTs) written in HIP | -| [ROCK-Kernel-Driver](https://github.com/ROCm/ROCK-Kernel-Driver/) | An AMDGPU Driver with KFD that is used by ROCm | -| [ROCmCC](./reference/rocmcc.md) | A Clang/LLVM-based compiler | -| [ROCm cmake](https://github.com/ROCm/rocm-cmake) | A collection of CMake modules for common build and development tasks | -| {doc}`ROCm Data Center Tool ` | Simplifies administration and addresses key infrastructure challenges in AMD GPUs in cluster and data-center environments | -| [ROCm Debug Agent Library (ROCdebug-agent)](https://github.com/ROCm/rocr_debug_agent/) | A library that can print the state of all AMD GPU wavefronts that caused a queue error by sending a SIGQUIT signal to the process while the program is running | -| {doc}`ROCm debugger (ROCgdb) ` | A source-level debugger for Linux, based on the GNU Debugger (GDB) | -| {doc}`ROCdbgapi ` | The ROCm debugger API library | -| [rocminfo](https://github.com/ROCm/rocminfo/) | Reports system information | -| {doc}`ROCm Performance Primitives Library ` | A comprehensive high-performance computer vision library for AMD processors with HIP/OpenCL/CPU back-ends | -| {doc}`ROCm SMI ` | A C library for Linux that provides a user space interface for applications to monitor and control GPU applications | -| {doc}`ROCm Validation Suite ` | A tool for detecting and troubleshooting common problems affecting AMD GPUs running in a high-performance computing environment | -| {doc}`rocPRIM ` | A header-only library for HIP parallel primitives | -| {doc}`ROCProfiler ` | A profiling tool for HIP applications | -| {doc}`rocRAND ` | Provides functions that generate pseudorandom and quasirandom numbers | -| [ROCR-Runtime](https://github.com/ROCm/ROCR-Runtime/) | User-mode API interfaces and libraries necessary for host applications to launch compute kernels on available HSA ROCm kernel agents | -| {doc}`rocSOLVER ` | An implementation of LAPACK routines on ROCm software, implemented in the HIP programming language and optimized for AMD’s latest discrete GPUs | -| {doc}`rocSPARSE ` | Exposes a common interface that provides BLAS for sparse computation implemented on ROCm runtime and toolchains (in the HIP programming language) | -| {doc}`rocThrust ` | A parallel algorithm library | -| [ROCT-Thunk-Interface](https://github.com/ROCm/ROCT-Thunk-Interface/) | User-mode API interfaces used to interact with the ROCk driver | -| {doc}`ROCTracer ` | Intercepts runtime API calls and traces asynchronous activity | -| {doc}`rocWMMA ` | A C++ library for accelerating mixed-precision matrix multiply-accumulate (MMA) operations | -| [Tensile](https://github.com/ROCm/Tensile) | A tool for creating benchmark-driven backend libraries for GEMMs, GEMM-like problems, and general N-dimensional tensor contractions | -| {doc}`TransferBench ` | A utility to benchmark simultaneous transfers between user-specified devices (CPUs/GPUs) | diff --git a/docs/what-is-rocm.rst b/docs/what-is-rocm.rst new file mode 100644 index 000000000..b4717b081 --- /dev/null +++ b/docs/what-is-rocm.rst @@ -0,0 +1,82 @@ +.. meta:: + :description: What is ROCm + :keywords: ROCm projects, introduction, ROCm, AMD, runtimes, compilers, tools, libraries, API + +*********************************************************** +What is ROCm? +*********************************************************** + +ROCm is an open-source stack, composed primarily of open-source software, designed for +graphics processing unit (GPU) computation. ROCm consists of a collection of drivers, development +tools, and APIs that enable GPU programming from low-level kernel to end-user applications. + +ROCm is powered by +`Heterogeneous-computing Interface for Portability (HIP) `_; +it supports programming models, such as OpenMP and OpenCL, and includes all necessary open +source software compilers, debuggers, and libraries. It's fully integrated into machine learning (ML) +frameworks, such as PyTorch and TensorFlow. + +.. tip:: + If you're using Radeon GPUs, refer to the + :doc:`Radeon-specific ROCm documentation `. + +ROCm project list +=============================================== + +ROCm consists of the following projects. For information on the license associated with each project, +see :doc:`ROCm licensing <./about/license>`. + +.. csv-table:: + :header: "Project", "Type", "Description" + + "`AMD Compute Language Runtimes (CLR) `_", "Runtime", "Contains source code for AMD's compute languages runtimes: :doc:`HIP ` and OpenCL" + ":doc:`AMD SMI `", "Tool", "C library for Linux that provides a user space interface for applications to monitor and control AMD devices" + "`AOMP `_", "Compiler", "Scripted build of `LLVM `_ and supporting software" + ":doc:`Composable Kernel `", "Library (AI/ML)", "Provides a programming model for writing performance critical kernels for machine learning workloads across multiple architectures" + "`FLANG `_", "Compiler", "An out-of-tree Fortran compiler targeting LLVM" + "`half `_", "Library (math)", "C++ header-only library that provides an IEEE 754 conformant, 16-bit half-precision floating-point type, along with corresponding arithmetic operators, type conversions, and common mathematical functions" + ":doc:`HIP `", "Runtime", AMD's GPU programming language extension and the GPU runtime" + ":doc:`hipBLAS `", "Library (math)", "BLAS-marshaling library that supports `rocBLAS `_ and cuBLAS backends" + ":doc:`hipBLASLt `", "Library (math)", "Provides general matrix-matrix operations with a flexible API and extends functionalities beyond traditional BLAS library" + "`hipCC `_ ", "Compiler", "Compiler driver utility that calls Clang or NVCC and passes the appropriate include and library options for the target compiler and HIP infrastructure" + ":doc:`hipCUB `", "Library (C++ primitive)", "Thin header-only wrapper library on top of `rocPRIM `_ or CUB that allows project porting using the CUB library to the HIP layer" + ":doc:`hipFFT `", "Library (math)", "Fast Fourier transforms (FFT)-marshalling library that supports rocFFT or cuFFT backends" + ":doc:`hipfort `", "Library (math)", "Fortran interface library for accessing GPU Kernels" + ":doc:`HIPIFY `", "Compiler", "Translates CUDA source code into portable HIP C++" + ":doc:`hipRAND `", "Library (math)", "Ports CUDA applications that use the cuRAND library into the HIP layer" + ":doc:`hipSOLVER `", "Library (math)", "An LAPACK-marshalling library that supports `rocSOLVER `_ and cuSOLVER backends" + ":doc:`hipSPARSE `", "Library (math)", "SPARSE-marshalling library that supports `rocSPARSE `_ and cuSPARSE backends" + ":doc:`hipSPARSELt `", "Library (math)", "SPARSE-marshalling library with multiple supported backends" + ":doc:`hipTensor `", "Library (C++ primitive)", "AMD's C++ library for accelerating tensor primitives based on the composable kernel library" + "`LLVM (amdclang) `_ ", "Compiler", "Toolkit for the construction of highly optimized compilers, optimizers, and run-time environments" + ":doc:`MIGraphX `", "Library (AI/ML)", "Graph inference engine that accelerates machine learning model inference" + ":doc:`MIOpen `", "Library (AI/ML)", "An open source deep-learning library" + ":doc:`MIVisionX `", "Library (AI/ML)", "Set of comprehensive computer vision and machine learning libraries, utilities, and applications" + "`Radeon Compute Profiler (RCP) `_ ", "Tool", "Performance analysis tool that gathers data from the API run-time and GPU for OpenCL and ROCm/HSA applications" + ":doc:`RCCL `", "Library (communication)", "Standalone library that provides multi-GPU and multi-node collective communication primitives" + ":doc:`rocAL `", "Library (AI/ML)", "An augmentation library designed to decode and process images and videos" + ":doc:`rocALUTION `", "Library (math)", "Sparse linear algebra library for exploring fine-grained parallelism on ROCm runtime and toolchains" + "`RocBandwidthTest `_ ", "Tool", "Captures the performance characteristics of buffer copying and kernel read/write operations" + ":doc:`rocBLAS `", "Library (math)", "BLAS implementation (in the HIP programming language) on the ROCm runtime and toolchains" + ":doc:`rocFFT `", "Library (math)", "Software library for computing fast Fourier transforms (FFTs) written in HIP" + "`ROCmCC <./reference/rocmcc.md>`_ ", "Tool", "Clang/LLVM-based compiler" + "`ROCm CMake `_ ", "Tool", "Collection of CMake modules for common build and development tasks" + ":doc:`ROCm Data Center Tool `", "Tool", "Simplifies administration and addresses key infrastructure challenges in AMD GPUs in cluster and data-center environments" + "`ROCm Debug Agent (ROCdebug-agent) `_ ", "Tool", "Prints the state of all AMD GPU wavefronts that caused a queue error by sending a SIGQUIT signal to the process while the program is running" + ":doc:`ROCm debugger (ROCgdb) `", "Tool", "Source-level debugger for Linux, based on the GNU Debugger (GDB)" + ":doc:`ROCdbgapi `", "Tool", "ROCm debugger API library" + "`rocminfo `_ ", "Tool", "Reports system information" + ":doc:`ROCm Performance Primitives (RPP) `", "Library (AI/ML)", "Comprehensive high-performance computer vision library for AMD processors with HIP/OpenCL/CPU back-ends" + ":doc:`ROCm SMI `", "Tool", "C library for Linux that provides a user space interface for applications to monitor and control GPU applications" + ":doc:`ROCm Validation Suite `", "Tool", "Detects and troubleshoots common problems affecting AMD GPUs running in a high-performance computing environment" + ":doc:`rocPRIM `", "Library (C++ primitive)", "Header-only library for HIP parallel primitives" + ":doc:`ROCProfiler `", "Tool", "Profiling tool for HIP applications" + ":doc:`rocRAND `", "Library (math)", "Provides functions that generate pseudorandom and quasirandom numbers" + "`ROCR-Runtime `_ ", "Runtime", "User-mode API interfaces and libraries necessary for host applications to launch compute kernels on available HSA ROCm kernel agents" + ":doc:`rocSOLVER `", "Library (math)", "An implementation of LAPACK routines on ROCm software, implemented in the HIP programming language and optimized for AMD's latest discrete GPUs" + ":doc:`rocSPARSE `", "Library (math)", "Exposes a common interface that provides BLAS for sparse computation implemented on ROCm runtime and toolchains (in the HIP programming language)" + ":doc:`rocThrust `", "Library (C++ primitive)", "Parallel algorithm library" + ":doc:`ROCTracer `", "Tool", "Intercepts runtime API calls and traces asynchronous activity" + ":doc:`rocWMMA `", "Library (math)", "C++ library for accelerating mixed-precision matrix multiply-accumulate (MMA) operations" + "`Tensile `_ ", "Library (math)", "Creates benchmark-driven backend libraries for GEMMs, GEMM-like problems, and general N-dimensional tensor contractions" + ":doc:`TransferBench `", "Tool", "Utility to benchmark simultaneous transfers between user-specified devices (CPUs/GPUs)"