ROCm restructuring (#2521)

Flattened out page structure for improved navigability.
 * Change Table of Contents 
 * Update the install guides for windows and linux
 * Removed extraneous index pages
 * GPU architecture pages duplicate entries removed
 * spack page cleanup

---------

Co-authored-by: Sam Wu <samwu103@amd.com>
Co-authored-by: Saad Rahim (AMD) <44449863+saadrahim@users.noreply.github.com>
This commit is contained in:
Lisa
2023-10-06 15:42:11 -06:00
committed by GitHub
parent 4496b2abc8
commit e87dba01c6
106 changed files with 2918 additions and 3808 deletions

View File

@@ -9,11 +9,13 @@ allocators
ALU
AMD
AMDGPU
amdgpu
AMDGPUs
AMDMIGraphX
AMI
AOCC
AOMP
api
APIC
APIs
Arb
@@ -21,8 +23,11 @@ ASan
ASIC
ASICs
ASm
atmi
atomics
autogenerated
avx
awk
backend
backends
benchmarking
@@ -32,9 +37,12 @@ BLAS
Blit
blit
BMC
buildable
bursty
bzip
cacheable
CCD
cd
CDNA
CentOS
centric
@@ -42,13 +50,19 @@ chiplet
CIFAR
CLI
CMake
cmake
CMakeLists
CMakePackage
cmd
coalescable
codename
Codespaces
comgr
Commitizen
CommonMark
composable
concretization
Concretized
Conda
config
conformant
@@ -80,12 +94,15 @@ datasets
dataspace
datatype
datatypes
dbgapi
de
deallocation
denormalize
Dependabot
deserializers
detections
dev
devicelibs
DGEMM
disambiguates
distro
@@ -103,59 +120,83 @@ DWORD
el
enablement
endpgm
env
epilog
EPYC
ESXi
ethernet
exascale
executables
ffmpeg
FFT
FFTs
FHS
filesystem
Filesystem
Flang
FMA
Fortran
fortran
FP
galb
gcc
GCD
GCDs
GCN
GDB
gdb
GDDR
GDR
GDS
GEMM
GEMMs
gfortran
gfx
GIM
github
Gitpod
GL
GLXT
GMI
gnupg
GPG
GPR
GPU
GPUs
grayscale
GRBM
gzip
Haswell
HBM
HCA
heterogenous
hipamd
hipBLAS
hipblas
hipBLASLt
HIPCC
hipCUB
hipcub
HIPExtension
hipFFT
hipfft
hipfort
HIPIFY
hipify
hipLIB
hipRAND
hipSOLVER
hipsolver
hipSPARSE
hipsparse
hipSPARSELt
hipTensor
HPC
HPCG
HPL
HSA
hsa
hsakmt
HWE
ib_core
ICV
@@ -166,10 +207,14 @@ incrementing
inferencing
InfiniBand
inflight
init
Inlines
inlining
installable
IntelliSense
interprocedural
Intersphinx
intra
invariants
invocating
Ioffe
@@ -177,6 +222,7 @@ IOMMU
IOP
IOPM
IOV
ipo
ISA
ISV
ISVs
@@ -189,9 +235,14 @@ KVM
LAPACK
LCLK
LDS
libjpeg
libs
linearized
linter
linux
llvm
LLVM
localscratch
logits
lossy
LSAN
@@ -202,18 +253,29 @@ matchers
Matplotlib
Mellanox's
MEM
MERCHANTABILITY
MFMA
microarchitecture
MIGraphX
migraphx
MIOpen
miopen
MIOpenGEMM
miopengemm
MIVisionX
mivisionx
mkdir
mlirmiopen
MMA
MNIST
MPI
MSVC
mtypes
Multicore
Multithreaded
MVAPICH
mvffr
MyEnvironment
MyST
namespace
namespaces
@@ -232,6 +294,7 @@ NVCC
NVPTX
OAM
OAMs
ocl
OCP
OEM
OFED
@@ -240,9 +303,13 @@ OMPT
OMPX
ONNX
OpenCL
opencl
opencv
OpenFabrics
OpenGL
OpenMP
openmp
openssl
OpenVX
optimizers
os
@@ -272,8 +339,10 @@ preq
prerequisites
PRNG
profiler
protobuf
PRs
pseudorandom
py
PyPi
PyTorch
Qcycles
@@ -281,37 +350,59 @@ quasirandom
Radeon
RadeonOpenCompute
RCCL
rccl
RDC
rdc
RDMA
RDNA
reformats
RelWithDebInfo
repos
Req
req
resampling
reStructuredText
RHEL
Rickle
roadmap
roc
ROC
rocAL
rocALUTION
rocalution
rocBLAS
rocblas
rocclr
ROCdbgapi
rocFFT
rocfft
ROCgdb
ROCk
rocLIB
rocm
ROCm
ROCmCC
rocminfo
ROCmSoftwarePlatform
ROCmValidationSuite
rocPRIM
rocprim
rocprof
ROCProfiler
rocprofiler
ROCr
rocr
rocRAND
rocrand
rocSOLVER
rocsolver
rocSPARSE
rocsparse
roct
rocThrust
rocthrust
ROCTracer
roctracer
rocWMMA
RST
runtime
@@ -340,21 +431,28 @@ SIGQUIT
SIMD
SKU
SKUs
skylake
sL
SLES
SMEM
SMI
smi
SMT
softmax
Spack
spack
SPI
SQs
SRAM
SRAMECC
src
stochastically
strided
subdirectory
subexpression
subfolder
subfolders
supercomputing
SWE
Szegedy
tagram
@@ -369,10 +467,13 @@ TensorFlow
TFLOPS
tg
th
tmp
ToC
tokenize
toolchain
toolchains
toolset
toolsets
TorchAudio
TorchScript
TorchServe
@@ -381,8 +482,10 @@ torchvision
tracebacks
TransferBench
TrapStatus
txt
UAC
uarch
ubuntu
UC
UCC
UCX
@@ -399,9 +502,11 @@ untuned
USM
UTCL
UTIL
utils
VALU
Vanhoucke
VBIOS
vdi
vectorizable
vectorization
vectorize
@@ -410,11 +515,13 @@ vectorizer
vectorizes
VGPR
VGPRs
vjxb
vL
VM
VMEM
VMWare
VRAM
VSIX
VSkipped
Vulkan
walkthrough
@@ -432,108 +539,18 @@ Writebacks
writebacks
wrreq
WX
wzo
Xeon
XGMI
Xnack
XT
Xteam
XTX
xz
YAML
yaml
YML
YModel
ZenDNN
CMakeLists
CMakePackage
Concretized
MIOpenGEMM
MyEnvironment
RDC
ROCmValidationSuite
RelWithDebInfo
amdgpu
api
atmi
avx
awk
bzip
cd
cmake
comgr
concretization
dbgapi
dev
devicelibs
env
ffmpeg
fortran
galb
gcc
gdb
gfortran
github
gnupg
gzip
hipamd
hipblas
hipcub
hipfft
hipfort
hipsolver
hipsparse
hsa
hsakmt
init
interprocedural
ipo
libjpeg
libs
linux
llvm
localscratch
migraphx
miopen
miopengemm
mivisionx
mkdir
mlirmiopen
mvffr
ocl
opencl
opencv
openmp
openssl
protobuf
py
rccl
rdc
repos
rocalution
rocblas
rocclr
rocfft
rocminfo
rocprim
rocprofiler
rocr
rocrand
rocsolver
rocsparse
roct
rocthrust
roctracer
skylake
smi
spack
src
supercomputing
tmp
txt
ubuntu
utils
vdi
vjxb
wzo
xz
yaml
ysvmadyb
ZenDNN
zypper

View File

@@ -498,7 +498,7 @@ ROCm 5.6.1 is a point release with several bug fixes in the HIP runtime.
### Fixed defects
* *hipMemcpy* device-to-device (intra device) is now asynchronous with respect to the host
* *hipMemcpy* device-to-device (inter-device) is now asynchronous with respect to the host
* Enabled xnack+ check in HIP catch2 tests hang when executing tests
* Memory leak when code object files are loaded/unloaded via hipModuleLoad/hipModuleUnload APIs
* Using *hipGraphAddMemFreeNode* no longer results in a crash
@@ -3761,7 +3761,7 @@ This release introduces a new ROCm C++ library for accelerating mixed precision
rocWMMA is released as a header library and includes test and sample projects to validate and illustrate example usages of the C++ API. GEMM matrix multiplication is used as primary validation given the heavy precedent for the library. However, the usage portfolio is growing significantly and demonstrates different ways rocWMMA may be consumed.
For more information, refer to
[Communication Libraries](./reference/libraries/gpu-libraries/communication.md).
[Communication Libraries](./reference/library-index.md).
#### OpenMP enhancements in this release

View File

@@ -27,7 +27,7 @@ Important: The next major ROCm release (ROCm 6.0) will not be backward compatibl
### Fixed defects
* *hipMemcpy* device-to-device (intra device) is now asynchronous with respect to the host
* *hipMemcpy* device-to-device (inter-device) is now asynchronous with respect to the host
* Enabled xnack+ check in HIP catch2 tests hang when executing tests
* Memory leak when code object files are loaded/unloaded via hipModuleLoad/hipModuleUnload APIs
* Using *hipGraphAddMemFreeNode* no longer results in a crash

View File

@@ -21,7 +21,7 @@ The release notes for the ROCm platform.
### Release Highlights for ROCm 5.7
ROCm 5.7.0 includes many new features. These include: a new library (hipTensor), debugger (ROCgdb) support for Fortran and OMPD, and optimizations for rocRAND and MIVisionX. AddressSanitizer for host and device code (GPU) is now available as a beta. Note that ROCm 5.7.0 is EOS for MI50. 5.7 versions of ROCm are the last major release in the ROCm 5 series. This release is Linux-only.
ROCm 5.7.0 includes many new features. These include: a new library (hipTensor), and optimizations for rocRAND and MIVisionX. Address sanitizer for host and device code (GPU) is now available as a beta. Note that ROCm 5.7.0 is EOS for MI50. 5.7 versions of ROCm are the last major release in the ROCm 5 series. This release is Linux-only.
Important: The next major ROCm release (ROCm 6.0) will not be backward compatible with the ROCm 5 series. Changes will include: splitting LLVM packages into more manageable sizes, changes to the HIP runtime API, splitting rocRAND and hipRAND into separate packages, and reorganizing our file structure.
@@ -498,7 +498,7 @@ ROCm 5.6.1 is a point release with several bug fixes in the HIP runtime.
### Fixed defects
* *hipMemcpy* device-to-device (intra device) is now asynchronous with respect to the host
* *hipMemcpy* device-to-device (inter-device) is now asynchronous with respect to the host
* Enabled xnack+ check in HIP catch2 tests hang when executing tests
* Memory leak when code object files are loaded/unloaded via hipModuleLoad/hipModuleUnload APIs
* Using *hipGraphAddMemFreeNode* no longer results in a crash
@@ -3761,7 +3761,7 @@ This release introduces a new ROCm C++ library for accelerating mixed precision
rocWMMA is released as a header library and includes test and sample projects to validate and illustrate example usages of the C++ API. GEMM matrix multiplication is used as primary validation given the heavy precedent for the library. However, the usage portfolio is growing significantly and demonstrates different ways rocWMMA may be consumed.
For more information, refer to
[Communication Libraries](./reference/libraries/gpu-libraries/communication.md).
[Communication Libraries](./reference/library-index.md).
#### OpenMP enhancements in this release

View File

@@ -60,5 +60,4 @@ contemporary CUDA / NVIDIA HPC SDK alternatives.
| 5.6 | 1.17.2 | 22.9 |
| 5.7 | 1.17.2 | 22.9 |
For the latest documentation of these libraries, refer to the
[associated documentation](../../reference/libraries/gpu-libraries/c++primitives).
For the latest documentation of these libraries, refer to [API libraries](../../reference/library-index.md).

View File

@@ -1,29 +0,0 @@
# Compatibility
:::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card}
**[User space & kernel fusion driver](./user-kernel-space-compat-matrix.md)**
Forward and backward compatibility of ROCm user space components and the
kernel space Kernel Fusion Driver (KFD).
:::
:::{grid-item-card}
**[Docker image support](./docker-image-support-matrix.md)**
ROCm releases several Docker container images.
:::
:::{grid-item-card}
**[Third-party support](./3rd-party-support-matrix.md)**
Several 3rd party libraries ship with ROCm enablement as well as several ROCm
components provide interfaces compatible with 3rd party solutions.
:::
:::::

View File

@@ -59,12 +59,12 @@ on this table, the GPU is not officially supported by AMD.
### Component support
ROCm components are described in the [Reference material](../../reference/index). Support
ROCm components are described in [What is ROCm?](../../what-is-rocm.md) Support
on Windows is provided with two levels on enablement.
* **Runtime**: Runtime enables the use of the HIP and OpenCL runtimes only.
* **HIP SDK**: Runtime plus additional components refer to [Libraries](../../reference/libraries/index).
Some [math libraries](../../reference/libraries/gpu-libraries/math) are Linux exclusive, please check the library details.
* **HIP SDK**: Runtime plus additional components are listed in [Libraries](../../reference/library-index.md).
Note that some math libraries are Linux exclusive.
### Support status

View File

@@ -5,7 +5,7 @@ The following table is a list of ROCm components with links to their respective
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 ROCm's manifest file.
The table is ordered to follow the ROCm manifest file.
<!-- spellcheck-disable -->
| Component | License |

View File

@@ -21,13 +21,13 @@ The release notes for the ROCm platform.
### What's new in this release
ROCm 5.7.0 includes many new features. These include: a new library (hipTensor), debugger (ROCgdb) support for Fortran and OMPD, and optimizations for rocRAND and MIVisionX. AddressSanitizer for host and device code (GPU) is now available as a beta. Note that ROCm 5.7.0 is EOS for MI50. 5.7 versions of ROCm are the last major release in the ROCm 5 series. This release is Linux-only.
ROCm 5.7.0 includes many new features. These include: a new library (hipTensor), and optimizations for rocRAND and MIVisionX. Address sanitizer for host and device code (GPU) is now available as a beta. Note that ROCm 5.7.0 is EOS for MI50. 5.7 versions of ROCm are the last major release in the ROCm 5 series. This release is Linux-only.
Important: The next major ROCm release (ROCm 6.0) will not be backward compatible with the ROCm 5 series. Changes will include: splitting LLVM packages into more manageable sizes, changes to the HIP runtime API, splitting rocRAND and hipRAND into separate packages, and reorganizing our file structure.
### Fixed defects
* *hipMemcpy* device-to-device (intra device) is now asynchronous with respect to the host
* *hipMemcpy* device-to-device (inter-device) is now asynchronous with respect to the host
* Enabled xnack+ check in HIP catch2 tests hang when executing tests
* Memory leak when code object files are loaded/unloaded via hipModuleLoad/hipModuleUnload APIs
* Using *hipGraphAddMemFreeNode* no longer results in a crash

View File

@@ -20,7 +20,7 @@ MIGraphX is a graph compiler focused on accelerating the machine-learning infere
After doing all these transformations, MIGraphX emits code for the AMD GPU by calling to MIOpen or rocBLAS or creating HIP kernels for a particular operator. MIGraphX can also target CPUs using DNNL or ZenDNN libraries.
MIGraphX provides easy-to-use APIs in C++ and Python to import machine models in ONNX or TensorFlow. Users can compile, save, load, and run these models using MIGraphX's C++ and Python APIs. Internally, MIGraphX parses ONNX or TensorFlow models into internal graph representation where each operator in the model gets mapped to an operator within MIGraphX. Each of these operators defines various attributes such as:
MIGraphX provides easy-to-use APIs in C++ and Python to import machine models in ONNX or TensorFlow. Users can compile, save, load, and run these models using the MIGraphX C++ and Python APIs. Internally, MIGraphX parses ONNX or TensorFlow models into internal graph representation where each operator in the model gets mapped to an operator within MIGraphX. Each of these operators defines various attributes such as:
* Number of arguments
* Type of arguments
@@ -321,6 +321,6 @@ To run generated `.mxr` files through `migraphx-driver`, use the following:
./path/to/migraphx-driver run --migraphx resnet50.mxr --enable-offload-copy
```
Alternatively, you can use MIGraphX's C++ or Python API to generate `.mxr` file.
Alternatively, you can use the MIGraphX C++ or Python API to generate `.mxr` files.
![Generating an MXR file](../data/conceptual/image018.png "Generating an MXR file")

View File

@@ -56,7 +56,7 @@ This example is adapted from the PyTorch research hub page on [Inception V3](htt
Follow these steps:
1. Run the PyTorch ROCm-based Docker image or refer to the section [Installing PyTorch](../tutorials/install/pytorch-install) for setting up a PyTorch environment on ROCm.
1. Run the PyTorch ROCm-based Docker image or refer to the section [Installing PyTorch](../install/pytorch-install.md) for setting up a PyTorch environment on ROCm.
```dockerfile
docker run -it -v $HOME:/data --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --device=/dev/kfd --device=/dev/dri --group-add video --ipc=host --shm-size 8G rocm/pytorch:latest
@@ -146,7 +146,7 @@ The previous section focused on downloading and using the Inception V3 model for
Follow these steps:
1. Run the PyTorch ROCm Docker image or refer to the section [Installing PyTorch](../tutorials/install/pytorch-install) for setting up a PyTorch environment on ROCm.
1. Run the PyTorch ROCm Docker image or refer to the section [Installing PyTorch](../install/pytorch-install.md) for setting up a PyTorch environment on ROCm.
```dockerfile
docker pull rocm/pytorch:latest

View File

@@ -50,12 +50,13 @@ the *config-file* packages are shipped with the upstream projects, such as
rocPRIM and other ROCm libraries.
For a complete guide on where and how ROCm may be installed on a system, refer
to the installation guides in these docs (`Linux <../tutorials/install/index.html>`_).
to the installation guides for `Linux <../install/linux/install.html>`_ and
`Windows <../install/windows/install.html>`_.
Using HIP in CMake
==================
ROCm componenents providing a C/C++ interface support being consumed using any
ROCm components providing a C/C++ interface support consumption via any
C/C++ toolchain that CMake knows how to drive. ROCm also supports CMake's HIP
language features, allowing users to program using the HIP single-source
programming model. When a program (or translation-unit) uses the HIP API without

View File

@@ -10,6 +10,6 @@ disambiguates compiler naming used throughout the documentation.
| `amdclang++` | Clang/LLVM-based compiler that is part of `rocm-llvm` package. The source code is available at <a href="https://github.com/RadeonOpenCompute/llvm-project" target="_blank">https://github.com/RadeonOpenCompute/llvm-project</a>. |
| AOCC | Closed-source clang-based compiler that includes additional CPU optimizations. Offered as part of ROCm via the `rocm-llvm-alt` package. See for details, <a href="https://developer.amd.com/amd-aocc/" target="_blank">https://developer.amd.com/amd-aocc/</a>. |
| HIP-Clang | Informal term for the `amdclang++` compiler |
| HIPify | Tools including `hipify-clang` and `hipify-perl`, used to automatically translate CUDA source code into portable HIP C++. The source code is available at <a href="https://github.com/ROCm-Developer-Tools/HIPIFY" target="_blank">https://github.com/ROCm-Developer-Tools/HIPIFY</a> |
| HIPIFY | Tools including `hipify-clang` and `hipify-perl`, used to automatically translate CUDA source code into portable HIP C++. The source code is available at <a href="https://github.com/ROCm-Developer-Tools/HIPIFY" target="_blank">https://github.com/ROCm-Developer-Tools/HIPIFY</a> |
| `hipcc` | HIP compiler driver. A utility that invokes `clang` or `nvcc` depending on the target and passes the appropriate include and library options for the target compiler and HIP infrastructure. The source code is available at <a href="https://github.com/ROCm-Developer-Tools/HIPCC" target="_blank">https://github.com/ROCm-Developer-Tools/HIPCC</a>. |
| ROCmCC | Clang/LLVM-based compiler. ROCmCC in itself is not a binary but refers to the overall compiler. |

View File

@@ -1,48 +1,51 @@
# GPU architectures
## Architecture guides
# GPU architecture documentation
:::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card}
**[AMD Instinct MI250](./gpu-arch/mi250.md)**
**AMD Instinct MI200 series**
Review hardware aspects of the AMD Instinct™ MI250
accelerators and the CDNA™ 2 architecture that is the foundation of these GPUs.
Review hardware aspects of the AMD Instinct™ MI200 series of GPU
accelerators and the CDNA™ 2 architecture.
* [Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/instinct-mi200-cdna2-instruction-set-architecture.pdf)
* [AMD Instinct™ MI250 microarchitecture](./gpu-arch/mi250.md)
* [AMD Instinct MI200/CDNA2 ISA](https://www.amd.com/system/files/TechDocs/instinct-mi200-cdna2-instruction-set-architecture.pdf)
* [White paper](https://www.amd.com/system/files/documents/amd-cdna2-white-paper.pdf)
* [Performance counters](./gpu-arch/mi200-performance-counters.md)
:::
:::{grid-item-card}
**[AMD Instinct MI100](./gpu-arch/mi100.md)**
**AMD Instinct MI100**
Review hardware aspects of the AMD Instinct™ MI100
accelerators and the CDNA™ 1 architecture that is the foundation of these GPUs.
* [Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/instinct-mi100-cdna1-shader-instruction-set-architecture%C2%A0.pdf)
* [AMD Instinct™ MI100 microarchitecture](./gpu-arch/mi100.md)
* [AMD Instinct MI100/CDNA1 ISA](https://www.amd.com/system/files/TechDocs/instinct-mi100-cdna1-shader-instruction-set-architecture%C2%A0.pdf)
* [White paper](https://www.amd.com/system/files/documents/amd-cdna-whitepaper.pdf)
:::
:::::
:::{grid-item-card}
**RDNA**
## ISA documentation
* [AMD Instinct MI200/CDNA2 Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/instinct-mi200-cdna2-instruction-set-architecture.pdf)
* [AMD Instinct MI100/CDNA1 Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/instinct-mi100-cdna1-shader-instruction-set-architecture%C2%A0.pdf)
* [AMD Instinct MI50/Vega 7nm Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/vega-7nm-shader-instruction-set-architecture.pdf)
* [AMD Instinct MI25/Vega Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/vega-shader-instruction-set-architecture.pdf)
* [AMD RDNA3 Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/rdna3-shader-instruction-set-architecture-feb-2023_0.pdf)
* [AMD RDNA2 Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/rdna2-shader-instruction-set-architecture.pdf)
* [AMD RDNA Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/rdna-shader-instruction-set-architecture.pdf)
* [AMD GCN3 Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/gcn3-instruction-set-architecture.pdf)
## White papers
* [AMD CDNA™ 2 Architecture White Paper](https://www.amd.com/system/files/documents/amd-cdna2-white-paper.pdf)
* [AMD CDNA Architecture White Paper](https://www.amd.com/system/files/documents/amd-cdna-whitepaper.pdf)
* [AMD Vega Architecture White Paper](https://en.wikichip.org/w/images/a/a1/vega-whitepaper.pdf)
* [AMD RDNA3 ISA](https://www.amd.com/system/files/TechDocs/rdna3-shader-instruction-set-architecture-feb-2023_0.pdf)
* [AMD RDNA2 ISA](https://www.amd.com/system/files/TechDocs/rdna2-shader-instruction-set-architecture.pdf)
* [AMD RDNA ISA](https://www.amd.com/system/files/TechDocs/rdna-shader-instruction-set-architecture.pdf)
* [AMD RDNA Architecture White Paper](https://www.amd.com/system/files/documents/rdna-whitepaper.pdf)
:::
:::{grid-item-card}
**Older architectures**
* [AMD Instinct MI50/Vega 7nm ISA](https://www.amd.com/system/files/TechDocs/vega-7nm-shader-instruction-set-architecture.pdf)
* [AMD Instinct MI25/Vega ISA](https://www.amd.com/system/files/TechDocs/vega-shader-instruction-set-architecture.pdf)
* [AMD GCN3 ISA](https://www.amd.com/system/files/TechDocs/gcn3-instruction-set-architecture.pdf)
* [AMD Vega Architecture White Paper](https://en.wikichip.org/w/images/a/a1/vega-whitepaper.pdf)
:::
:::::

View File

@@ -1,10 +1,4 @@
# AMD Instinct™ MI100 hardware
In this chapter, we are going to briefly review hardware aspects of the AMD
Instinct™ MI100 accelerators and the CDNA architecture that is the foundation of
these GPUs.
## System architecture
# AMD Instinct™ MI100 microarchitecture
The following image shows the node-level architecture of a system that
comprises two AMD EPYC™ processors and (up to) eight AMD Instinct™ accelerators.
@@ -46,7 +40,7 @@ high-speed links (23 GT/sec, also at the bottom) to the other GPUs of the local
hive.
On the left and right of the floor plan, the High Bandwidth Memory (HBM)
attaches via the GPU's memory controller. The MI100 generation of the AMD
attaches via the GPU memory controller. The MI100 generation of the AMD
Instinct accelerator offers four stacks of HBM generation 2 (HBM2) for a total
of 32GB with a 4,096bit-wide memory interface. The peak memory bandwidth of the
attached HBM2 is 1.228 TB/sec at a memory clock frequency of 1.2 GHz.

View File

@@ -1,9 +1,4 @@
# AMD instinct hardware
This chapter briefly reviews hardware aspects of the AMD Instinct MI250
accelerators and the CDNA™ 2 architecture that is the foundation of these GPUs.
## AMD CDNA 2 microarchitecture
# AMD Instinct™ MI250 microarchitecture
The microarchitecture of the AMD Instinct MI250 accelerators is based on the
AMD CDNA 2 architecture that targets compute applications such as HPC,

View File

@@ -48,7 +48,7 @@ For a complete ROCm GPU Sanitizer installation, the following must be installed
* For instrumented math libraries (optional)
```bash
sudo apt-get install hipfft-asan hipsparse-asan migraphx-asan miopen-hip-asan rocalution-asan rocblas-asan rocfft-asan rocm-core-asan rocsparse-asan hipblaslt-asan mivisionx-asan rocsolver-asan
sudo apt-get install hipfft-asan hipsparse-asan migraphx-asan miopen-hip-asan rocalution-asan rocblas-asan rocfft-asan rocm-core-asan rocsparse-asan hipblaslt-asan mivisionx-asan rocsolver-asan
```
**Note**: It is recommended to install all ASan packages. If the optional instrumented math libraries are not installed, the address sanitizer cannot find issues within those libraries.

View File

@@ -35,36 +35,35 @@ article_pages = [
"date":"2023-07-27"
},
{"file":"tutorials/quick-start/windows", "os":["windows"]},
{"file":"tutorials/quick-start/linux", "os":["linux"]},
{"file":"install/windows/install-quick", "os":["windows"]},
{"file":"install/linux/install-quick", "os":["linux"]},
{"file":"tutorials/install/linux/index", "os":["linux"]},
{"file":"tutorials/install/linux/install-options", "os":["linux"]},
{"file":"tutorials/install/linux/prerequisites", "os":["linux"]},
{"file":"install/linux/install", "os":["linux"]},
{"file":"install/linux/install-options", "os":["linux"]},
{"file":"install/linux/prerequisites", "os":["linux"]},
{"file":"tutorials/install/docker", "os":["linux"]},
{"file":"tutorials/install/magma-install", "os":["linux"]},
{"file":"tutorials/install/pytorch-install", "os":["linux"]},
{"file":"tutorials/install/tensorflow-install", "os":["linux"]},
{"file":"install/docker", "os":["linux"]},
{"file":"install/magma-install", "os":["linux"]},
{"file":"install/pytorch-install", "os":["linux"]},
{"file":"install/tensorflow-install", "os":["linux"]},
{"file":"tutorials/install/windows/index", "os":["windows"]},
{"file":"tutorials/install/windows/prerequisites", "os":["windows"]},
{"file":"tutorials/install/windows/cli/index", "os":["windows"]},
{"file":"tutorials/install/windows/gui/index", "os":["windows"]},
{"file":"install/windows/install", "os":["windows"]},
{"file":"install/windows/prerequisites", "os":["windows"]},
{"file":"install/windows/cli/index", "os":["windows"]},
{"file":"install/windows/gui/index", "os":["windows"]},
{"file":"about/compatibility/linux-support", "os":["linux"]},
{"file":"about/compatibility/windows-support", "os":["windows"]},
{"file":"about/compatibility/docker-image-support-matrix", "os":["linux"]},
{"file":"about/compatibility/user-kernel-space-compat-matrix", "os":["linux"]},
{"file":"reference/libraries/gpu-libraries/index", "os":["linux"]},
{"file":"reference/compilers-tools/index", "os":["linux"]},
{"file":"reference/index", "os":["linux"]},
{"file":"reference/library-index", "os":["linux"]},
{"file":"how-to/deep-learning-rocm", "os":["linux"]},
{"file":"how-to/gpu-enabled-mpi", "os":["linux"]},
{"file":"how-to/system-debugging", "os":["linux"]},
{"file":"how-to/index", "os":["linux", "windows"]},
{"file":"how-to/tuning-guides", "os":["linux", "windows"]},
{"file":"rocm-a-z", "os":["linux", "windows"]},

View File

Before

Width:  |  Height:  |  Size: 939 KiB

After

Width:  |  Height:  |  Size: 939 KiB

View File

Before

Width:  |  Height:  |  Size: 537 KiB

After

Width:  |  Height:  |  Size: 537 KiB

View File

Before

Width:  |  Height:  |  Size: 292 KiB

After

Width:  |  Height:  |  Size: 292 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 114 KiB

View File

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 110 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 228 KiB

After

Width:  |  Height:  |  Size: 228 KiB

View File

Before

Width:  |  Height:  |  Size: 796 KiB

After

Width:  |  Height:  |  Size: 796 KiB

View File

Before

Width:  |  Height:  |  Size: 310 KiB

After

Width:  |  Height:  |  Size: 310 KiB

View File

Before

Width:  |  Height:  |  Size: 789 KiB

After

Width:  |  Height:  |  Size: 789 KiB

View File

Before

Width:  |  Height:  |  Size: 801 KiB

After

Width:  |  Height:  |  Size: 801 KiB

View File

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

View File

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

View File

@@ -1,366 +0,0 @@
# Introduction to Spack
Spack is a package management tool designed to support multiple versions and configurations of software on a wide variety of platforms and environments. It was designed for large supercomputing centers, where many users and application teams share common installations of software on clusters with exotic architectures, using libraries that do not have a standard ABI. Spack is non-destructive: installing a new version does not break existing installations, so many configurations can coexist on the same system.
Most importantly, Spack is *simple*. It offers a simple *spec* syntax so that users can specify versions and configuration options concisely. Spack is also simple for package authors: package files are written in pure Python, and specs allow package authors to maintain a single file for many different builds of the same package. Below link can be referred for more generic information on Spack.
Reference: <https://spack-tutorial.readthedocs.io/en/latest/>
## ROCM packages in Spack
| **Component** | **Spack Package Name** |
|---------------------------|------------------------|
| **rocm-cmake** | rocm-cmake |
| **thunk** | hsakmt-roct |
| **rocm-smi-lib** | rocm-smi-lib |
| **hsa** | hsa-rocr-dev |
| **lightning** | llvm-amdgpu |
| **devicelibs** | rocm-device-libs |
| **comgr** | comgr |
| **rocclr (vdi)** | hip-rocclr |
| **hipify_clang** | hipify-clang |
| **hip (hip_in_vdi)** | hip |
| **ocl (opencl_on_vdi )** | rocm-opencl |
| **rocminfo** | rocminfo |
| **clang-ocl** | rocm-clang-ocl |
| **rccl** | rccl |
| **atmi** | atmi |
| **rocm_debug_agent** | rocm-debug-agent |
| **rocm_bandwidth_test** | rocm-bandwidth-test |
| **rocprofiler** | rocprofiler-dev |
| **roctracer-dev-api** | roctracer-dev-api |
| **roctracer** | roctracer-dev |
| **dbgapi** | rocm-dbgapi |
| **rocm-gdb** | rocm-gdb |
| **openmp-extras** | rocm-openmp-extras |
| **rocBLAS** | rocblas |
| **hipBLAS** | hipblas |
| **rocFFT** | rocfft |
| **rocRAND** | rocrand |
| **rocSPARSE** | rocsparse |
| **hipSPARSE** | hipsparse |
| **rocALUTION** | rocalution |
| **rocSOLVER** | rocsolver |
| **rocPRIM** | rocprim |
| **rocThrust** | rocthrust |
| **hipCUB** | hipcub |
| **hipfort** | hipfort |
| **ROCmValidationSuite** | rocm-validation-suite |
| **MIOpenGEMM** | miopengemm |
| **MIOpen(Hip variant)** | miopen-hip |
| **MIOpen(opencl)** | miopen-opencl |
| **MIVisionX** | mivisionx |
| **AMDMIGraphX** | migraphx |
| **rocm-tensile** | rocm-tensile |
| **hipfft** | hipfft |
| **RDC** | rdc |
| **hipsolver** | hipsolver |
| **mlirmiopen** | mlirmiopen |
Install all prerequisites before performing the SPACK installation.
::::{tab-set}
:::{tab-item} Ubuntu
:sync: Ubuntu
```shell
# Install some essential utilities:
apt-get update
apt-get install make patch bash tar gzip unzip bzip2 file gnupg2 git gawk
apt-get update -y
apt-get install -y xz-utils
apt-get build-essential
apt-get install vim
# Install Python:
apt-get install python3
apt-get upgrade python3-pip
# Install Compilers:
apt-get install gcc
apt-get install gfortran
```
:::
:::{tab-item} SLES
:sync: SLES
```shell
# Install some essential utilities:
zypper update
zypper install make patch bash tar gzip unzip bzip xz file gnupg2 git awk
zypper in -t pattern
zypper install vim
# Install Python:
zypper install python3
zypper install python3-pip
# Install Compilers:
zypper install gcc
zypper install gcc-fortran
zypper install gcc-c++
```
:::
:::{tab-item} CentOS
:sync: CentOS
```shell
# Install some essential utilities:
yum update
yum install make
yum install patch bash tar yum install gzip unzip bzip2 xz file gnupg2 git gawk
yum group install "Development Tools"
yum install vim
# Install Python:
yum install python3
pip3 install --upgrade pip
# Install compilers:
yum install gcc
yum install gcc-gfortran
yum install gcc-c++
```
:::
::::
## Steps to build ROCm Components using Spack
## Clone Spack project
Clone the Spack project from github in order to use the spack package manager.
git clone <https://github.com/spack/spack>
## Initialize Spack
The script setup-env.sh will initialize spack environment.
\$ cd spack
\$ . share/spack/setup-env.sh
Spack commands will be available once the above steps are executed successfully.
spack help will list the commands available.
root@[abc:/spack\#](http://abc/spack) spack help
## Using Spack to install ROCm components
## rocm-cmake
Below command will install the default variants and latest version of rocm-cmake.
spack install rocm-cmake
In order to install a specific version of rocm-cmake below format can be used.
spack install rocm-cmake@\<version number\>
Example:
spack install rocm-cmake@5.2.0
## Using info
info** command will display basic information of the package. It shows the Preferred, Safe and Deprecated versions and different Variants available.
It also shows the Dependencies with other packages. as shown below.
spack info mivisionx
Example:
root@[abc:/spack\#](http://abc/spack) spack info mivisionx
CMakePackage: mivisionx
Description:
MIVisionX toolkit is a set of comprehensive computer vision and machine
intelligence libraries, utilities, and applications bundled into a
single toolkit.
Homepage: <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX>
Preferred version:
5.3.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.3.0.tar.gz>
Safe versions:
5.3.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.3.0.tar.gz>
5.2.3 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.2.3.tar.gz>
5.2.1 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.2.1.tar.gz>
5.2.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.2.0.tar.gz>
5.1.3 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.1.3.tar.gz>
5.1.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.1.0.tar.gz>
5.0.2 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.0.2.tar.gz>
5.0.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.0.0.tar.gz>
4.5.2 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.5.2.tar.gz>
4.5.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.5.0.tar.gz>
Deprecated versions:
4.3.1 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.3.1.tar.gz>
4.3.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.3.0.tar.gz>
4.2.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.2.0.tar.gz>
4.1.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.1.0.tar.gz>
4.0.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.0.0.tar.gz>
3.10.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-3.10.0.tar.gz>
3.9.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-3.9.0.tar.gz>
3.8.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-3.8.0.tar.gz>
3.7.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-3.7.0.tar.gz>
1.7 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/1.7.tar.gz>
Variants:
Name [Default] When Allowed values Description
==================== ==== ==================== ==================================
build_type [Release] -- Release, Debug, CMake build type
RelWithDebInfo
hip [on] -- on, off Use HIP as backend
ipo [off] -- on, off CMake interprocedural optimization
opencl [off] -- on, off Use OPENCL as the backend
Build Dependencies:
cmake ffmpeg libjpeg-turbo miopen-hip miopen-opencl miopengemm opencv openssl protobuf rocm-cmake rocm-opencl
Link Dependencies:
miopen-hip miopen-opencl miopengemm openssl rocm-opencl
Run Dependencies:
None
root@[abc:/spack\#](http://abc/spack)
## Installing variants for ROCm components
Variants listed above indicates that mivisionx package is built with **build_type=Release,** backend **hip** and without backend **opencl** by default.
But it also supports build_type=**Debug** and **RelWithDebInfo** , with **opencl** and without **hip** as backend.
Example:
spack install mivisionx build_type=Debug (Backend will be hip since it is the default one)
spack install mivisionx+opencl build_type=Debug (Backend will be opencl and hip will be disabled as per the conflict defined in recipe)
## spack spec command
In order to display the dependency tree spack spec command can be used with the same format.
## Example
root@[abc:/spack\#](http://abc/spack) spack spec mivisionx
Input spec
\--------------------------------
mivisionx
Concretized
\--------------------------------
mivisionx@5.3.0%gcc@9.4.0+hip\~ipo\~opencl build_type=Release arch=linux-ubuntu20.04-skylake_avx512
## Creating environment
You can create an environment with all the components of required version, install them collectively and work in the environment.
1\. In the root folder make a folder to create a .yaml file with which we can create an environment.
* mkdir /localscratch
* cd /localscratch
* vi sample.yaml
2.Add all the required components on sample.yaml file, as shown below,
* spack:
* concretization: separately
* packages:
* all:
* compiler: [gcc@8.5.0]
* specs:
* \- matrix:
* \- ['%gcc@8.5.0\^cmake@3.19.7']
* \- [rocm-cmake@5.3.2, rocm-dbgapi@5.3.2, rocm-debug-agent@5.3.2, rocm-gdb@5.3.2,
* rocminfo@5.3.2, rocm-opencl@5.3.2, rocm-smi-lib@5.3.2, rocm-tensile@5.3.2, rocm-validation-suite@4.3.1,
* rocprim@5.3.2, rocprofiler-dev@5.3.2, rocrand@5.3.2, rocsolver@5.3.2, rocsparse@5.3.2,
* rocthrust@5.3.2, roctracer-dev@5.3.2]
* view: true
3\. Once you got .yaml file, using it create an environment as shown below,
* spack env create -d /localscratch/MyEnvironment /localscratch/sample.yaml
4\. Activate the created environment as shown below,
* spack env activate /localscratch/MyEnvironment
5.Before installing all components using next step, verify whether versions mentioned for all components are desired or not as shown below,
* spack find - this command will list out all components been in the environment (and 0 installed )
6.Install all the components in the .yaml after activating the environment as shown below by entering the created environment.
* cd /localscratch/MyEnvironment
* spack install -j 50
7.Check all the components installation are successful or not.
* spack find
8.If any modification is done to the .yaml file, to reflect those changes one needs to deactivate the existing environment and create a new one again using steps 3 and 4.
* To deactivate use below command,
* spack env deactivate
## Create and apply patch for a package before installation
Spack will install rocm packages after pulling the source code from git hub and building locally.
In order to build a component with any modification in source code we would need to generate a patch and apply before the build phase by making changes in the spack recipe of the corresponding package.
Below the procedure to generate a patch and build with the changes.
1.**Stage the source code**
spack stage hip@5.2.0 (This will pull the 5.2.0 release version source code of hip and display the path to spack-src directory where entire source code is available)
root@[abc:/spack\#](http://abc/spack) spack stage hip@5.2.0
==\> Fetching <https://github.com/ROCm-Developer-Tools/HIP/archive/rocm-5.2.0.tar.gz>
==\> Fetching <https://github.com/ROCm-Developer-Tools/hipamd/archive/rocm-5.2.0.tar.gz>
==\> Fetching <https://github.com/ROCm-Developer-Tools/ROCclr/archive/rocm-5.2.0.tar.gz>
==\> Moving resource stage
source: /tmp/root/spack-stage/resource-hipamd-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src/
destination: /tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src/hipamd
==\> Moving resource stage
source: /tmp/root/spack-stage/resource-opencl-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src/
destination: /tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src/opencl
==\> Moving resource stage
source: /tmp/root/spack-stage/resource-rocclr-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src/
destination: /tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src/rocclr
==\> Staged hip in /tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7
2\. **Change directory to spack-src inside the staged directory**
root@[abc:/spack\#cd /tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7](http://abc/spack)
root@[abc:/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7\#](http://abc/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7) cd spack-src/
3\. **Creates a new Git repository**
root@[abc:/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src\#](http://abc/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src) git init
4\. **Add the entire directory to the repository**
root@[abc:/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src\#](http://abc/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src) git add .
5\. **Make the required changes in the source code**
root@[abc:/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src\#](http://abc/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src) vi hipamd/CMakeLists.txt (Make required changes in the source code)
6\. **Generate the patch using "git diff" command**
root@[abc:/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src\#](http://abc/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src) git diff \> /spack/var/spack/repos/builtin/packages/hip/0001-modifications.patch
7\. **Update the recipe with the patch file name and conditions to apply**
root@[abc:/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src\#](http://abc/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src) spack edit hip
Provide the patch file name and the conditions for the patch to be applied in the hip recipe as below,
patch("0001-modifications.patch", when="@5.2.0")
Spack will apply 0001-modifications.patch on the 5.2.0 release code before starting the build for hip.
**Note**: After each modification we need to make sure the recipe is also updated. If there is no change in the recipe do touch /spack/var/spack/repos/builtin/packages/hip/package.py
**Note:** Spack latest release is 5.6.0

View File

@@ -6,10 +6,10 @@ the sequential flow for the use of each framework. Refer to the ROCm Compatible
Frameworks Release Notes for each framework's most current release notes at
[Third party support](../about/compatibility/3rd-party-support-matrix.md).
![ROCm Compatible Frameworks Flowchart](../data/tutorials/install/magma-install/magma005.png "ROCm Compatible Frameworks")
![ROCm Compatible Frameworks Flowchart](../data/install/magma-install/magma005.png "ROCm Compatible Frameworks")
## Frameworks installation
* [Installing PyTorch](../tutorials/install/pytorch-install)
* [Installing TensorFlow](../tutorials/install/tensorflow-install)
* [Installing MAGMA](../tutorials/install/magma-install)
* [Installing PyTorch](../install/pytorch-install.md)
* [Installing TensorFlow](../install/tensorflow-install.md)
* [Installing MAGMA](../install/magma-install.md)

View File

@@ -71,7 +71,7 @@ make -j $(nproc)
make -j $(nproc) install
```
The [communication libraries tables](../reference/libraries/gpu-libraries/communication.md)
The [communication libraries tables](../reference/library-index.md)
documents the compatibility of UCX versions with ROCm versions.
## Install Open MPI
@@ -156,7 +156,7 @@ Unified Collective Communication Library (UCC) component in Open MPI.
For this, the UCC library has to be configured and compiled with ROCm
support.
Please note the compatibility tables in the [communication libraries](../reference/libraries/gpu-libraries/communication.md)
Please note the compatibility tables in the [communication libraries](../reference/library-index.md)
for UCC versions with the various ROCm versions.
An example for configuring UCC and Open MPI with ROCm support

421
docs/how-to/spack-intro.md Normal file
View File

@@ -0,0 +1,421 @@
# Introduction to Spack
Spack is a package management tool designed to support multiple software versions and
configurations on a wide variety of platforms and environments. It was designed for large
supercomputing centers, where many users share common software installations on clusters with
exotic architectures using libraries that do not have a standard ABI. Spack is non-destructive: installing
a new version does not break existing installations, so many configurations can coexist on the same
system.
Most importantly, Spack is *simple*. It offers a simple *spec* syntax, so users can concisely specify
versions and configuration options. Spack is also simple for package authors: package files are written
in pure Python, and specs allow package authors to maintain a single file for many different builds of
the same package. For more information on Spack, see
[https://spack-tutorial.readthedocs.io/en/latest/](https://spack-tutorial.readthedocs.io/en/latest/).
## ROCM packages in Spack
| **Component** | **Spack Package Name** |
|---------------------------|------------------------|
| **rocm-cmake** | rocm-cmake |
| **thunk** | hsakmt-roct |
| **rocm-smi-lib** | rocm-smi-lib |
| **hsa** | hsa-rocr-dev |
| **lightning** | llvm-amdgpu |
| **devicelibs** | rocm-device-libs |
| **comgr** | comgr |
| **rocclr (vdi)** | hip-rocclr |
| **hipify_clang** | hipify-clang |
| **hip (hip_in_vdi)** | hip |
| **ocl (opencl_on_vdi )** | rocm-opencl |
| **rocminfo** | rocminfo |
| **clang-ocl** | rocm-clang-ocl |
| **rccl** | rccl |
| **atmi** | atmi |
| **rocm_debug_agent** | rocm-debug-agent |
| **rocm_bandwidth_test** | rocm-bandwidth-test |
| **rocprofiler** | rocprofiler-dev |
| **roctracer-dev-api** | roctracer-dev-api |
| **roctracer** | roctracer-dev |
| **dbgapi** | rocm-dbgapi |
| **rocm-gdb** | rocm-gdb |
| **openmp-extras** | rocm-openmp-extras |
| **rocBLAS** | rocblas |
| **hipBLAS** | hipblas |
| **rocFFT** | rocfft |
| **rocRAND** | rocrand |
| **rocSPARSE** | rocsparse |
| **hipSPARSE** | hipsparse |
| **rocALUTION** | rocalution |
| **rocSOLVER** | rocsolver |
| **rocPRIM** | rocprim |
| **rocThrust** | rocthrust |
| **hipCUB** | hipcub |
| **hipfort** | hipfort |
| **ROCmValidationSuite** | rocm-validation-suite |
| **MIOpenGEMM** | miopengemm |
| **MIOpen(Hip variant)** | miopen-hip |
| **MIOpen(opencl)** | miopen-opencl |
| **MIVisionX** | mivisionx |
| **AMDMIGraphX** | migraphx |
| **rocm-tensile** | rocm-tensile |
| **hipfft** | hipfft |
| **RDC** | rdc |
| **hipsolver** | hipsolver |
| **mlirmiopen** | mlirmiopen |
```{note}
You must install all prerequisites before installing Spack.
```
::::{tab-set}
:::{tab-item} Ubuntu
:sync: Ubuntu
```shell
# Install some essential utilities:
apt-get update
apt-get install make patch bash tar gzip unzip bzip2 file gnupg2 git gawk
apt-get update -y
apt-get install -y xz-utils
apt-get build-essential
apt-get install vim
# Install Python:
apt-get install python3
apt-get upgrade python3-pip
# Install Compilers:
apt-get install gcc
apt-get install gfortran
```
:::
:::{tab-item} SLES
:sync: SLES
```shell
# Install some essential utilities:
zypper update
zypper install make patch bash tar gzip unzip bzip xz file gnupg2 git awk
zypper in -t pattern
zypper install vim
# Install Python:
zypper install python3
zypper install python3-pip
# Install Compilers:
zypper install gcc
zypper install gcc-fortran
zypper install gcc-c++
```
:::
:::{tab-item} CentOS
:sync: CentOS
```shell
# Install some essential utilities:
yum update
yum install make
yum install patch bash tar yum install gzip unzip bzip2 xz file gnupg2 git gawk
yum group install "Development Tools"
yum install vim
# Install Python:
yum install python3
pip3 install --upgrade pip
# Install compilers:
yum install gcc
yum install gcc-gfortran
yum install gcc-c++
```
:::
::::
## Steps to build ROCm components using Spack
1. To use the spack package manager, clone the Spack project from GitHub.
```bash
git clone <https://github.com/spack/spack>
```
2. Initialize Spack.
The `setup-env.sh` script initializes the Spack environment.
```bash
cd spack
. share/spack/setup-env.sh
```
Spack commands are available once the above steps are completed. To list the available commands,
use `help`.
```bash
root@[ixt-rack-104:/spack\#](http://ixt-rack-104/spack) spack help
```
## Using Spack to install ROCm components
1. `rocm-cmake`
Install the default variants and the latest version of `rocm-cmake`.
```bash
spack install rocm-cmake
```
To install a specific version of `rocm-cmake`, use:
```bash
spack install rocm-cmake@<version number>
```
For example, `spack install rocm-cmake@5.2.0`
2. `info`
The `info**` command displays basic package information. It shows the preferred, safe, and
deprecated versions, in addition to the available variants. It also shows the dependencies with other
packages.
```bash
spack info mivisionx
```
For example:
```bash
root@[ixt-rack-104:/spack\#](http://ixt-rack-104/spack) spack info mivisionx
CMakePackage: mivisionx
Description:
MIVisionX toolkit is a set of comprehensive computer vision and machine
intelligence libraries, utilities, and applications bundled into a
single toolkit.
Homepage: <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX>
Preferred version:
5.3.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.3.0.tar.gz>
Safe versions:
5.3.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.3.0.tar.gz>
5.2.3 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.2.3.tar.gz>
5.2.1 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.2.1.tar.gz>
5.2.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.2.0.tar.gz>
5.1.3 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.1.3.tar.gz>
5.1.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.1.0.tar.gz>
5.0.2 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.0.2.tar.gz>
5.0.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-5.0.0.tar.gz>
4.5.2 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.5.2.tar.gz>
4.5.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.5.0.tar.gz>
Deprecated versions:
4.3.1 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.3.1.tar.gz>
4.3.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.3.0.tar.gz>
4.2.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.2.0.tar.gz>
4.1.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.1.0.tar.gz>
4.0.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-4.0.0.tar.gz>
3.10.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-3.10.0.tar.gz>
3.9.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-3.9.0.tar.gz>
3.8.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-3.8.0.tar.gz>
3.7.0 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/rocm-3.7.0.tar.gz>
1.7 <https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/archive/1.7.tar.gz>
Variants:
Name [Default] When Allowed values Description
==================== ==== ==================== ==================================
build_type [Release] -- Release, Debug, CMake build type
RelWithDebInfo
hip [on] -- on, off Use HIP as backend
ipo [off] -- on, off CMake interprocedural optimization
opencl [off] -- on, off Use OPENCL as the backend
Build Dependencies:
cmake ffmpeg libjpeg-turbo miopen-hip miopen-opencl miopengemm opencv openssl protobuf rocm-cmake rocm-opencl
Link Dependencies:
miopen-hip miopen-opencl miopengemm openssl rocm-opencl
Run Dependencies:
None
root@[ixt-rack-104:/spack\#](http://ixt-rack-104/spack)
```
## Installing variants for ROCm components
The variants listed above indicate that the `mivisionx` package is built by default with
`build_type=Release` and the `hip` backend, and without the `opencl` backend. `build_type=Debug` and
`RelWithDebInfo`, with `opencl` and without `hip`, are also supported.
For example:
```bash
spack install mivisionx build_type=Debug (Backend will be hip since it is the default one)
spack install mivisionx+opencl build_type=Debug (Backend will be opencl and hip will be disabled as per the conflict defined in recipe)
```
* `spack spec` command
To display the dependency tree, the `spack spec` command can be used with the same format.
For example:
```bash
root@[ixt-rack-104:/spack\#](http://ixt-rack-104/spack) spack spec mivisionx
Input spec
--------------------------------
mivisionx
Concretized
--------------------------------
mivisionx@5.3.0%gcc@9.4.0+hip\~ipo\~opencl build_type=Release arch=linux-ubuntu20.04-skylake_avx512
```
## Creating an environment
You can create an environment with all the required components of your version.
1. In the root folder, create a new folder when you can create a `.yaml` file. This file is used to
create an environment.
```bash
* mkdir /localscratch
* cd /localscratch
* vi sample.yaml
```
2. Add all the required components in the `sample.yaml` file:
```bash
* spack:
* concretization: separately
* packages:
* all:
* compiler: [gcc@8.5.0]
* specs:
* - matrix:
* - ['%gcc@8.5.0\^cmake@3.19.7']
* - [rocm-cmake@5.3.2, rocm-dbgapi@5.3.2, rocm-debug-agent@5.3.2, rocm-gdb@5.3.2,
* rocminfo@5.3.2, rocm-opencl@5.3.2, rocm-smi-lib@5.3.2, rocm-tensile@5.3.2, rocm-validation-suite@4.3.1,
* rocprim@5.3.2, rocprofiler-dev@5.3.2, rocrand@5.3.2, rocsolver@5.3.2, rocsparse@5.3.2,
* rocthrust@5.3.2, roctracer-dev@5.3.2]
* view: true
```
3. Once you've created the `.yaml` file, you can use it to create an environment.
```bash
* spack env create -d /localscratch/MyEnvironment /localscratch/sample.yaml
```
4. Activate the environment.
```bash
* spack env activate /localscratch/MyEnvironment
```
5. Verify that you want all the component versions.
```bash
* spack find - this command will list out all components been in the environment (and 0 installed )
```
6. Install all the components in the `.yaml` file.
```bash
* cd /localscratch/MyEnvironment
* spack install -j 50
```
7. Check that all components are successfully installed.
```bash
* spack find
```
8. If any modification is made to the `.yaml` file, you must deactivate the existing environment and create a new one in order for the modications to be reflected.
To deactivate, use:
```bash
* spack env deactivate
```
## Create and apply a patch before installation
Spack installs ROCm packages after pulling the source code from GitHub and building it locally. In
order to build a component with any modification to the source code, you must generate a patch and
apply it before the build phase.
To generate a patch and build with the changes:
1. Stage the source code.
```bash
spack stage hip@5.2.0 (This will pull the 5.2.0 release version source code of hip and display the path to spack-src directory where entire source code is available)
root@[ixt-rack-104:/spack#](http://ixt-rack-104/spack) spack stage hip@5.2.0
==> Fetching <https://github.com/ROCm-Developer-Tools/HIP/archive/rocm-5.2.0.tar.gz>
==> Fetching <https://github.com/ROCm-Developer-Tools/hipamd/archive/rocm-5.2.0.tar.gz>
==> Fetching <https://github.com/ROCm-Developer-Tools/ROCclr/archive/rocm-5.2.0.tar.gz>
==> Moving resource stage
source: /tmp/root/spack-stage/resource-hipamd-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src/
destination: /tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src/hipamd
==> Moving resource stage
source: /tmp/root/spack-stage/resource-opencl-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src/
destination: /tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src/opencl
==> Moving resource stage
source: /tmp/root/spack-stage/resource-rocclr-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src/
destination: /tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src/rocclr
==> Staged hip in /tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7
```
2. Change directory to `spack-src` inside the staged directory.
```bash
root@[ixt-rack-104:/spack#cd /tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7](http://ixt-rack-104/spack)
root@[ixt-rack-104:/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7#](http://ixt-rack-104/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7) cd spack-src/
```
3. Create a new Git repository.
```bash
root@[ixt-rack-104:/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src#](http://ixt-rack-104/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src) git init
```
4. Add the entire directory to the repository.
```bash
root@[ixt-rack-104:/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src#](http://ixt-rack-104/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src) git add .
```
5. Make the required changes to the source code.
```bash
root@[ixt-rack-104:/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src#](http://ixt-rack-104/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src) vi hipamd/CMakeLists.txt (Make required changes in the source code)
```
6. Generate the patch using the `git diff` command.
```bash
diff > /spack/var/spack/repos/builtin/packages/hip/0001-modifications.patch
```
7. Update the recipe with the patch file name and any conditions you want to apply.
```bash
root@[ixt-rack-104:/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src#](http://ixt-rack-104/tmp/root/spack-stage/spack-stage-hip-5.2.0-wzo5y6ysvmadyb5mvffr35galb6vjxb7/spack-src) spack edit hip
```
Provide the patch file name and the conditions for the patch:
`patch("0001-modifications.patch", when="@5.2.0")`
Spack applies `0001-modifications.patch` on the `5.2.0` release code before starting the `hip` build.
After each modification, you must update the recipe. If there is no change to the recipe, run
`touch /spack/var/spack/repos/builtin/packages/hip/package.py`

View File

@@ -47,23 +47,23 @@ their own performance testing for additional tuning.
:gutter: 1
:::{grid-item-card}
**[AMD Instinct™ MI200](./mi200)**
**[AMD Instinct™ MI200](./tuning-guides/mi200)**
This chapter goes through how to configure your AMD Instinct™ MI200 accelerated
compute nodes to get the best performance out of them.
* [Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/instinct-mi200-cdna2-instruction-set-architecture.pdf)
* [Instruction Set Architecture (ISA)](https://www.amd.com/system/files/TechDocs/instinct-mi200-cdna2-instruction-set-architecture.pdf)
* [White paper](https://www.amd.com/system/files/documents/amd-cdna2-white-paper.pdf)
:::
:::{grid-item-card}
**[AMD Instinct™ MI100](./mi100)**
**[AMD Instinct™ MI100](./tuning-guides/mi100)**
This chapter briefly reviews hardware aspects of the AMD Instinct™ MI100
accelerators and the CDNA™ 1 architecture that is the foundation of these GPUs.
* [Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/instinct-mi100-cdna1-shader-instruction-set-architecture%C2%A0.pdf)
* [ISA](https://www.amd.com/system/files/TechDocs/instinct-mi100-cdna1-shader-instruction-set-architecture%C2%A0.pdf)
* [White paper](https://www.amd.com/system/files/documents/amd-cdna-whitepaper.pdf)
:::
@@ -87,12 +87,12 @@ their full potential.
:gutter: 1
:::{grid-item-card}
**[AMD Radeon™ PRO W6000 and V620](./w6000-v620)**
**[AMD Radeon™ PRO W6000 and V620](./tuning-guides/w6000-v620)**
This chapter describes the AMD GPUs with RDNA™ 2 architecture, namely AMD Radeon
PRO W6800 and AMD Radeon PRO V620
* [AMD RDNA2 Instruction Set Architecture](https://www.amd.com/system/files/TechDocs/rdna2-shader-instruction-set-architecture.pdf)
* [AMD RDNA2 ISA](https://www.amd.com/system/files/TechDocs/rdna2-shader-instruction-set-architecture.pdf)
* [White paper](https://www.amd.com/system/files/documents/rdna2-explained-radeon-pro-W6000.pdf)
:::

View File

@@ -358,11 +358,11 @@ installed.
## System management
For a complete guide on how to install/manage/uninstall ROCm on Linux, refer to
[Installing ROCm on Linux](../../tutorials/install/linux/index). For verifying that the
[Installing ROCm on Linux](../../install/linux/install.md). For verifying that the
installation was successful, refer to
{ref}`verifying-kernel-mode-driver-installation` and
[Validation Tools](../../reference/compilers-tools/validation-tools). Should verification
fail, consult the [System Debugging Guide](../system-debugging).
[Validation Tools](../../reference/library-index.md). Should verification
fail, consult the [System Debugging Guide](../system-debugging.md).
(mi100-hw-verification)=
@@ -400,7 +400,7 @@ The previous command shows the system structure in four blocks:
To query the compute capabilities of the GPU devices, the `rocminfo` command is
available with the AMD ROCm™ platform. It lists specific details about the GPU
devices, including but not limited to the number of compute units, width of the
SIMD pipelines, memory information, and instruction set architecture:
SIMD pipelines, memory information, and Instruction Set Architecture:
![rocminfo output fragment on an 8*MI100 system](../../data/how-to/tuning-guides/tuning003.png "rocminfo output fragment on an 8*MI100 system")

View File

@@ -343,11 +343,11 @@ installed.
## System management
For a complete guide on how to install/manage/uninstall ROCm on Linux, refer to
[Installing ROCm on Linux](../../tutorials/install/linux/index). For verifying that the
[Installing ROCm on Linux](../../install/linux/install.md). For verifying that the
installation was successful, refer to
{ref}`verifying-kernel-mode-driver-installation` and
[Validation Tools](../../reference/compilers-tools/validation-tools). Should verification
fail, consult the [System Debugging Guide](../system-debugging).
[Validation Tools](../../reference/library-index.md). Should verification
fail, consult the [System Debugging Guide](../system-debugging.md).
(mi200-hw-verification)=
@@ -385,7 +385,7 @@ fabric connections between the system components, use:
To query the compute capabilities of the GPU devices, use `rocminfo` command. It
lists specific details about the GPU devices, including but not limited to the
number of compute units, width of the SIMD pipelines, memory information, and
instruction set architecture:
Instruction Set Architecture (ISA):
![rocminfo output fragment on an 8*MI200 system](../../data/how-to/tuning-guides/tuning010.png "'rocminfo' output fragment on an 8*MI200 system")

View File

@@ -5,7 +5,7 @@
This chapter reviews system settings that are required to configure the system
for ROCm virtualization on RDNA2-based AMD Radeon™ PRO GPUs. Installing ROCm on
Bare Metal follows the routine ROCm
[installation procedure](../../tutorials/install/linux/index).
[installation procedure](../../install/linux/install.md).
To enable ROCm virtualization on V620, one has to setup Single Root I/O
Virtualization (SR-IOV) in the BIOS via setting found in the following
@@ -160,6 +160,6 @@ First, assign GPU virtual function (VF) to VM using the following steps.
Then start the VM.
Finally install ROCm on the virtual machine (VM). For detailed instructions,
refer to the [ROCm Installation Guide](../../tutorials/install/index). For any
refer to the [ROCm Installation Guide](../../install/linux/install.md). For any
issue encountered during installation, write to us
[here](mailto:CloudGPUsupport@amd.com).

View File

@@ -5,81 +5,109 @@ resources to learn more about our products and what we support:
* [What is ROCm?](./what-is-rocm.md)
* [What's new?](about/whats-new/whats-new)
* [Compatibility & support](./about/compatibility/index.md)
* [Release notes](./about/release-notes.md)
Our documentation is divided into four main categories:
Our documentation is organized into the following categories:
::::{grid} 1 2 2 2
:class-container: rocm-doc-grid
:::{grid-item-card}
:padding: 2
**[Tutorials](./tutorials/index.md)**
**Installation**
Instructional material
Installation guides
^^^
* [Installing ROCm](./tutorials/install/index.md)
* [Installing MAGMA](./tutorials/install/magma-install.md)
* [Installing PyTorch](./tutorials/install/pytorch-install.md)
* [Installing TensorFlow](./tutorials/install/tensorflow-install.md)
* Linux
* [Quick-start (Linux)](./install/linux/install-quick.md)
* [Linux install guide](./install/linux/install.md)
* [Package manager integration](./install/linux/package-manager-integration.md)
* Windows
* [Quick-start (Windows)](./install/windows/install-quick.md)
* [Windows install guide](./install/windows/install.md)
* [Application deployment guidelines](./install/windows/windows-app-deployment-guidelines.md)
* [Deploy ROCm Docker containers](./install/docker.md)
* [PyTorch for ROCm](./install/pytorch-install.md)
* [TensorFlow for ROCm](./install/tensorflow-install.md)
* [MAGMA for ROCm](./install/magma-install.md)
:::
:::{grid-item-card}
:padding: 2
**Compatibility & Support**
ROCm compatibility information
^^^
* [Linux (GPU & OS)](./about/compatibility/linux-support.md)
* [Windows (GPU & OS)](./about/compatibility/windows-support.md)
* [Third-party](./about/compatibility/3rd-party-support-matrix.md)
* [User/kernel space](./about/compatibility/user-kernel-space-compat-matrix.md)
* [Docker](./about/compatibility/docker-image-support-matrix.md)
* [OpenMP](./about/compatibility/openmp.md)
:::
:::{grid-item-card}
:padding: 2
**How-to**
Task-oriented walkthroughs
^^^
* [System tuning for various architectures](./how-to/tuning-guides.md)
* [MI100](./how-to/tuning-guides/mi100.md)
* [MI200](./how-to/tuning-guides/mi200.md)
* [RDNA2](./how-to/tuning-guides/w6000-v620.md)
* [Setting up for deep learning with ROCm](./how-to/deep-learning-rocm.md)
* [GPU-enabled MPI](./how-to/gpu-enabled-mpi.md)
* [System level debugging](./how-to/system-debugging.md)
* [ROCm & Spack](./how-to/spack-intro.md)
* [GitHub examples](https://github.com/amd/rocm-examples)
:::
:::{grid-item-card}
:padding: 2
**[How-to](./how-to/index.md)**
Task-oriented walkthroughs
^^^
* [System tuning for various architectures](./how-to/tuning-guides/index.md)
* [GPU-enabled MPI](./how-to/gpu-enabled-mpi.md)
* [Setting up for deep learning with ROCm](./how-to/deep-learning-rocm.md)
* [System level debugging](./how-to/system-debugging.md)
:::
:::{grid-item-card}
:padding: 2
**[Reference](./reference/index.md)**
**Reference**
Collated information
^^^
* [Libraries](./reference/libraries/index.md)
* [Math libraries](./reference/libraries/gpu-libraries/math.md)
* [C++ primitives libraries](./reference/libraries/gpu-libraries/c++primitives.md)
* [Communication libraries](./reference/libraries/gpu-libraries/communication.md)
* [Compilers & tools](./reference/compilers-tools/index.md)
* [Management tools](./reference/compilers-tools/management-tools.md)
* [Validation tools](./reference/compilers-tools/validation-tools.md)
* [HIP](./reference/hip.md)
* [OpenMP](./reference/openmp/openmp.md)
* [API Libraries](./reference/library-index.md)
:::
:::{grid-item-card}
:padding: 2
**[Conceptual](./conceptual/index.md)**
**Conceptual**
Topic overviews & background information
^^^
* [Compiler disambiguation](./conceptual/compiler-disambiguation.md)
* [Using CMake](./conceptual/cmake-packages.rst)
* [Linux folder structure reorganization](./conceptual/file-reorg.md)
* [GPU isolation techniques](./conceptual/gpu-isolation.md)
* [GPU architecture](./conceptual/gpu-arch.md)
* [MI100](./conceptual/gpu-arch/mi100.md)
* [MI200](./conceptual/gpu-arch/mi200-performance-counters.md)
* [MI250](./conceptual/gpu-arch/mi250.md)
* [GPU memory](./conceptual/gpu-memory.md)
* [Compiler disambiguation](./conceptual/compiler-disambiguation.md)
* [File structure (Linux FHS)](./conceptual/file-reorg.md)
* [GPU isolation techniques](./conceptual/gpu-isolation.md)
* [LLVN ASan](./conceptual/using-gpu-sanitizer.md)
* [Using CMake](./conceptual/cmake-packages.rst)
* [ROCm & PCIe atomics](./conceptual/More-about-how-ROCm-uses-PCIe-Atomics.rst)
* [Inception v3 with PyTorch](./conceptual/ai-pytorch-inception.md)
* [Inference optimization with MIGraphX](./conceptual/ai-migraphx-optimization.md)
* [OpenMP support in ROCm](./about/compatibility/openmp.md)
:::
::::
We welcome collaboration! If you'd like to contribute to our documentation, you can find instructions
on our [Contributing to ROCm](./contribute/index.md) page. Known issues are listed on
on our [Contribute to ROCm docs](./contribute/index.md) page. Known issues are listed on
[GitHub](https://github.com/RadeonOpenCompute/ROCm/labels/Verified%20Issue).
Licensing information for all ROCm components is listed on our [Licensing](./about/license.md) page.

View File

@@ -1,7 +1,7 @@
# Linux quick-start installation guide
For a quick summary on installing ROCm on Linux, follow the steps listed on this page. If you
want a more in-depth installation guide, see [Installing ROCm on Linux](../install/linux/index.md).
want a more in-depth installation guide, see [Installing ROCm on Linux](./install.md).
## Add repositories
@@ -9,7 +9,7 @@ want a more in-depth installation guide, see [Installing ROCm on Linux](../insta
:::::{tab-item} Ubuntu
:sync: ubuntu
::::{rubric} 1. Download and convert the package signing key
::::{rubric} 1. Download and convert the package signing key.
::::
```shell
@@ -22,7 +22,7 @@ wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | \
gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null
```
::::{rubric} 2. Add the repositories
::::{rubric} 2. Add the repositories.
::::
::::{tab-set}
@@ -60,7 +60,7 @@ EOF
:::
::::
::::{rubric} 3. Update the list of packages
::::{rubric} 3. Update the list of packages.
::::
```shell
@@ -72,7 +72,7 @@ sudo apt update
:::::{tab-item} Red Hat Enterprise Linux
:sync: RHEL
::::{rubric} 1. Add the repositories
::::{rubric} 1. Add the repositories.
::::
::::{tab-set}
@@ -212,7 +212,7 @@ EOF
:::
::::
::::{rubric} 2. Clean cached files from enabled repositories
::::{rubric} 2. Clean cached files from enabled repositories.
::::
```shell
@@ -224,7 +224,7 @@ sudo yum clean all
:::::{tab-item} SUSE Linux Enterprise Server
:sync: SLES
::::{rubric} 1. Add the repositories
::::{rubric} 1. Add the repositories.
::::
::::{tab-set}
@@ -284,7 +284,7 @@ EOF
:::
::::
::::{rubric} 2. Update the new repository
::::{rubric} 2. Update the new repository.
::::
```shell
@@ -365,7 +365,7 @@ sudo zypper install rocm-hip-libraries
## Reboot the system
Loading the new driver requires a reboot of the system.
Loading the new driver requires a system reboot.
```shell
sudo reboot

File diff suppressed because it is too large Load Diff

View File

@@ -17,7 +17,7 @@ All meta-packages exist in both versioned and non-versioned forms.
* Non-versioned packages For a single-version installation of the ROCm stack
* Versioned packages For multi-version installations of the ROCm stack
![ROCm release package naming](../../../../data/tutorials/install/linux/linux002.png "ROCm release package naming")
![ROCm release package naming](../../data/install/linux/linux002.png "ROCm release package naming")
The preceding image demonstrates the single and multi-version ROCm packages' naming
structure, including examples for various Linux distributions. See terms below:
@@ -57,7 +57,7 @@ of required packages and libraries.
* `rocm-hip-sdk` contains runtime components to deploy and execute HIP
applications.
![ROCm meta packages](../../../../data/tutorials/install/linux/linux003.png "ROCm meta packages")
![ROCm meta packages](../../data/install/linux/linux003.png "ROCm meta packages")
```{note}
`rocm-llvm` is not a meta-package but a single package that installs the ROCm
@@ -88,7 +88,7 @@ This section discusses the available meta-packages and their packages. The
following image visualizes the meta-packages and their associated packages in a
ROCm programming model.
![Associated packages](../../../../data/tutorials/install/linux/linux004.png "Associated packages")
![Associated packages](../../data/install/linux/linux004.png "Associated packages")
* Meta-packages can include another meta-package.
* `rocm-core` package is common across all the meta-packages.

View File

@@ -15,8 +15,8 @@ To install [PyTorch for ROCm](https://pytorch.org/blog/pytorch-for-amd-rocm-plat
For hardware, software, and third-party framework compatibility between ROCm and PyTorch, refer to:
* [GPU and OS support (Linux)](../../about/compatibility/linux-support.md)
* [Compatibility](../../about/compatibility/3rd-party-support-matrix.md)
* [GPU and OS support (Linux)](../about/compatibility/linux-support.md)
* [Compatibility](../about/compatibility/3rd-party-support-matrix.md)
## Using a Docker image with PyTorch pre-installed
@@ -76,7 +76,7 @@ table, choose ROCm from the _Compute Platform_ row.
**Option 2:**
Select a base OS Docker image (Check [OS compatibility](../../about/compatibility/linux-support.md))
Select a base OS Docker image (Check [OS compatibility](../about/compatibility/linux-support.md))
Pull selected base OS image (Ubuntu 20.04 for example)
@@ -90,12 +90,12 @@ table, choose ROCm from the _Compute Platform_ row.
docker run -it --device=/dev/kfd --device=/dev/dri --group-add video ubuntu:20.04
```
Install ROCm using the directions in the [Installation section](../install/linux/install-options.md).
Install ROCm using the directions in the [Installation section](./linux/install.md).
**Option 3:**
Install on bare metal. Check [OS compatibility](../../about/compatibility/linux-support.md) and install ROCm using the
directions in the [Installation section](../install/linux/install-options.md).
Install on bare metal. Check [OS compatibility](../about/compatibility/linux-support.md) and install ROCm using the
directions in the [Installation section](./linux/install.md).
2. Install the required dependencies for the wheels package.

View File

@@ -29,7 +29,7 @@ The following sections contain options for installing TensorFlow.
#### Option 1: using a Docker image
To install ROCm on bare metal, follow the section
[Installation (Linux)](../../tutorials/install/linux/os-native/install). The recommended option to
[Linux installation guide](../install/linux/install.md). The recommended option to
get a TensorFlow environment is through Docker.
Using Docker provides portability and access to a prebuilt Docker container that

View File

@@ -2,7 +2,7 @@
For a quick summary on installing ROCm (HIP SDK) on Windows, follow the steps listed on this page. If
you want a more in-depth installation guide, see
[Installing ROCm on Windows](../install/windows/index.md).
[Installing ROCm on Windows](./install.md).
## System requirements
@@ -17,38 +17,38 @@ compatible GPU is required. Please see the supported GPU guide for more details.
Download the installer from the
[HIP-SDK download page](https://www.amd.com/en/developer/rocm-hub/hip-sdk.html).
### Launching the installer
### Launch the installer
To launch the AMD HIP SDK Installer, click the **Setup** icon shown in the following image.
![Icon with AMD arrow logo and User Access Control Shield overlay](../../data/tutorials/install/windows/000-setup-icon.png "Setup Icon")
![Icon with AMD arrow logo and User Access Control Shield overlay](../../data/install/windows/000-setup-icon.png "Setup Icon")
The installer requires Administrator Privileges, so you may be greeted with a
User Access Control (UAC) pop-up. Click Yes.
![User Access Control pop-up](../../data/tutorials/install/windows/001-uac-dark.png "User Access Control pop-up")
![User Access Control pop-up](../../data/install/windows/001-uac-dark.png "User Access Control pop-up")
![User Access Control pop-up](../../data/tutorials/install/windows/001-uac-light.png "User Access Control pop-up")
![User Access Control pop-up](../../data/install/windows/001-uac-light.png "User Access Control pop-up")
The installer executable will temporarily extract installer packages to `C:\AMD`
which it will remove after installation completes. This extraction is signified
by the "Initializing install" window in the following image.
![Window with AMD arrow logo, futuristic background and progress counter](../../data/tutorials/install/windows/002-initializing.png "Installer initialization window")
![Window with AMD arrow logo, futuristic background and progress counter](../../data/install/windows/002-initializing.png "Installer initialization window")
The installer will then detect your system configuration to determine which installable components
are applicable to your system.
![Window with AMD arrow logo, futuristic background and activity indicator](../../data/tutorials/install/windows/003-detecting-system-config.png "Installer initialization window")
![Window with AMD arrow logo, futuristic background and activity indicator](../../data/install/windows/003-detecting-system-config.png "Installer initialization window")
### Customizing the install
### Customize the install
When the installer launches, it displays a window that lets the user customize
the installation. By default, all components are selected for installation.
Refer to the following image for an instance when the Select All option
is turned on.
![Window with AMD arrow logo, futuristic background and activity indicator](../../data/tutorials/install/windows/004-installer-window.png "Installer initialization window")
![Window with AMD arrow logo, futuristic background and activity indicator](../../data/install/windows/004-installer-window.png "Installer initialization window")
#### HIP SDK installer
@@ -105,18 +105,18 @@ You must perform a system restart for a complete installation of the
Display Driver.
```
### Installing components
### Install components
Please wait for the installation to complete during as shown in the following image.
![Window with AMD arrow logo, futuristic background and progress meter](../../data/tutorials/install/windows/012-install-progress.png "Installation progress")
![Window with AMD arrow logo, futuristic background and progress meter](../../data/install/windows/012-install-progress.png "Installation progress")
### Installation complete
Once the installation is complete, the installer window may prompt you for a
system restart. Click **Restart** at the lower right corner, shown in the following image.
![Window with AMD arrow logo, futuristic background and completion notice](../../data/tutorials/install/windows/013-install-complete.png "Installation complete")
![Window with AMD arrow logo, futuristic background and completion notice](../../data/install/windows/013-install-complete.png "Installation complete")
```{error}
Should the installer terminate due to unexpcted circumstances, or the user
@@ -125,7 +125,7 @@ forcibly terminates the installer, the temporary directory created under
folder (unless the user specifies `C:\AMD` as an install folder explicitly).
```
## Uninstallation
## Uninstall
All components, except visual studio plug-in should be uninstalled through
control panel -> Add/Remove Program. For visual studio extension uninstallation,
@@ -135,6 +135,6 @@ Uninstallation of the HIP SDK components can be done through the Windows
Settings app. Navigate to "Apps > Installed apps", click the "..." on the far
right next to the component to uninstall, and click "Uninstall".
![Installed apps section of the settings app showing installed HIP SDK components](../../data/tutorials/install/windows/014-uninstall-dark.png "Removing the SDK via the settings app")
![Installed apps section of the settings app showing installed HIP SDK components](../../data/install/windows/014-uninstall-dark.png "Removing the SDK via the settings app")
![Installed apps section of the settings app showing installed HIP SDK components](../../data/tutorials/install/windows/014-uninstall-light.png "Removing the SDK via the settings app")
![Installed apps section of the settings app showing installed HIP SDK components](../../data/install/windows/014-uninstall-light.png "Removing the SDK via the settings app")

View File

@@ -0,0 +1,258 @@
# Install HIP SDK on Windows
To install the HIP SDK on Windows, use the [quick-start guide](./install-quick.md) or follow the instructions below.
follow the instructions listed below.
**Topics:**
* [Prerequisites](#prerequisites)
* [Install HIP SDK](#install-hip-sdk)
* [Upgrade HIP SDK](#upgrade-hip-sdk)
* [Uninstall HIP SDK](#uninstall-hip-sdk)
## Prerequisites
Verify that your system meets all the installation requirements. The installation is only supported
only on specific host architectures, Windows Editions, and update versions.
The HIP SDK is supported on Windows 10 and 11. It can be installed on a
system without AMD GPUs to use the build toolchains, but to run HIP applications, a
compatible GPU is required. Please see the
[supported GPU guide](../../about/compatibility/windows-support.md) for more details.
::::{tab-set}
:::{tab-item} CLI
:sync: cli
1. Type the following command on your system from a PowerShell command-line interface (CLI):
```pwsh
Get-ComputerInfo | Format-Table CsSystemType,OSName,OSDisplayVersion
```
Running this command on a Windows system may result in the following output:
```output
CsSystemType OsName OSDisplayVersion
------------ ------ ----------------
x64-based PC Microsoft Windows 11 Pro 22H2
```
2. Confirm that the obtained information matches with those listed in {ref}`windows-support`.
:::
:::{tab-item} GUI
:sync: gui
1. Open the **Settings** app.
![Gear icon of the Windows Settings app](../../data/install/windows/000-settings-light.png "Windows Settings app icon")
2. Navigate to **System > About**.
![Settings app panel showing device and OS information](../../data/install/windows/001-about-light.png "Settings > About page")
3. Confirm that the obtained information matches {ref}`windows-support`.
:::
::::
## Install HIP SDK
::::{tab-set}
:::{tab-item} CLI
:sync: cli
CLI options are listed in the following table:
```{table}
:name: hip-sdk-cli-install
| **Install Option** | **Description** |
|:------------------|:---------------|
| `-install` | Command used to install packages, both driver and applications. No output to the screen. |
| `-install -boot` | Silent install with auto reboot. |
| `-install -log <absolute path>` | Write install result code to the specified log file. The specified log file must be on a local machine. Double quotes are needed if there are spaces in the log file path. |
| `-uninstall` | Command to uninstall all packages installed by this installer on the system. There is no option to specify which packages to uninstall. |
| `-uninstall -boot` | Silent uninstall with auto reboot. |
| `/?` or `/help` | Shows a brief description of all switch commands. |
```
```{note}
Unlike the GUI, the CLI doesn't support selectively installing parts of the SDK bundle.
```
To start the installation, follow these steps:
1. Download the installer from the
[HIP-SDK download page](https://www.amd.com/en/developer/rocm-hub/hip-sdk.html).
2. Launch the installer. Note that the installer is a graphical application with a `WinMain` entry
point, even when called on the command line. This means that the application lifetime is tied to a
window, even on headless systems where that window may not be visible.
```pwsh
Start-Process $InstallerExecutable -ArgumentList $InstallerArgs -NoNewWindow -Wait
```
```{important}
Running the installer requires Administrator Privileges.
```
To install all components:
```pwsh
Start-Process ~\Downloads\Setup.exe -ArgumentList '-install','-log',"${env:USERPROFILE}\installer_log.txt" -NoNewWindow -Wait
```
:::
:::{tab-item} GUI
:sync: gui
The HIP SDK installation options are listed in the following table.
```{table}
:name: hip-sdk-options
| **HIP Components** | **Install Type** | **Additional Options** |
|:------------------|:----------------|:----------------------|
| HIP SDK Core | 5.5.0 | Install location |
| HIP Libraries | Full, Partial, None | Runtime, Development (Libs and headers) |
| HIP Runtime Compiler | Full, Partial, None | Runtime, Development (Headers) |
| HIP Ray Tracing | Full, Partial, None | Runtime, Development (Headers) |
| Visual Studio Plugin | Full, Partial, None | Visual Studio 2017, 2019, 2022 Plugin |
```
```{note}
The Select/DeSelect All option only applies to the installation of HIP SDK
components. To install the bundled AMD Display Driver, manually select the
install type.
```
```{tip}
Should you only wish to install a few select components,
DeSelecting All and then picking the individual components may be more
convenient.
```
The HIP SDK installer bundles an AMD Radeon Software PRO 23.10 installer. The
supported install options are summarized in the following table:
```{table}
:name: display-driver-install-options
| **Install Option** | **Description** |
|:------------------|:---------------|
| Install Location | Location on disk to store driver files. |
| Install Type | The breadth of components to be installed. |
| Factory Reset (Optional) | A Factory Reset will remove all prior versions of AMD HIP SDK and drivers. You will not be able to roll back to previously installed drivers. |
```
```{table} AMD Display Driver Install Types
:name:
| **Install Type** | **Description** |
|:----------------|:---------------|
| Full Install | Provides all AMD Software features and controls for gaming, recording, streaming, and tweaking the performance on your graphics hardware. |
| Minimal Install | Provides only the basic controls for AMD Software features and does not include advanced features such as performance tweaking or recording and capturing content. |
| Driver Only | Provides no user interface for AMD Software features. |
```
```{note}
You must perform a system restart for a complete installation of the
Display Driver.
```
To start the installation, follow these steps:
1. Download the installer from the
[HIP-SDK download page](https://www.amd.com/en/developer/rocm-hub/hip-sdk.html).
2. Launch the installer by clicking the **Setup** icon.
![Icon with AMD arrow logo and User Access Control Shield overlay](../../data/install/windows/000-setup-icon.png "Setup Icon")
The installer requires Administrator Privileges, so you may be greeted with a
User Access Control (UAC) pop-up. Click Yes.
![User Access Control pop-up](../../data/install/windows/001-uac-light.png "User Access Control pop-up")
The installer executable temporarily extracts installer packages to `C:\AMD`; it removes these after the
installation completes.
![Window with AMD arrow logo, futuristic background and progress counter](../../data/install/windows/002-initializing.png "Installer initialization window")
The installer detects your system configuration to determine which installable components
are applicable to your system.
![Window with AMD arrow logo, futuristic background and activity indicator](../../data/install/windows/003-detecting-system-config.png "Installer initialization window")
3. Customize your installation. When the installer launches, it displays a window that lets you customize
your installation. By default, all components are selected.
![Window with AMD arrow logo, futuristic background and activity indicator](../../data/install/windows/004-installer-window.png "Installer initialization window")
4. Wait for the installation to complete.
![Window with AMD arrow logo, futuristic background and progress meter](../../data/install/windows/012-install-progress.png "Installation progress")
When installation is complete, the installer window may prompt you for a system restart.
![Window with AMD arrow logo, futuristic background and completion notice](../../data/install/windows/013-install-complete.png "Installation complete")
```{error}
If the installer terminates mid-installation, the temporary directory created under `C:\AMD` can be
safely removed. Installed components don't depend on this folder unless you explicitly choose this
as the install folder.
```
:::
::::
## Upgrade HIP SDK
To upgrade the HIP SDK, you can run the installer for the newer version without uninstalling the
existing version. You can also uninstall the HIP SDK before installing the newest version.
## Uninstall HIP SDK
::::{tab-set}
:::{tab-item} CLI
:sync: cli
Launch the installer. Note that the installer is a graphical application with a `WinMain` entry
point, even when called on the command line. This means that the application lifetime is tied to a
window, even on headless systems where that window may not be visible.
```pwsh
Start-Process $InstallerExecutable -ArgumentList $InstallerArgs -NoNewWindow -Wait
```
```{important}
Running the installer requires Administrator Privileges.
```
To uninstall all components:
```pwsh
Start-Process ~\Downloads\Setup.exe -ArgumentList '-uninstall' -NoNewWindow -Wait
```
:::
:::{tab-item} GUI
:sync: gui
Uninstallation of HIP SDK components can be done through the Windows Settings app. Navigate to
"Apps > Installed apps" and click the ellipsis (...) on the far right next to the component you want to uninstall. Click "Uninstall".
![Installed apps section of the settings app showing installed HIP SDK components](../../data/install/windows/014-uninstall-light.png "Removing the SDK via the settings app")
For visual studio extension uninstallation, refer to
<https://github.com/ROCm-Developer-Tools/HIP-VS/blob/master/README.md>.
:::
::::

View File

@@ -1 +0,0 @@
# Development tools

View File

@@ -1,53 +0,0 @@
# ROCm compilers and tools
:::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card} {doc}`ROCdbgapi <rocdbgapi:index>`
The AMD Debugger API is a library that provides all the support necessary for a
debugger and other tools to perform low level control of the execution and
inspection of execution state of AMD's commercially available GPU architectures.
* [GitHub](https://github.com/ROCm-Developer-Tools/ROCdbgapi/)
:::
:::{grid-item-card}
**[ROCmCC](../rocmcc/rocmcc.md)**
ROCmCC is a Clang/LLVM-based compiler. It is optimized for high-performance
computing on AMD GPUs and CPUs and supports various heterogeneous programming
models such as HIP, OpenMP, and OpenCL.
:::
:::{grid-item-card} {doc}`ROCgdb <rocgdb:index>`
This is ROCgdb, the ROCm source-level debugger for Linux, based on GDB, the GNU source-level debugger.
* [GitHub](https://github.com/ROCm-Developer-Tools/ROCgdb/)
:::
:::{grid-item-card} {doc}`ROCProfiler <rocprofiler:rocprof>`
ROC profiler library. Profiling with performance counters and derived metrics. Library supports GFX8/GFX9. Hardware specific low-level performance analysis interface for profiling of GPU compute applications. The profiling includes hardware performance counters with complex performance metrics.
* [GitHub](https://github.com/ROCm-Developer-Tools/rocprofiler/)
:::
:::{grid-item-card} {doc}`ROCTracer <roctracer:index>`
Callback/Activity Library for Performance tracing AMD GPUs
* [GitHub](https://github.com/ROCm-Developer-Tools/roctracer)
:::
:::::
## See also
* [Compiler disambiguation](../../conceptual/compiler-disambiguation.md)

View File

@@ -1,34 +0,0 @@
# Management tools
:::::{grid} 1 1 3 3
:gutter: 1
:::{grid-item-card} {doc}`AMD SMI <amdsmi:index>`
The AMD System Management Interface Library, or AMD SMI library, is a C library for Linux that provides a user space interface for applications to monitor and control AMD devices.
* [GitHub](https://github.com/RadeonOpenCompute/amdsmi)
* [Examples](https://github.com/amd/go_amd_smi#example)
:::
:::{grid-item-card} {doc}`ROCm SMI LIB <rocm_smi_lib:index>`
This tool acts as a command-line interface (CLI) for manipulating and monitoring the AMD GPU kernel, and is intended to replace and deprecate the existing `rocm_smi.py` CLI tool. It uses `ctypes` to call the `rocm_smi_lib` API.
* [GitHub](https://github.com/RadeonOpenCompute/rocm_smi_lib)
* [Examples](https://github.com/RadeonOpenCompute/rocm_smi_lib/tree/master/python_smi_tools)
:::
:::{grid-item-card} {doc}`ROCm Data Center Tool <rdc:index>`
The ROCm™ Data Center Tool simplifies the administration and addresses key infrastructure challenges in AMD GPUs in cluster and data center environments.
* [GitHub](https://github.com/RadeonOpenCompute/rdc)
* [Changelog](https://github.com/RadeonOpenCompute/rdc/blob/master/CHANGELOG.md)
* [Examples](https://github.com/RadeonOpenCompute/rdc/tree/master/example)
:::
:::::

View File

@@ -1,25 +0,0 @@
# Validation tools
:::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card} {doc}`RVS <rocmvalidationsuite:index>`
The ROCm Validation Suite is a system administrators and cluster manager's tool for detecting and troubleshooting common problems affecting AMD GPU(s) running in a high-performance computing environment, enabled using the ROCm software stack on a compatible platform.
* [GitHub](https://github.com/ROCm-Developer-Tools/ROCmValidationSuite)
* [Changelog](https://github.com/ROCm-Developer-Tools/ROCmValidationSuite/blob/master/CHANGELOG.md)
:::
:::{grid-item-card} {doc}`TransferBench <transferbench:index>`
TransferBench is a simple utility capable of benchmarking simultaneous transfers between user-specified devices (CPUs/GPUs).
* [GitHub](https://github.com/ROCmSoftwarePlatform/TransferBench/)
* [Changelog](https://github.com/ROCmSoftwarePlatform/TransferBench/blob/develop/CHANGELOG.md)
* {doc}`transferbench:examples/index`
:::
:::::

View File

@@ -1,38 +0,0 @@
# HIP
HIP is both AMD's GPU programming language extension and the GPU runtime. This
page introduces the HIP runtime and other HIP libraries and tools.
## HIP runtime
:::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card} {doc}`HIP runtime <hip:index>`
The HIP runtime is used to enable GPU acceleration for all HIP language based
products.
* [GitHub](https://github.com/ROCm-Developer-Tools/HIP)
* [Examples](https://github.com/amd/rocm-examples/tree/develop/HIP-Basic)
:::
:::::
## Porting tools
:::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card} {doc}`HIPIFY <hipify:index>`
HIPIFY assists with porting applications from based on CUDA to the HIP runtime.
Supported CUDA APIs are documented here as well.
* [GitHub](https://github.com/ROCm-Developer-Tools/HIPIFY/)
* [Changelog](https://github.com/ROCm-Developer-Tools/HIPIFY/blob/amd-staging/CHANGELOG.md)
:::
:::::

View File

@@ -1,102 +0,0 @@
# Reference material
## ROCm software groups
:::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card}
**[HIP](./hip.md)**
HIP is both AMD's GPU programming language extension and the GPU runtime.
* [HIP Examples](https://github.com/amd/rocm-examples/tree/develop/HIP-Basic)
* {doc}`HIPIFY <hipify:index>`
:::
:::{grid-item-card}
**[Math libraries](./libraries/gpu-libraries/math.md)**
HIP Math Libraries support the following domains:
* [Linear Algebra Libraries](./libraries/gpu-libraries/math-linear-algebra.md)
* [Fast Fourier transforms (FFTs)](./libraries/gpu-libraries/math-fft.md)
* [Random Numbers](./libraries/gpu-libraries/rand.md)
:::
:::{grid-item-card}
**[C++ primitive libraries](./libraries/gpu-libraries/c++primitives.md)**
ROCm template libraries for C++ primitives and algorithms are as follows:
* {doc}`rocPRIM <rocprim:index>`
* {doc}`rocThrust <rocthrust:index>`
* {doc}`hipCUB <hipcub:index>`
* {doc}`hipTensor <hiptensor:index>`
:::
:::{grid-item-card} [Communication libraries](./libraries/gpu-libraries/communication.md)
Inter and intra-node communication is supported by the following projects:
* {doc}`RCCL <rccl:index>`
:::
:::{grid-item-card}
**Artificial intelligence**
Libraries related to artificial intelligence.
* {doc}`MIOpen <miopen:index>`
* {doc}`Composable Kernel <composable_kernel:index>`
* {doc}`MIGraphX <amdmigraphx:index>`
* {doc}`MIVisionX <mivisionx:README>`
* {doc}`ROCm Augmentation Library (rocAL) <rocal:README>`
:::
:::{grid-item-card}
**[OpenMP](./openmp/openmp.md)**
* [OpenMP support guide](./openmp/openmp.md)
:::
:::{grid-item-card}
**[Compilers and tools](./compilers-tools/index.md)**
* [ROCmCC](./rocmcc/rocmcc.md)
* {doc}`ROCdbgapi <rocdbgapi:index>`
* {doc}`ROCgdb <rocgdb:index>`
* {doc}`ROCProfiler <rocprofiler:rocprof>`
* {doc}`ROCTracer <roctracer:index>`
:::
:::{grid-item-card}
**[Management tools](./compilers-tools/management-tools.md)**
* {doc}`AMD SMI <amdsmi:index>`
* {doc}`ROCm SMI <rocm_smi_lib:index>`
* {doc}`ROCm Data Center Tool <rdc:index>`
:::
:::{grid-item-card}
**[Validation tools](./compilers-tools/validation-tools.md)**
* {doc}`ROCm Validation Suite <rocmvalidationsuite:index>`
* {doc}`TransferBench <transferbench:index>`
:::
:::{grid-item-card} **GPU architectures**
* [AMD Instinct MI200](../conceptual/gpu-arch/mi250.md)
* [AMD Instinct MI100](../conceptual/gpu-arch/mi100.md)
:::
:::::

View File

@@ -1,33 +0,0 @@
# Artificial intelligence libraries
::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card} {doc}`MIOpen <miopen:index>`
AMD's library for high performance machine learning primitives.
* [GitHub](https://github.com/ROCmSoftwarePlatform/MIOpen)
* [Changelog](https://github.com/ROCmSoftwarePlatform/MIOpen/blob/develop/CHANGELOG.md)
:::
:::{grid-item-card} {doc}`Composable Kernel <composable_kernel:index>`
Composable Kernel: Performance Portable Programming Model for Machine Learning Tensor Operators
* [GitHub](https://github.com/ROCmSoftwarePlatform/composable_kernel)
* [Changelog](https://github.com/ROCmSoftwarePlatform/composable_kernel/blob/develop/CHANGELOG.md)
:::
:::{grid-item-card} {doc}`MIGraphX <amdmigraphx:index>`
AMD MIGraphX is AMD's graph inference engine that accelerates machine learning model inference.
* [GitHub](https://github.com/ROCmSoftwarePlatform/AMDMIGraphX)
* [Changelog](https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/blob/develop/CHANGELOG.md)
:::
:::::

View File

@@ -1,53 +0,0 @@
# C++ primitive libraries
ROCm template libraries for algorithms are as follows:
:::::{grid} 1 1 3 3
:gutter: 1
:::{grid-item-card} {doc}`rocPRIM <rocprim:index>`
rocPRIM is an AMD GPU optimized template library of algorithm primitives, like
transforms, reductions, scans, etc. It also serves as a common back-end for
similar libraries found inside ROCm.
* [GitHub](https://github.com/ROCmSoftwarePlatform/rocPRIM/)
* [Changelog](https://github.com/ROCmSoftwarePlatform/rocPRIM/blob/develop/CHANGELOG.md)
* [Examples](https://github.com/amd/rocm-examples/tree/develop/Libraries/rocPRIM)
:::
:::{grid-item-card} {doc}`rocThrust <rocthrust:index>`
rocThrust is a template library of algorithm primitives with a Thrust-compatible
interface. Their CPU back-ends are identical, while the GPU back-end calls into
rocPRIM.
* [GitHub](https://github.com/ROCmSoftwarePlatform/rocThrust)
* [Changelog](https://github.com/ROCmSoftwarePlatform/rocThrust/blob/develop/CHANGELOG.md)
* [Examples](https://github.com/amd/rocm-examples/tree/develop/Libraries/rocThrust)
:::
:::{grid-item-card} {doc}`hipCUB <hipcub:index>`
hipCUB is a template library of algorithm primitives with a CUB-compatible
interface. It's back-end is rocPRIM.
* [GitHub](https://github.com/ROCmSoftwarePlatform/hipCUB)
* [Changelog](https://github.com/ROCmSoftwarePlatform/hipCUB/blob/develop/CHANGELOG.md)
* [Examples](https://github.com/amd/rocm-examples/tree/develop/Libraries/hipCUB)
:::
:::{grid-item-card} {doc}`hipTensor <hiptensor:index>`
hipTensor is AMD's C++ library for accelerating tensor primitives
based on the composable kernel library,
through general purpose kernel languages, like HIP C++.
* [GitHub](https://github.com/ROCmSoftwarePlatform/hipTensor)
:::
:::::

View File

@@ -1,19 +0,0 @@
# Communication libraries
:::::{grid} 1 1 1 1
:gutter: 1
:::{grid-item-card} {doc}`RCCL <rccl:index>`
RCCL (pronounced "Rickle") is a standalone library of standard collective communication routines for GPUs,
implementing all-reduce, all-gather, reduce, broadcast, reduce-scatter, gather, scatter, and all-to-all.
The collective operations are implemented using ring and tree algorithms and have been optimized for
throughput and latency.
* [GitHub](https://github.com/ROCmSoftwarePlatform/rccl)
* [Changelog](https://github.com/ROCmSoftwarePlatform/rocFFT/blob/develop/CHANGELOG.md)
* [Examples](https://github.com/ROCmSoftwarePlatform/rccl/tree/develop/tools)
:::
:::::

View File

@@ -1,28 +0,0 @@
# Fast Fourier transforms
ROCm libraries for fast Fourier transforms (FFTs) are as follows:
:::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card} {doc}`rocFFT <rocfft:index>`
rocFFT is an AMD GPU optimized library for FFT.
* [GitHub](https://github.com/ROCmSoftwarePlatform/rocFFT)
* [Changelog](https://github.com/ROCmSoftwarePlatform/rocFFT/blob/develop/CHANGELOG.md)
:::
:::{grid-item-card} {doc}`hipFFT <hipfft:index>`
hipFFT is a compatibility layer for GPU accelerated FFT optimized for AMD GPUs
using rocFFT. hipFFT allows for a common interface for other non AMD GPU
FFT libraries.
* [GitHub](https://github.com/ROCmSoftwarePlatform/hipFFT)
* [Changelog](https://github.com/ROCmSoftwarePlatform/hipFFT/blob/develop/CHANGELOG.md)
:::
:::::

View File

@@ -1,109 +0,0 @@
# Linear algebra libraries
ROCm libraries for linear algebra are as follows:
:::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card} {doc}`rocBLAS <rocblas:index>`
`rocBLAS` is an AMD GPU optimized library for BLAS (Basic Linear Algebra Subprograms).
* [GitHub](https://github.com/ROCmSoftwarePlatform/rocBLAS)
* [Changelog](https://github.com/ROCmSoftwarePlatform/rocBLAS/blob/develop/CHANGELOG.md)
* [Examples](https://github.com/amd/rocm-examples/tree/develop/Libraries/rocBLAS)
:::
:::{grid-item-card} {doc}`hipBLAS <hipblas:index>`
`hipBLAS` is a compatibility layer for GPU accelerated BLAS optimized for AMD GPUs
via `rocBLAS` and `rocSOLVER`. `hipBLAS` allows for a common interface for other GPU
BLAS libraries.
* [GitHub](https://github.com/ROCmSoftwarePlatform/hipBLAS)
* [Changelog](https://github.com/ROCmSoftwarePlatform/hipBLAS/blob/develop/CHANGELOG.md)
:::
:::{grid-item-card} {doc}`hipBLASLt <hipblaslt:index>`
`hipBLASLt` is a library that provides general matrix-matrix operations with a
flexible API and extends functionalities beyond traditional BLAS library.
`hipBLASLt` is exposed APIs in HIP programming language with an underlying
optimized generator as a back-end kernel provider.
* [GitHub](https://github.com/ROCmSoftwarePlatform/hipBLASLt)
* [Changelog](https://github.com/ROCmSoftwarePlatform/hipBLASLt/blob/develop/CHANGELOG.md)
:::
:::{grid-item-card} {doc}`rocALUTION <rocalution:index>`
`rocALUTION` is a sparse linear algebra library with focus on exploring
fine-grained parallelism on top of AMD's ROCm runtime and toolchains, targeting
modern CPU and GPU platforms.
* [GitHub](https://github.com/ROCmSoftwarePlatform/rocALUTION)
* [Changelog](https://github.com/ROCmSoftwarePlatform/rocALUTION/blob/develop/CHANGELOG.md)
:::
:::{grid-item-card} {doc}`rocWMMA <rocwmma:index>`
`rocWMMA` provides an API to break down mixed precision matrix multiply-accumulate
(MMA) problems into fragments and distributes these over GPU wavefronts.
* [GitHub](https://github.com/ROCmSoftwarePlatform/rocWMMA)
* [Changelog](https://github.com/ROCmSoftwarePlatform/rocWMMA/blob/develop/CHANGELOG.md)
:::
:::{grid-item-card} {doc}`rocSOLVER <rocsolver:index>`
`rocSOLVER` provides a subset of LAPACK (Linear Algebra Package) functionality on the ROCm platform.
* [GitHub](https://github.com/ROCmSoftwarePlatform/rocSOLVER)
* [Changelog](https://github.com/ROCmSoftwarePlatform/rocSOLVER/blob/develop/CHANGELOG.md)
:::
:::{grid-item-card} {doc}`hipSOLVER <hipsolver:index>`
`hipSOLVER` is a LAPACK marshalling library supporting both `rocSOLVER` and `cuSOLVER`
as backends whilst exporting a unified interface.
* [GitHub](https://github.com/ROCmSoftwarePlatform/hipSOLVER)
* [Changelog](https://github.com/ROCmSoftwarePlatform/hipSOLVER/blob/develop/CHANGELOG.md)
:::
:::{grid-item-card} {doc}`rocSPARSE <rocsparse:index>`
`rocSPARSE` is a library to provide BLAS for sparse computations.
* [GitHub](https://github.com/ROCmSoftwarePlatform/rocSPARSE)
* [Changelog](https://github.com/ROCmSoftwarePlatform/rocSOLVER/blob/develop/CHANGELOG.md)
:::
:::{grid-item-card} {doc}`hipSPARSE <hipsparse:index>`
`hipSPARSE` is a marshalling library to provide sparse BLAS functionality,
supporting both `rocSPARSE` and `cuSPARSE` as backends.
* [GitHub](https://github.com/ROCmSoftwarePlatform/hipSPARSE)
* [Changelog](https://github.com/ROCmSoftwarePlatform/hipSOLVER/blob/develop/CHANGELOG.md)
:::
:::{grid-item-card} {doc}`hipSPARSELt <hipsparselt:index>`
`hipSPARSE` is a marshalling library to provide sparse BLAS functionality,
supporting both `rocSPARSELt` and `cuSPARSELt` as backends.
* [GitHub](https://github.com/ROCmSoftwarePlatform/hipSPARSELt)
:::
:::::

View File

@@ -1,50 +0,0 @@
# Math libraries
AMD provides various math domain and support libraries as part of ROCm.
## rocLIB vs. hipLIB
Several libraries are prefixed with either "roc" or "hip".
The rocLIB variants (such as rocRAND, rocBLAS) are tested and optimized for AMD hardware using supported toolchains.
The hipLIB variants (such as hipRAND, hipBLAS) are compatibility layers that provide an interface akin to their
cuLIB (such as cuRAND, cuBLAS) variants while performing static dispatching of API calls to the appropriate
vendor libraries as their back-ends. Due to their static dispatch nature, support for either vendor is decided
at compile-time of the hipLIB in question. For dynamic dispatch between vendor implementations, refer to the
[Orochi](https://github.com/GPUOpen-LibrariesAndSDKs/Orochi) library.
::::{grid} 1 2 3 3
:gutter: 1
:::{grid-item-card}
**[Linear algebra libraries](./math-linear-algebra.md)**
* {doc}`rocBLAS <rocblas:index>`
* {doc}`hipBLAS <hipblas:index>`
* {doc}`hipBLASLt <hipblaslt:index>`
* {doc}`rocALUTION <rocalution:index>`
* {doc}`rocWMMA <rocwmma:index>`
* {doc}`rocSOLVER <rocsolver:index>`
* {doc}`hipSOLVER <hipsolver:index>`
* {doc}`rocSPARSE <rocsparse:index>`
* {doc}`hipSPARSE <hipsparse:index>`
* {doc}`hipSPARSELt <hipsparselt:index>`
:::
:::{grid-item-card}
**[Fast Fourier transforms (FFTs)](./math-fft.md)**
* {doc}`rocFFT <rocfft:index>`
* {doc}`hipFFT <hipfft:index>`
:::
:::{grid-item-card}
**[Random numbers](./rand.md)**
* {doc}`rocRAND <rocrand:index>`
* {doc}`hipRAND <hiprand:index>`
:::
::::

View File

@@ -1,27 +0,0 @@
# Random numbers
:::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card} {doc}`rocRAND <rocrand:index>`
rocRAND is an AMD GPU optimized library for pseudorandom number generators.
* [GitHub](https://github.com/ROCmSoftwarePlatform/rocRAND/)
* [Changelog](https://github.com/ROCmSoftwarePlatform/rocRAND/blob/develop/CHANGELOG.md)
* [Examples](https://github.com/amd/rocm-examples/tree/develop/Libraries/rocRAND)
:::
:::{grid-item-card} {doc}`hipRAND <hiprand:index>`
hipRAND is a compatibility layer for GPU accelerated pseudorandom number generation optimized for
AMD GPUs using rocRAND. hipRAND allows for a common interface for other non AMD GPU
pseudorandom number generation libraries.
* [GitHub](https://github.com/ROCmSoftwarePlatform/hipRAND/)
* [Changelog](https://github.com/ROCmSoftwarePlatform/hipRAND/blob/develop/CHANGELOG.md)
:::
:::::

View File

@@ -1,20 +0,0 @@
# ROCm libraries
::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card}
**[AI libraries](./ai-libraries.md)**
:::
:::{grid-item-card}
**[Math libraries](./gpu-libraries/math.md)**
:::
:::{grid-item-card}
**[Communication libraries](./gpu-libraries/communication.md)**
:::
::::

View File

@@ -0,0 +1,135 @@
# ROCm API libraries
::::{grid} 1 2 2 2
:class-container: rocm-doc-grid
:::{grid-item-card}
:padding: 2
**Artificial intelligence**
^^^
* {doc}`Composable Kernel <composable_kernel:index>`
* {doc}`MIOpen <miopen:index>`
* {doc}`MIGraphX <amdmigraphx:index>`
:::
:::{grid-item-card}
:padding: 2
**C++ primitives**
^^^
* {doc}`hipCUB <hipcub:index>`
* {doc}`hipTensor <hiptensor:index>`
* {doc}`rocPRIM <rocprim:index>`
* {doc}`rocThrust <rocthrust:index>`
:::
:::{grid-item-card}
:padding: 2
**Communication**
^^^
* {doc}`RCCL <rccl:index>`
:::
:::{grid-item-card}
:padding: 2
**Fast Fourier transforms (FFTs)**
^^^
* {doc}`hipFFT <hipfft:index>`
* {doc}`rocFFT <rocfft:index>`
:::
:::{grid-item-card}
:padding: 2
**HIP**
^^^
* {doc}`HIP runtime <hip:index>`
* {doc}`HIPIFY <hipify:index>`
:::
:::{grid-item-card}
:padding: 2
**Linear algebra**
^^^
* {doc}`hipBLAS <hipblas:index>`
* {doc}`hipBLASLt <hipblaslt:index>`
* {doc}`hipSOLVER <hipsolver:index>`
* {doc}`hipSPARSE <hipsparse:index>`
* {doc}`hipSPARSELt <hipsparselt:index>`
* {doc}`rocALUTION <rocalution:index>`
* {doc}`rocBLAS <rocblas:index>`
* {doc}`rocSOLVER <rocsolver:index>`
* {doc}`rocSPARSE <rocsparse:index>`
:::
:::{grid-item-card}
:padding: 2
**Matrix multiply**
^^^
* {doc}`rocWMMA <rocwmma:index>`
:::
:::{grid-item-card}
:padding: 2
**Performance analysis**
^^^
* [Performance tracing](https://github.com/ROCm-Developer-Tools/roctracer)
* {doc}`ROCProfiler <rocprofiler:rocprof>`
:::
:::{grid-item-card}
:padding: 2
**Random number generators**
^^^
* {doc}`hipRAND <hiprand:index>`
* {doc}`rocRAND <rocrand:index>`
:::
:::{grid-item-card}
:padding: 2
**Tools**
^^^
* {doc}`AMD debugger (ROCdbgapi) <rocdbgapi:index>`
* [ROCmCC](./rocmcc.md)
* {doc}`ROCm Data Center Tool <rdc:index>`
* {doc}`ROCm debugger (ROCgdb) <rocgdb:index>`
* {doc}`ROCm SMI LIB <rocm_smi_lib:index>`
* {doc}`ROCm Validation Suite <rocmvalidationsuite:index>`
* {doc}`ROCTracer <roctracer:index>`
* {doc}`TransferBench <transferbench:index>`
:::
::::
We welcome collaboration! If you'd like to contribute to our documentation, you can find instructions
on our [Contribute to ROCm docs](../contribute/index.md) page. Known issues are listed on
[GitHub](https://github.com/RadeonOpenCompute/ROCm/labels/Verified%20Issue).
Licensing information for all ROCm components is listed on our [Licensing](../about/license.md) page.

View File

@@ -2,228 +2,230 @@
# These comments will also be removed.
defaults:
numbered: False
maxdepth: 7
maxdepth: 6
root: index
subtrees:
- entries:
- file: what-is-rocm.md
title: What is ROCm?
subtrees:
- entries:
- file: rocm-a-z.md
title: ROCm A-Z
- file: about/whats-new/whats-new.md
title: What's new?
- file: tutorials/quick-start/index.md
title: Quick start
- caption: Installation
entries:
- file: install/linux/install-quick.md
title: Quick start (Linux)
- file: install/windows/install-quick.md
title: Quick start (Windows)
- file: install/linux/install.md
title: Linux install guide
subtrees:
- entries:
- file: tutorials/quick-start/linux.md
title: Linux
- file: tutorials/quick-start/windows.md
title: Windows
- file: about/compatibility/index.md
title: Compatibility & support
- file: install/linux/package-manager-integration.md
title: Package manager integration
- file: install/windows/install.md
title: Windows install guide
subtrees:
- entries:
- file: about/compatibility/linux-support.md
title: Linux (GPU & OS)
- file: about/compatibility/windows-support.md
title: Windows (GPU & OS)
- file: about/compatibility/3rd-party-support-matrix.md
title: Third-party
- file: about/compatibility/user-kernel-space-compat-matrix.md
title: User/kernel space support
- file: about/compatibility/docker-image-support-matrix.md
title: Docker
- file: install/windows/windows-app-deployment-guidelines.md
title: Application deployment guidelines
- file: install/docker.md
title: ROCm Docker containers
- file: install/pytorch-install.md
title: PyTorch for ROCm
- file: install/tensorflow-install.md
title: Tensorflow for ROCm
- file: install/magma-install.md
title: MAGMA for ROCm
- caption: Compatibility & support
entries:
- file: about/compatibility/linux-support.md
title: Linux (GPU & OS)
- file: about/compatibility/windows-support.md
title: Windows (GPU & OS)
- file: about/compatibility/3rd-party-support-matrix.md
title: Third-party
- file: about/compatibility/user-kernel-space-compat-matrix.md
title: User/kernel space support
- file: about/compatibility/docker-image-support-matrix.md
title: Docker
- file: about/compatibility/openmp.md
title: OpenMP
- caption: Release information
entries:
- file: about/release-notes.md
title: Release information
subtrees:
- entries:
- file: CHANGELOG.md
title: Changelog
- file: about/release-history.md
title: Release history
- url: https://github.com/RadeonOpenCompute/ROCm/labels/Verified%20Issue
title: Known issues
title: Release notes
- file: CHANGELOG.md
title: Changelog
- file: about/release-history.md
title: Release history
- url: https://github.com/RadeonOpenCompute/ROCm/labels/Verified%20Issue
title: Known issues
- file: tutorials/index.md
title: Tutorials
- caption: How-to
entries:
- file: how-to/deep-learning-rocm.md
title: Deep learning
- file: how-to/gpu-enabled-mpi.md
title: Using MPI
- file: how-to/system-debugging.md
title: Debugging
- file: how-to/tuning-guides.md
title: Tuning guides
subtrees:
- entries:
- file: tutorials/install/index.md
title: Installing ROCm
subtrees:
- entries:
- file: tutorials/install/linux/index.md
title: Linux
subtrees:
- entries:
- file: tutorials/install/linux/prerequisites.md
title: Prerequisites
- file: tutorials/install/linux/install-options.md
title: Installation options
subtrees:
- entries:
- file: tutorials/install/linux/installer/index.md
title: AMDGPU install script
subtrees:
- entries:
- file: tutorials/install/linux/installer/install.md
title: Install
- file: tutorials/install/linux/installer/upgrade.md
title: Upgrade
- file: tutorials/install/linux/installer/uninstall.md
title: Uninstall
- file: tutorials/install/linux/os-native/index.md
title: Package manager
subtrees:
- entries:
- file: tutorials/install/linux/os-native/package-manager-integration.md
title: Package manager integration
- file: tutorials/install/linux/os-native/install.md
title: Install
- file: tutorials/install/linux/os-native/upgrade.md
title: Upgrade
- file: tutorials/install/linux/os-native/uninstall.md
title: Uninstall
- file: tutorials/install/windows/index.md
title: Windows
subtrees:
- entries:
- file: tutorials/install/windows/prerequisites.md
title: Prerequisites
- file: tutorials/install/windows/gui/index.md
title: Graphical installation
subtrees:
- entries:
- file: tutorials/install/windows/gui/install.md
title: Install
- file: tutorials/install/windows/gui/upgrade.md
title: Upgrade
- file: tutorials/install/windows/gui/uninstall.md
title: Uninstall
- file: tutorials/install/windows/cli/index.md
title: Command-line installation
subtrees:
- entries:
- file: tutorials/install/windows/cli/install.md
title: Install
- file: tutorials/install/windows/cli/upgrade.md
title: Upgrade
- file: tutorials/install/windows/cli/uninstall.md
title: Uninstall
- file: tutorials/install/docker.md
title: ROCm Docker containers
- file: tutorials/install/pytorch-install.md
title: PyTorch for ROCm
- file: tutorials/install/tensorflow-install.md
title: Tensorflow for ROCm
- file: tutorials/install/magma-install.md
title: MAGMA for ROCm
- file: how-to/tuning-guides/mi100.md
title: MI100
- file: how-to/tuning-guides/mi200.md
title: MI200
- file: how-to/tuning-guides/w6000-v620.md
title: RDNA2
- file: how-to/spack-intro.md
title: ROCm & Spack
- url: https://github.com/amd/rocm-examples
title: GitHub examples
- file: how-to/index.md
title: How-to
subtrees:
- entries:
- file: how-to/deep-learning-rocm.md
title: Deep learning
- file: how-to/gpu-enabled-mpi.md
title: Using MPI
- file: how-to/system-debugging.md
title: Debugging
- file: how-to/tuning-guides/index.md
title: Tuning guides
subtrees:
- entries:
- file: how-to/tuning-guides/mi100.md
title: MI100
- file: how-to/tuning-guides/mi200.md
title: MI200
- file: how-to/tuning-guides/w6000-v620.md
title: RDNA2
- file: how-to/Spack.md
title: Spack
- caption: Reference
entries:
- file: reference/library-index.md
title: Library APIs
subtrees:
- caption: Artificial intelligence
entries:
- url: https://rocm.docs.amd.com/projects/composable_kernel/en/latest/index.html
title: Composable kernel
- url: https://rocm.docs.amd.com/projects/MIOpen/en/latest/index.html
title: MIOpen
- url: https://rocm.docs.amd.com/projects/AMDMIGraphX/en/latest/index.html
title: MIGraphX
- caption: C++ primitives
entries:
- url: https://rocm.docs.amd.com/projects/hipCUB/en/latest/index.html
title: hipCUB
- url: https://rocm.docs.amd.com/projects/hipTensor/en/latest/index.html
title: hipTensor
- url: https://rocm.docs.amd.com/projects/rocPRIM/en/latest/index.html
title: rocPRIM
- url: https://rocm.docs.amd.com/projects/rocThrust/en/latest/index.html
title: rocThrust
- caption: Communication
entries:
- url: https://rocm.docs.amd.com/projects/rccl/en/latest/index.html
title: RCCL
- caption: Fast Fourier transforms (FFTs)
entries:
- url: https://rocm.docs.amd.com/projects/hipFFT/en/latest/index.html
title: hipFFT
- url: https://rocm.docs.amd.com/projects/rocFFT/en/latest/index.html
title: rocFFT
- caption: HIP
entries:
- url: https://rocm.docs.amd.com/projects/HIP/en/develop/.doxygen/docBin/html/index.html
title: HIP runtime
- url: https://rocm.docs.amd.com/projects/HIPIFY/en/latest/index.html
title: HIPIFY
- caption: Linear algebra
entries:
- url: https://rocm.docs.amd.com/projects/hipBLAS/en/latest/index.html
title: hipBLAS
- url: https://rocm.docs.amd.com/projects/hipBLASLt/en/latest/index.html
title: hipBLASLt
- url: https://rocm.docs.amd.com/projects/hipSOLVER/en/latest/index.html
title: hipSOLVER
- url: https://rocm.docs.amd.com/projects/hipSPARSE/en/latest/index.html
title: hipSPARSE
- url: https://rocm.docs.amd.com/projects/hipSPARSELt/en/latest/index.html
title: hipSPARSELt
- url: https://rocm.docs.amd.com/projects/rocALUTION/en/latest/index.html
title: rocALUTION
- url: https://rocm.docs.amd.com/projects/rocBLAS/en/latest/index.html
title: rocBLAS
- url: https://rocm.docs.amd.com/projects/rocSOLVER/en/latest/index.html
title: rocSOLVER
- url: https://rocm.docs.amd.com/projects/rocSPARSE/en/latest/index.html
title: rocSPARSE
- caption: Matrix multiply
entries:
- url: https://rocm.docs.amd.com/projects/rocWMMA/en/latest/index.html
title: rocWMMA
- caption: Performance analysis
entries:
- url: https://rocm.docs.amd.com/projects/rocprofiler/en/latest/rocprof.html
title: ROCProfiler
- url: https://github.com/ROCm-Developer-Tools/roctracer
title: Performance tracing
- caption: Random number generators
entries:
- url: https://rocm.docs.amd.com/projects/hipRAND/en/latest/index.html
title: hipRAND
- url: https://rocm.docs.amd.com/projects/rocRAND/en/latest/index.html
title: rocRAND
- caption: Tools
entries:
- url: https://rocm.docs.amd.com/projects/ROCdbgapi/en/latest/index.html
title: AMD debugger API
- file: reference/rocmcc.md
title: ROCmCC
- url: https://rocm.docs.amd.com/projects/rdc/en/latest/
title: ROCm Data Center Tool
- url: https://rocm.docs.amd.com/projects/ROCgdb/en/latest/index.html
title: ROCm debugger AP
- url: https://rocm.docs.amd.com/projects/rocm_smi_lib/en/latest/
title: ROCm SMI LIB
- url: https://rocm.docs.amd.com/projects/ROCmValidationSuite/en/latest/
title: ROCm validation suite
- url: https://rocm.docs.amd.com/projects/roctracer/en/latest/index.html
title: ROCTracer
- url: https://rocm.docs.amd.com/projects/TransferBench/en/latest/
title: TransferBench
- file: reference/index.md
title: Reference guides
- caption: Conceptual
entries:
- file: conceptual/gpu-arch.md
title: GPU architectures
subtrees:
- entries:
- file: reference/hip.md
title: HIP
- file: reference/compilers-tools/index.md
title: Compilers & tools
- file: conceptual/gpu-arch/mi250.md
title: MI250 microarchitecture
subtrees:
- entries:
- file: reference/compilers-tools/validation-tools.md
title: Validation tools
- file: reference/compilers-tools/management-tools.md
title: Management tools
- file: reference/libraries/index.md
title: Libraries
subtrees:
- entries:
- file: reference/libraries/ai-libraries.md
title: AI
- file: reference/libraries/gpu-libraries/communication.md
title: Communication
- file: reference/libraries/gpu-libraries/math.md
title: Math
subtrees:
- entries:
- file: reference/libraries/gpu-libraries/math-linear-algebra.md
title: Linear algebra
- file: reference/libraries/gpu-libraries/math-fft.md
title: Fast Fourier transforms
- file: reference/libraries/gpu-libraries/rand.md
title: Random numbers
- file: reference/libraries/gpu-libraries/c++primitives.md
title: C++ primitives
- file: reference/openmp/openmp.md
title: OpenMP
- file: reference/rocmcc/rocmcc.md
title: ROCmCC
- file: conceptual/index.md
title: Conceptual documentation
subtrees:
- entries:
- file: conceptual/gpu-arch.md
title: GPU architectures
subtrees:
- entries:
- file: conceptual/gpu-arch/mi100.md
title: MI100
- url: https://www.amd.com/system/files/TechDocs/instinct-mi200-cdna2-instruction-set-architecture.pdf
title: AMD Instinct MI200/CDNA2 ISA
- url: https://www.amd.com/system/files/documents/amd-cdna2-white-paper.pdf
title: White paper
- file: conceptual/gpu-arch/mi200-performance-counters.md
title: MI200
- file: conceptual/gpu-arch/mi250.md
title: MI250
- file: conceptual/gpu-memory.md
title: GPU memory
- file: conceptual/compiler-disambiguation.md
title: Compiler disambiguation
- file: conceptual/file-reorg.md
title: File structure (Linux FHS)
- file: conceptual/windows-app-deployment-guidelines.md
title: Windows deployment guidelines
- file: conceptual/gpu-isolation.md
title: GPU isolation techniques
- file: conceptual/using-gpu-sanitizer.md
title: LLVN ASan
- file: conceptual/cmake-packages.rst
title: Using CMake
- file: conceptual/More-about-how-ROCm-uses-PCIe-Atomics.rst
title: ROCm & PCIe atomics
- file: conceptual/ai-pytorch-inception.md
title: Inception v3 with PyTorch
- file: conceptual/ai-migraphx-optimization.md
title: Inference optimization with MIGraphX
title: Performance counter
- file: conceptual/gpu-arch/mi100.md
title: MI100 microarchitecture
subtrees:
- entries:
- url: https://www.amd.com/system/files/TechDocs/instinct-mi100-cdna1-shader-instruction-set-architecture%C2%A0.pdf
title: AMD Instinct MI100/CDNA1 ISA
- url: https://www.amd.com/system/files/documents/amd-cdna-whitepaper.pdf
title: White paper
- file: conceptual/gpu-memory.md
title: GPU memory
- file: conceptual/compiler-disambiguation.md
title: Compiler disambiguation
- file: conceptual/file-reorg.md
title: File structure (Linux FHS)
- file: conceptual/gpu-isolation.md
title: GPU isolation techniques
- file: conceptual/using-gpu-sanitizer.md
title: LLVN ASan
- file: conceptual/cmake-packages.rst
title: Using CMake
- file: conceptual/More-about-how-ROCm-uses-PCIe-Atomics.rst
title: ROCm & PCIe atomics
- file: conceptual/ai-pytorch-inception.md
title: Inception v3 with PyTorch
- file: conceptual/ai-migraphx-optimization.md
title: Inference optimization with MIGraphX
- caption: Contribute
entries:
- file: contribute/index.md
title: Contributing
title: Contribute to ROCm docs
subtrees:
- entries:
- file: contribute/toolchain.md
@@ -232,6 +234,5 @@ subtrees:
title: Building documentation
- file: contribute/feedback.md
title: Providing feedback
- file: about/license.md
title: ROCm licensing
title: ROCm license

View File

@@ -35,7 +35,7 @@
| [rocAL](https://rocm.docs.amd.com/projects/rocAL/en/latest/doxygen/html/index.html) | An augmentation library designed to decode and process images and videos |
| [rocALUTION](https://rocm.docs.amd.com/projects/rocALUTION/en/latest/) | A sparse linear algebra library for exploring fine-grained parallelism on ROCm runtime and toolchains |
| [RocBandwidthTest](https://github.com/RadeonOpenCompute/rocm_bandwidth_test/) | Captures the performance characteristics of buffer copying and kernel read/write operations |
| [rocBLAS](https://rocm.docs.amd.com/projects/rocBLAS/en/latest/)| A BLAS implementation (in the HIP programming language) on ROCm's runtime and toolchains |
| [rocBLAS](https://rocm.docs.amd.com/projects/rocBLAS/en/latest/)| A BLAS implementation (in the HIP programming language) on the ROCm runtime and toolchains |
| [rocFFT](https://rocm.docs.amd.com/projects/rocFFT/en/latest/) | A software library for computing fast Fourier transforms (FFTs) written in HIP |
| [ROCK-Kernel-Driver](https://github.com/RadeonOpenCompute/ROCK-Kernel-Driver/) | An AMDGPU Driver with KFD that is used by ROCm |
| [ROCm Augmentation Library (rocAL)](https://rocm.docs.amd.com/projects/rocAL/en/latest/doxygen/html/index.html) | An augmentation library designed to decode and process images and videos |

View File

@@ -43,7 +43,7 @@ described in the ROCm Installation Guide at {ref}`linux_group_permissions`.
**Q: Can I install PyTorch directly on bare metal?**
Ans: Bare-metal installation of PyTorch is supported through wheels. Refer to
Option 2: Install PyTorch Using Wheels Package. See [Installing PyTorch](../tutorials/install/pytorch-install.md) for more information.
Option 2: Install PyTorch Using Wheels Package. See [Installing PyTorch](../install/pytorch-install.md) for more information.
**Q: How do I profile PyTorch workloads?**

View File

@@ -1,22 +0,0 @@
# Installing ROCm
Our installation guides are designed to walk you through a ROCm installation in detail. If you want to get up and running quickly, try our [quick-start guides](../quick-start/index.md).
:::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card}
**[Linux installation guide](./linux/index.md)**
Install ROCm on Linux.
:::
:::{grid-item-card}
**[Windows installation guide](./windows/index.md)**
Install ROCm on Linux.
:::
:::::

View File

@@ -1,51 +0,0 @@
# Install ROCm on Linux
Start with {doc}`../../quick-start/linux` or follow the detailed
instructions below.
## Prepare to install
::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card}
**[Prerequisites](./prerequisites.md)**
The prerequisites page lists the required steps *before* installation.
:::
:::{grid-item-card}
**[Installation options](./install-options.md)**
Package manager vs AMDGPU installer
Standard vs multi-version packages
:::
::::
(linux-install-methods)=
## Choose your install method
::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card}
**[Package manager](./os-native/index.md)**
Directly use your distribution's package manager to install ROCm.
:::
:::{grid-item-card}
**[AMDGPU installer](./installer/index.md)**
Use an installer tool that orchestrates changes via the package
manager.
:::
::::
## See also
[Linux support](../../../about/compatibility/linux-support.md)

View File

@@ -1,66 +0,0 @@
# ROCm installation options (Linux)
Users installing ROCm must choose between various installation options. A new
user should follow the [Quick Start guide](../../quick-start/linux).
## Package manager versus AMDGPU installer
ROCm supports two methods for installation:
* Directly using the Linux distribution's package manager
* The `amdgpu-install` script
There is no difference in the final installation state when choosing either
option.
Using the distribution's package manager lets the user install,
upgrade and uninstall using familiar commands and workflows. Third party
ecosystem support is the same as your OS package manager.
The `amdgpu-install` script is a wrapper around the package manager. The same
packages are installed by this script as the package manager system.
The installer automates the installation process for the AMDGPU
and ROCm stack. It handles the complete installation process
for ROCm, including setting up the repository, cleaning the system, updating,
and installing the desired drivers and meta-packages. Users who are
less familiar with the package manager can choose this method for ROCm
installation.
(installation-types)=
## Single-version versus multi-version ROCm install
ROCm packages are versioned with both semantic versioning that is package
specific and a ROCm release version.
### Single-version installation
The single-version ROCm installation refers to the following:
* Installation of a single instance of the ROCm release on a system
* Use of non-versioned ROCm meta-packages
### Multi-version installation
The multi-version installation refers to the following:
* Installation of multiple instances of the ROCm stack on a system. Extending
the package name and its dependencies with the release version adds the
ability to support multiple versions of packages simultaneously.
* Use of versioned ROCm meta-packages.
```{attention}
ROCm packages that were previously installed from a single-version installation
must be removed before proceeding with the multi-version installation to avoid
conflicts.
```
```{note}
Multi-version install is not available for the kernel driver module, also referred to as AMDGPU.
```
The following image demonstrates the difference between single-version and
multi-version ROCm installation types:
![ROCm installation types](../../../data/tutorials/install/linux/linux001.png "ROCm installation types")

View File

@@ -1,28 +0,0 @@
# AMDGPU install script
::::{grid} 2 3 3 3
:gutter: 1
:::{grid-item-card}
**[Installing ROCm](./install.md)**
Installation instructions.
:::
:::{grid-item-card}
**[Upgrading ROCm](./upgrade.md)**
Instructions for upgrading an existing ROCm installation.
:::
:::{grid-item-card}
**[Uninstalling ROCm](./uninstall.md)**
Instructions for removing ROCm packages, libraries and tools.
:::
::::
## See also
[Linux support](../../../../about/compatibility/linux-support.md)

View File

@@ -1,326 +0,0 @@
# Installation with install script
Prior to beginning, please ensure you have the [prerequisites](../prerequisites)
installed.
## Download the installer script
To download and install the `amdgpu-install` script on the system, use the
following commands based on your distribution.
::::::{tab-set}
:::::{tab-item} Ubuntu
:sync: ubuntu
::::{tab-set}
:::{tab-item} Ubuntu 22.04
:sync: ubuntu-22.04
```shell
sudo apt update
wget https://repo.radeon.com/amdgpu-install/5.7/ubuntu/jammy/amdgpu-install_5.7.50700-1_all.deb
sudo apt install ./amdgpu-install_5.7.50700-1_all.deb
```
:::
:::{tab-item} Ubuntu 20.04
:sync: ubuntu-20.04
```shell
sudo apt update
wget https://repo.radeon.com/amdgpu-install/5.7/ubuntu/focal/amdgpu-install_5.7.50700-1_all.deb
sudo apt install ./amdgpu-install_5.7.50700-1_all.deb
```
:::
::::
:::::
:::::{tab-item} Red Hat Enterprise Linux
:sync: RHEL
::::{tab-set}
:::{tab-item} RHEL 9.2
:sync: RHEL-9.2
:sync: RHEL-9
```shell
sudo yum install https://repo.radeon.com/amdgpu-install/5.7/rhel/9.2/amdgpu-install-5.7.50700-1.el9.noarch.rpm
```
:::
:::{tab-item} RHEL 9.1
:sync: RHEL-9.1
:sync: RHEL-9
```shell
sudo yum install https://repo.radeon.com/amdgpu-install/5.7/rhel/9.1/amdgpu-install-5.7.50700-1.el9.noarch.rpm
```
:::
:::{tab-item} RHEL 8.8
:sync: RHEL-8.8
:sync: RHEL-8
```shell
sudo yum install https://repo.radeon.com/amdgpu-install/5.7/rhel/8.8/amdgpu-install-5.7.50700-1.el8.noarch.rpm
```
:::
:::{tab-item} RHEL 8.7
:sync: RHEL-8.7
:sync: RHEL-8
```shell
sudo yum install https://repo.radeon.com/amdgpu-install/5.7/rhel/8.7/amdgpu-install-5.7.50700-1.el8.noarch.rpm
```
:::
:::{tab-item} RHEL 8.6
:sync: RHEL-8.6
:sync: RHEL-8
```shell
sudo yum install https://repo.radeon.com/amdgpu-install/5.7/rhel/8.6/amdgpu-install-5.7.50700-1.el8.noarch.rpm
```
:::
::::
:::::
:::::{tab-item} SUSE Linux Enterprise Server
:sync: SLES
::::{tab-set}
:::{tab-item} SLES 15.5
:sync: SLES-15.5
```shell
sudo zypper --no-gpg-checks install https://repo.radeon.com/amdgpu-install/5.7/sle/15.5/amdgpu-install-5.7.50700-1.noarch.rpm
```
:::
:::{tab-item} SLES 15.4
:sync: SLES-15.4
```shell
sudo zypper --no-gpg-checks install https://repo.radeon.com/amdgpu-install/5.7/sle/15.4/amdgpu-install-5.7.50700-1.noarch.rpm
```
:::
::::
:::::
::::::
## Use cases
Instead of installing individual applications or libraries the installer script
groups packages into specific use cases, matching typical workflows and runtimes.
To display a list of available use cases execute the command:
```shell
sudo amdgpu-install --list-usecase
```
The available use-cases will be printed in a format similar to the example
output below.
```none
If --usecase option is not present, the default selection is "graphics,opencl,hip"
Available use cases:
rocm(for users and developers requiring full ROCm stack)
- OpenCL (ROCr/KFD based) runtime
- HIP runtimes
- Machine learning framework
- All ROCm libraries and applications
- ROCm Compiler and device libraries
- ROCr runtime and thunk
lrt(for users of applications requiring ROCm runtime)
- ROCm Compiler and device libraries
- ROCr runtime and thunk
opencl(for users of applications requiring OpenCL on Vega or
later products)
- ROCr based OpenCL
- ROCm Language runtime
openclsdk (for application developers requiring ROCr based OpenCL)
- ROCr based OpenCL
- ROCm Language runtime
- development and SDK files for ROCr based OpenCL
hip (for users of HIP runtime on AMD products)
- HIP runtimes
hiplibsdk (for application developers requiring HIP on AMD products)
- HIP runtimes
- ROCm math libraries
- HIP development libraries
```
To install use cases specific to your requirements, use the installer
`amdgpu-install` as follows:
* To install a single use case add it with the `--usecase` option:
```shell
sudo amdgpu-install --usecase=rocm
```
* For multiple use cases separate them with commas:
```shell
sudo amdgpu-install --usecase=hiplibsdk,rocm
```
## Single-version ROCm installation
By default (without the `--rocmrelease` option)
the installer script will install packages in the single-version layout.
## Multi-version ROCm installation
For the multi-version ROCm installation you must use the installer script from
the latest release of ROCm that you wish to install.
**Example:** If you want to install ROCm releases 5.5.3, 5.6.1 and 5.7
simultaneously, you are required to download the installer from the latest ROCm
release 5.7.
### Add required repositories
You must add the ROCm repositories manually for all ROCm releases
you want to install except the latest one. The `amdgpu-install` script
automatically adds the required repositories for the latest release.
Run the following commands based on your distribution to add the repositories:
::::::{tab-set}
:::::{tab-item} Ubuntu
:sync: ubuntu
::::{tab-set}
:::{tab-item} Ubuntu 22.04
:sync: ubuntu-22.04
```shell
for ver in 5.5.3 5.6.1 5.7; do
echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/rocm/apt/$ver jammy main" | sudo tee /etc/apt/sources.list.d/rocm.list
done
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' | sudo tee /etc/apt/preferences.d/rocm-pin-600
sudo apt update
```
:::
:::{tab-item} Ubuntu 20.04
:sync: ubuntu-20.04
```shell
for ver in 5.5.3 5.6.1 5.7; do
echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/rocm/apt/$ver focal main" | sudo tee /etc/apt/sources.list.d/rocm.list
done
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' | sudo tee /etc/apt/preferences.d/rocm-pin-600
sudo apt update
```
:::
::::
:::::
:::::{tab-item} Red Hat Enterprise Linux
:sync: RHEL
::::{tab-set}
:::{tab-item} RHEL 9
:sync: RHEL-9
```shell
for ver in 5.5.3 5.6.1 5.7; do
sudo tee --append /etc/yum.repos.d/rocm.repo <<EOF
[ROCm-$ver]
name=ROCm$ver
baseurl=https://repo.radeon.com/rocm/rhel9/$ver/main
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
done
sudo yum clean all
```
:::
:::{tab-item} RHEL 8
:sync: RHEL-8
```shell
for ver in 5.5.3 5.6.1 5.7; do
sudo tee --append /etc/yum.repos.d/rocm.repo <<EOF
[ROCm-$ver]
name=ROCm$ver
baseurl=https://repo.radeon.com/rocm/rhel8/$ver/main
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
done
sudo yum clean all
```
:::
::::
:::::
:::::{tab-item} SUSE Linux Enterprise Server
:sync: SLES
```shell
for ver in 5.5.3 5.6.1 5.7; do
sudo tee --append /etc/zypp/repos.d/rocm.repo <<EOF
name=rocm
baseurl=https://repo.radeon.com/rocm/zyp/$ver/main
enabled=1
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
done
sudo zypper ref
```
:::::
::::::
### Install packages
Use the installer script as given below:
```none
sudo amdgpu-install --usecase=rocm --rocmrelease=<release-number-1>
sudo amdgpu-install --usecase=rocm --rocmrelease=<release-number-2>
sudo amdgpu-install --usecase=rocm --rocmrelease=<release-number-3>
```
Following are examples of ROCm multi-version installation. The kernel-mode
driver, associated with the ROCm release 5.7, will be installed as its latest
release in the list.
```none
sudo amdgpu-install --usecase=rocm --rocmrelease=5.7
sudo amdgpu-install --usecase=rocm --rocmrelease=5.6.1
sudo amdgpu-install --usecase=rocm --rocmrelease=5.5.3
```
## Additional options
### Unattended installation
Adding `-y` as a parameter to `amdgpu-install` skips user prompts (for
automation). Example: `amdgpu-install -y --usecase=rocm`
### Skipping kernel mode driver installation
The installer script tries to install the kernel mode driver along with the
requested use cases. This might be unnecessary as in the case of docker
containers or you may wish to keep a specific version when using multi-version
installation, and not have the last installed version overwrite the kernel mode
driver.
To skip the installation of the kernel-mode driver add the `--no-dkms` option
when calling the installer script.

View File

@@ -1,25 +0,0 @@
# Installer script uninstallation (Linux)
To uninstall all ROCm packages and the kernel-mode driver the following commands
can be used.
::::{rubric} Uninstalling Single-Version Install
::::
```console shell
sudo amdgpu-install --uninstall
```
::::{rubric} Uninstalling a Specific ROCm Release
::::
```console shell
sudo amdgpu-install --uninstall --rocmrelease=<release-number>
```
::::{rubric} Uninstalling all ROCm Releases
::::
```console shell
sudo amdgpu-install --uninstall --rocmrelease=all
```

View File

@@ -1,5 +0,0 @@
# Upgrading with the installer script (Linux)
The upgrade procedure with the installer script is exactly the same as
installing for 1st time use. Refer to the {doc}`install`
section on the exact procedure to follow.

View File

@@ -1,34 +0,0 @@
# Installation via package manager
::::{grid} 1 1 2 2
:gutter: 1
:::{grid-item-card}
**[Installing ROCm](./install.md)**
Installation instructions.
:::
:::{grid-item-card}
**[Upgrading ROCm](./upgrade.md)**
Instructions for upgrading an existing ROCm installation.
:::
:::{grid-item-card}
**[Uninstalling ROCm](./uninstall.md)**
Instructions for removing ROCm packages, libraries and tools.
:::
:::{grid-item-card}
**[Package manager integration](./package-manager-integration.md)**
Information about packages.
:::
::::
## See also
[Linux support](../../../../about/compatibility/linux-support.md)

View File

@@ -1,556 +0,0 @@
# Installation (Linux)
## Understanding the release-specific AMDGPU and ROCm repositories on Linux distributions
The release-specific repositories consist of packages from a specific release of
versions of AMDGPU and ROCm. The repositories are not updated for the latest
packages with subsequent releases. When a new ROCm release is available, the new
repository, specific to that release, is added. You can select a specific
release to install, update the previously installed single version to the later
available release, or add the latest version of ROCm along with the currently
installed version by using the multi-version ROCm packages.
## Step-by-step instructions
::::::{tab-set}
:::::{tab-item} Ubuntu
:sync: ubuntu
::::{rubric} 1. Download and convert the package signing key
::::
```shell
# Make the directory if it doesn't exist yet.
# This location is recommended by the distribution maintainers.
sudo mkdir --parents --mode=0755 /etc/apt/keyrings
# Download the key, convert the signing-key to a full
# keyring required by apt and store in the keyring directory
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | \
gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null
```
```{note}
The GPG key may change; ensure it is updated when installing a new release. If
the key signature verification fails while updating, re-add the key from the
ROCm to the apt repository as mentioned above. The current `rocm.gpg.key` is not
available in a standard key ring distribution but has the following SHA1 sum
hash: `73f5d8100de6048aa38a8b84cd9a87f05177d208 rocm.gpg.key`
```
::::{rubric} 2. Add the AMDGPU repository and install the kernel-mode driver
::::
```{tip}
If you have a version of the kernel-mode driver installed, you may skip this
section.
```
To add the AMDGPU repository, follow these steps:
::::{tab-set}
:::{tab-item} Ubuntu 22.04
:sync: ubuntu-22.04
```shell
# version
ver=5.7
# amdgpu repository for jammy
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/$ver/ubuntu jammy main" \
| sudo tee /etc/apt/sources.list.d/amdgpu.list
sudo apt update
# Prefer packages from the rocm repository over system packages
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' | sudo tee /etc/apt/preferences.d/rocm-pin-600
```
:::
:::{tab-item} Ubuntu 20.04
:sync: ubuntu-20.04
```shell
# version
ver=5.7
# amdgpu repository for focal
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/$ver/ubuntu focal main" \
| sudo tee /etc/apt/sources.list.d/amdgpu.list
sudo apt update
```
:::
::::
Install the kernel mode driver and reboot the system using the following
commands:
```shell
sudo apt install amdgpu-dkms
sudo reboot
```
::::{rubric} 3. Add the ROCm repository
::::
To add the ROCm repository, use the following steps:
::::{tab-set}
:::{tab-item} Ubuntu 22.04
:sync: ubuntu-22.04
```shell
# ROCm repositories for jammy
for ver in 5.3.3 5.4.6 5.5.3 5.6.1 5.7; do
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/$ver jammy main" \
| sudo tee --append /etc/apt/sources.list.d/rocm.list
done
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \
| sudo tee /etc/apt/preferences.d/rocm-pin-600
sudo apt update
```
:::
:::{tab-item} Ubuntu 20.04
:sync: ubuntu-20.04
```shell
# ROCm repositories for focal
for ver in 5.3.3 5.4.6 5.5.3 5.6.1 5.7; do
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/$ver focal main" \
| sudo tee --append /etc/apt/sources.list.d/rocm.list
done
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \
| sudo tee /etc/apt/preferences.d/rocm-pin-600
sudo apt update
```
:::
::::
::::{rubric} 4. Install packages
::::
Install packages of your choice in a single-version ROCm install or
in a multi-version ROCm install fashion. For more information on what
single/multi-version installations are, refer to {ref}`installation-types`.
For a comprehensive list of meta-packages, refer to
{ref}`meta-package-desc`.
* Sample Single-version installation
```shell
sudo apt install rocm-hip-sdk
```
* Sample Multi-version installation
```shell
sudo apt install rocm-hip-sdk5.7 rocm-hip-sdk5.6.1 rocm-hip-sdk5.5.3
```
:::::
:::::{tab-item} Red Hat Enterprise Linux
:sync: RHEL
::::{rubric} 1. Add the AMDGPU stack repository and install the kernel-mode driver
::::
```{tip}
If you have a version of the kernel-mode driver installed, you may skip this
section.
```
::::{tab-set}
:::{tab-item} RHEL 9.2
:sync: RHEL-9.2
:sync: RHEL-9
```shell
# version
ver=5.7
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$ver/rhel/9.2/main/x86_64/
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo yum clean all
```
:::
:::{tab-item} RHEL 9.1
:sync: RHEL-9.1
:sync: RHEL-9
```shell
# version
ver=5.7
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$ver/rhel/9.1/main/x86_64/
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo yum clean all
```
:::
:::{tab-item} RHEL 8.8
:sync: RHEL-8.8
:sync: RHEL-8
```shell
# version
ver=5.7
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$ver/rhel/8.8/main/x86_64/
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo yum clean all
```
:::
:::{tab-item} RHEL 8.7
:sync: RHEL-8.7
:sync: RHEL-8
```shell
# version
ver=5.7
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$ver/rhel/8.7/main/x86_64/
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo yum clean all
```
:::
:::{tab-item} RHEL 8.6
:sync: RHEL-8.6
:sync: RHEL-8
```shell
# version
ver=5.7
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$ver/rhel/8.6/main/x86_64/
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo yum clean all
```
:::
::::
Install the kernel mode driver and reboot the system using the following
commands:
```shell
sudo yum install amdgpu-dkms
sudo reboot
```
::::{rubric} 2. Add the ROCm stack repository
::::
To add the ROCm repository, use the following steps, based on your distribution:
::::{tab-set}
:::{tab-item} RHEL 9
:sync: RHEL-9
```shell
for ver in 5.3.3 5.4.6 5.5.3 5.6.1 5.7; do
sudo tee --append /etc/yum.repos.d/rocm.repo <<EOF
[ROCm-$ver]
name=ROCm$ver
baseurl=https://repo.radeon.com/rocm/rhel9/$ver/main
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
done
sudo yum clean all
```
:::
:::{tab-item} RHEL 8
:sync: RHEL-8
```shell
for ver in 5.3.3 5.4.6 5.5.3 5.6.1 5.7; do
sudo tee --append /etc/yum.repos.d/rocm.repo <<EOF
[ROCm-$ver]
name=ROCm$ver
baseurl=https://repo.radeon.com/rocm/rhel8/$ver/main
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
done
sudo yum clean all
```
:::
::::
::::{rubric} 3. Install packages
::::
Install packages of your choice in a single-version ROCm install or
in a multi-version ROCm install fashion. For more information on what
single/multi-version installations are, refer to {ref}`installation-types`.
For a comprehensive list of meta-packages, refer to
{ref}`meta-package-desc`.
* Sample Single-version installation
```shell
sudo yum install rocm-hip-sdk
```
* Sample Multi-version installation
```shell
sudo yum install rocm-hip-sdk5.7 rocm-hip-sdk5.6.1
```
:::::
:::::{tab-item} SUSE Linux Enterprise Server
:sync: SLES
::::{rubric} 1. Add the AMDGPU repository and install the kernel-mode driver
::::
```{tip}
If you have a version of the kernel-mode driver installed, you may skip this
section.
```
::::{tab-set}
:::{tab-item} SLES 15.5
:sync: SLES-15.5
```shell
# version
ver=5.7
sudo tee /etc/zypp/repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$ver/sle/15.5/main/x86_64
enabled=1
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo zypper ref
```
:::
:::{tab-item} SLES 15.4
:sync: SLES-15.4
```shell
# version
ver=5.7
sudo tee /etc/zypp/repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$ver/sle/15.4/main/x86_64
enabled=1
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo zypper ref
```
:::
::::
Install the kernel mode driver and reboot the system using the following
commands:
```shell
sudo zypper --gpg-auto-import-keys install amdgpu-dkms
sudo reboot
```
::::{rubric} 2. Add the ROCm stack repository
::::
To add the ROCm repository, use the following steps:
```shell
for ver in 5.3.3 5.4.6 5.5.3 5.6.1 5.7; do
sudo tee --append /etc/zypp/repos.d/rocm.repo <<EOF
[ROCm-$ver]
name=ROCm$ver
name=rocm
baseurl=https://repo.radeon.com/rocm/zyp/$ver/main
enabled=1
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
done
sudo zypper ref
```
::::{rubric} 3. Install packages
::::
Install packages of your choice in a single-version ROCm install or
in a multi-version ROCm install fashion. For more information on what
single/multi-version installations are, refer to {ref}`installation-types`.
For a comprehensive list of meta-packages, refer to
{ref}`meta-package-desc`.
* Sample Single-version installation
```shell
sudo zypper --gpg-auto-import-keys install rocm-hip-sdk
```
* Sample Multi-version installation
```shell
sudo zypper --gpg-auto-import-keys install rocm-hip-sdk5.7 rocm-hip-sdk5.6.1
```
:::::
::::::
(post-install-actions-linux)=
## Post-install actions and verification process
The post-install actions listed here are optional and depend on your use case,
but are generally useful. Verification of the install is advised.
### Post-install actions
1. Instruct the system linker where to find the shared objects (`.so` files) for
ROCm applications.
```shell
sudo tee --append /etc/ld.so.conf.d/rocm.conf <<EOF
/opt/rocm/lib
/opt/rocm/lib64
EOF
sudo ldconfig
```
```{note}
Multi-version installations require extra care. Having multiple versions on
the system linker library search path is unadvised. One must take care both
at compile-time and at run-time to assure that the proper libraries are
picked up. You can override `ld.so.conf` entries on a case-by-case basis
using the `LD_LIBRARY_PATH` environmental variable.
```
2. Add binary paths to the `PATH` environment variable.
```shell
export PATH=$PATH:/opt/rocm-5.7.0/bin:/opt/rocm-5.7.0/opencl/bin
```
```{attention}
When using CMake to build applications, having the ROCm install location on
the PATH subtly affects how ROCm libraries are searched for. See [Config Mode
Search Procedure](https://cmake.org/cmake/help/latest/command/find_package.html#config-mode-search-procedure)
and [CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH](https://cmake.org/cmake/help/latest/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.html)
for details.
(Entries in the `PATH` minus `bin` and `sbin` are added to library search
paths, therefore this convenience will affect builds and result in ROCm
libraries almost always being found. This may be an issue when you're
developing these libraries or want to use self-built versions of them.)
```
(verifying-kernel-mode-driver-installation)=
### Verifying kernel-mode driver installation
Check the installation of the kernel-mode driver by typing the command given
below:
```shell
dkms status
```
### Verifying ROCm installation
After completing the ROCm installation, execute the following commands on the
system to verify if the installation is successful. If you see your GPUs listed
by both commands, the installation is considered successful:
```shell
/opt/rocm/bin/rocminfo
```
### Verifying package installation
To ensure the packages are installed successfully, use the following commands:
::::{tab-set}
:::{tab-item} Ubuntu
:sync: ubuntu
```shell
sudo apt list --installed
```
:::
:::{tab-item} Red Hat Enterprise Linux
:sync: RHEL
```shell
sudo yum list installed
```
:::
:::{tab-item} SUSE Linux Enterprise Server
:sync: SLES
```shell
sudo zypper search --installed-only
```
:::
::::

View File

@@ -1,170 +0,0 @@
# Uninstallation with package manager (Linux)
This section describes how to uninstall ROCm with the Linux distribution's
package manager. This method should be used if ROCm was installed via the package
manager. If the installer script was used for installation, then it should be
used for uninstallation too, refer to {doc}`../installer/uninstall`.
::::::{tab-set}
:::::{tab-item} Ubuntu
:sync: ubuntu
::::{rubric} Uninstalling specific meta-packages
::::
```shell
# Uninstall single-version ROCm packages
sudo apt autoremove <package-name>
# Uninstall multi-version ROCm packages
sudo apt autoremove <package-name with release version>
```
::::{rubric} Complete uninstallation of ROCm packages
::::
```shell
# Uninstall single-version ROCm packages
sudo apt autoremove rocm-core
# Uninstall multi-version ROCm packages
sudo apt autoremove rocm-core<release version>
```
::::{rubric} Uninstall kernel-mode driver
::::
```shell
sudo apt autoremove amdgpu-dkms
```
::::{rubric} Remove ROCm and AMDGPU repositories
::::
1. Execute these commands:
```shell
sudo rm /etc/apt/sources.list.d/<rocm_repository-name>.list
sudo rm /etc/apt/sources.list.d/<amdgpu_repository-name>.list
```
2. Clear the cache and clean the system.
```shell
sudo rm -rf /var/cache/apt/*
sudo apt-get clean all
```
3. Restart the system.
```shell
sudo reboot
```
:::::
:::::{tab-item} Red Hat Enterprise Linux
:sync: RHEL
::::{rubric} Uninstalling specific meta-packages
::::
```shell
# Uninstall single-version ROCm packages
sudo yum remove <package-name>
# Uninstall multi-version ROCm packages
sudo yum remove <package-name with release version>
```
::::{rubric} Complete uninstallation of ROCm packages
::::
```shell
# Uninstall single-version ROCm packages
sudo yum remove rocm-core
# Uninstall multi-version ROCm packages
sudo yum remove rocm-core<release version>
```
::::{rubric} Uninstall kernel-mode driver
::::
```shell
sudo yum autoremove amdgpu-dkms
```
::::{rubric} Remove ROCm and AMDGPU repositories
::::
1. Execute these commands:
```shell
sudo rm -rf /etc/yum.repos.d/<rocm_repository-name> # Remove only rocm repo
sudo rm -rf /etc/yum.repos.d/<amdgpu_repository-name> # Remove only amdgpu repo
```
2. Clear the cache and clean the system.
```shell
sudo rm -rf /var/cache/yum #Remove the cache
sudo yum clean all
```
3. Restart the system.
```shell
sudo reboot
```
:::::
:::::{tab-item} SUSE Linux Enterprise Server
:sync: SLES
::::{rubric} Uninstalling specific meta-packages
::::
```shell
# Uninstall all single-version ROCm packages
sudo zypper remove <package-name>
# Uninstall all multi-version ROCm packages
sudo zypper remove <package-name with release version>
```
::::{rubric} Complete uninstallation of ROCm packages
::::
```shell
# Uninstall all single-version ROCm packages
sudo zypper remove rocm-core
# Uninstall all multi-version ROCm packages
sudo zypper remove rocm-core<release version>
```
::::{rubric} Uninstall kernel-mode driver
::::
```shell
sudo zypper remove --clean-deps amdgpu-dkms
```
::::{rubric} Remove ROCm and AMDGPU repositories
::::
1. Execute these commands:
```shell
sudo zypper removerepo <rocm_repository-name>
sudo zypper removerepo <amdgpu_repository-name>
```
2. Clear the cache and clean the system.
```shell
sudo zypper clean --all
```
3. Restart the system.
```shell
sudo reboot
```
:::::
::::::

View File

@@ -1,405 +0,0 @@
# Upgrade ROCm with the package manager
This section explains how to upgrade the existing AMDGPU driver and ROCm
packages to the latest version using your OS's distributed package manager.
```{note}
Package upgrade is applicable to single-version packages only. If the preference
is to install an updated version of the ROCm along with the currently
installed version, refer to the [](install) page.
```
## Upgrade steps
### Update the AMDGPU repository
Execute the commands below based on your distribution to point the `amdgpu`
repository to the new release.
::::::{tab-set}
:::::{tab-item} Ubuntu
:sync: ubuntu
::::{tab-set}
:::{tab-item} Ubuntu 22.04
:sync: ubuntu-22.04
```shell
# version
version=5.7
# amdgpu repository for jammy
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/$version/ubuntu jammy main" \
| sudo tee /etc/apt/sources.list.d/amdgpu.list
sudo apt update
```
:::
:::{tab-item} Ubuntu 20.04
:sync: ubuntu-20.04
```shell
# version
version=5.7
# amdgpu repository for focal
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/$version/ubuntu focal main" \
| sudo tee /etc/apt/sources.list.d/amdgpu.list
sudo apt update
```
:::
::::
:::::
:::::{tab-item} Red Hat Enterprise Linux
:sync: RHEL
::::{tab-set}
:::{tab-item} RHEL 9.2
:sync: RHEL-9.2
:sync: RHEL-9
```shell
# version
version=5.7
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$version/rhel/9.2/main/x86_64/
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo yum clean all
```
:::
:::{tab-item} RHEL 9.1
:sync: RHEL-9.1
:sync: RHEL-9
```shell
# version
version=5.7
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$version/rhel/9.1/main/x86_64/
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo yum clean all
```
:::
:::{tab-item} RHEL 8.8
:sync: RHEL-8.8
:sync: RHEL-8
```shell
# version
version=5.7
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$version/rhel/8.8/main/x86_64/
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo yum clean all
```
:::
:::{tab-item} RHEL 8.7
:sync: RHEL-8.7
:sync: RHEL-8
```shell
# version
version=5.7
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$version/rhel/8.7/main/x86_64/
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo yum clean all
```
:::
:::{tab-item} RHEL 8.6
:sync: RHEL-8.6
:sync: RHEL-8
```shell
# version
version=5.7
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$version/rhel/8.6/main/x86_64/
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo yum clean all
```
:::
::::
:::::
:::::{tab-item} SUSE Linux Enterprise Server
:sync: SLES
::::{tab-set}
:::{tab-item} SLES 15.5
:sync: SLES-15.5
```shell
# version
version=5.7
sudo tee /etc/zypp/repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$version/sle/15.5/main/x86_64
enabled=1
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo zypper ref
```
:::
:::{tab-item} SLES 15.4
:sync: SLES-15.4
```shell
# version
version=5.7
sudo tee /etc/zypp/repos.d/amdgpu.repo <<EOF
[amdgpu]
name=amdgpu
baseurl=https://repo.radeon.com/amdgpu/$version/sle/15.4/main/x86_64
enabled=1
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo zypper ref
```
:::
::::
:::::
::::::
### Upgrade the kernel-mode driver and reboot
Upgrade the kernel mode driver and reboot the system using the following
commands based on your distribution:
::::{tab-set}
:::{tab-item} Ubuntu
:sync: ubuntu
```shell
sudo apt install amdgpu-dkms
sudo reboot
```
:::
:::{tab-item} Red Hat Enterprise Linux
:sync: RHEL
```shell
sudo yum install amdgpu-dkms
sudo reboot
```
:::
:::{tab-item} SUSE Linux Enterprise Server
:sync: SLES
```shell
sudo zypper --gpg-auto-import-keys install amdgpu-dkms
sudo reboot
```
:::
::::
### Update the ROCm repository
Execute the commands below based on your distribution to point the `rocm`
repository to the new release.
::::::{tab-set}
:::::{tab-item} Ubuntu
:sync: ubuntu
::::{tab-set}
:::{tab-item} Ubuntu 22.04
:sync: ubuntu-22.04
```shell
# version
version=5.7
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/$version jammy main" \
| sudo tee /etc/apt/sources.list.d/rocm.list
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \
| sudo tee /etc/apt/preferences.d/rocm-pin-600
sudo apt update
```
:::
:::{tab-item} Ubuntu 20.04
:sync: ubuntu-20.04
```shell
# version
version=5.7
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/$version focal main" \
| sudo tee /etc/apt/sources.list.d/rocm.list
echo -e 'Package: *\nPin: release o=repo.radeon.com\nPin-Priority: 600' \
| sudo tee /etc/apt/preferences.d/rocm-pin-600
sudo apt update
```
:::
::::
:::::
:::::{tab-item} Red Hat Enterprise Linux
:sync: RHEL
::::{tab-set}
:::{tab-item} RHEL 9
:sync: RHEL-9
```shell
# version
version=5.7
sudo tee /etc/yum.repos.d/rocm.repo <<EOF
[ROCm-$ver]
name=ROCm$ver
baseurl=https://repo.radeon.com/rocm/rhel9/$version/main
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo yum clean all
```
:::
:::{tab-item} RHEL 8
:sync: RHEL-8
```shell
# version
version=5.7
sudo tee /etc/yum.repos.d/rocm.repo <<EOF
[ROCm-$ver]
name=ROCm$ver
baseurl=https://repo.radeon.com/rocm/rhel8/$version/main
enabled=1
priority=50
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo yum clean all
```
:::
::::
:::::
:::::{tab-item} SUSE Linux Enterprise Server
:sync: SLES
```shell
# version
version=5.7
sudo tee /etc/zypp/repos.d/rocm.repo <<EOF
[ROCm-$ver]
name=ROCm$ver
name=rocm
baseurl=https://repo.radeon.com/rocm/zyp/$version/main
enabled=1
gpgcheck=1
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
EOF
sudo zypper ref
```
:::::
::::::
### Upgrade the ROCm packages
Your packages can be upgraded now through their meta-packages, see the following
example based on your distribution:
::::{tab-set}
:::{tab-item} Ubuntu
:sync: ubuntu
```shell
sudo apt install --only-upgrade rocm-hip-sdk
```
:::
:::{tab-item} Red Hat Enterprise Linux
:sync: RHEL
```shell
sudo yum update rocm-hip-sdk
```
:::
:::{tab-item} Suse Linux Enterprise Server
:sync: SLES
```shell
sudo zypper --gpg-auto-import-keys update rocm-hip-sdk
```
:::
::::
## Verification process
To verify if the upgrade is successful, refer to the
{ref}`post-install-actions-linux` given in the
[Installation](install) section.

View File

@@ -1,212 +0,0 @@
# Installation prerequisites (Linux)
You must perform the following steps before installing ROCm and check if the
system meets all the requirements to proceed with the installation.
## Confirm the system has a supported Linux distribution version
The ROCm installation is supported only on specific Linux distributions and
kernel versions.
### Check the Linux distribution and kernel version on your system
This section discusses obtaining information about the Linux distribution and
kernel version.
#### Linux distribution information
Verify the Linux distribution using the following steps:
1. To obtain the Linux distribution information, type the following command on
your system from the command-line interface (CLI):
```shell
uname -m && cat /etc/*release
```
2. Confirm that the obtained Linux distribution information matches with those listed in {ref}`linux-support`.
**Example:** Running the command above on an Ubuntu system results in the
following output:
```shell
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.5 LTS"
```
(check-kernel-info)=
#### Kernel information
Verify the kernel version using the following steps:
1. To check the kernel version of your Linux system, type the following command:
```shell
uname -srmv
```
**Example:** The output of the command above lists the kernel version in the
following format:
```output
Linux 5.15.0-46-generic #44~20.04.5-Ubuntu SMP Fri Jun 24 13:27:29 UTC 2022 x86_64
```
2. Confirm that the obtained kernel version information matches with system
requirements as listed in {ref}`linux-support`.
## Additional package repositories
On some distributions the ROCm packages depend on packages outside the default
package repositories. These extra repositories need to be enabled before
installation. Follow the instructions below based on your distributions.
::::::{tab-set}
:::::{tab-item} Ubuntu
:sync: ubuntu
All packages are available in the default Ubuntu repositories, therefore
no additional repositories need to be added.
:::::
:::::{tab-item} Red Hat Enterprise Linux
:sync: RHEL
::::{rubric} 1. Add the EPEL repository
::::
::::{tab-set}
:::{tab-item} RHEL 8
:sync: RHEL-8
```shell
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo rpm -ivh epel-release-latest-8.noarch.rpm
```
:::
:::{tab-item} RHEL 9
:sync: RHEL-9
```shell
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
sudo rpm -ivh epel-release-latest-9.noarch.rpm
```
:::
::::
::::{rubric} 2. Enable the CodeReady Linux Builder repository
::::
Run the following command and follow the instructions.
```shell
sudo crb enable
```
:::::
:::::{tab-item} SUSE Linux Enterprise Server
:sync: SLES
Add the perl languages repository.
::::{tab-set}
:::{tab-item} SLES 15.4
:sync: SLES-15.4
```shell
zypper addrepo https://download.opensuse.org/repositories/devel:languages:perl/SLE_15_SP4/devel:languages:perl.repo
```
:::
:::{tab-item} SLES 15.5
:sync: SLES-15.5
```shell
zypper addrepo https://download.opensuse.org/repositories/devel:/languages:/perl/15.5/devel:languages:perl.repo
```
:::
::::
:::::
::::::
## Kernel headers and development packages
The driver package uses
[{abbr}`DKMS (Dynamic Kernel Module Support)`][DKMS-wiki] to build
the `amdgpu-dkms` module (driver) for the installed kernels. This requires the
Linux kernel headers and modules to be installed for each. Usually these are
automatically installed with the kernel, but if you have multiple kernel
versions or you have downloaded the kernel images and not the kernel
meta-packages then they must be manually installed.
[DKMS-wiki]: https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support
To install for the currently active kernel run the command corresponding
to your distribution.
::::{tab-set}
:::{tab-item} Ubuntu
:sync: ubuntu
```shell
sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)"
```
:::
:::{tab-item} Red Hat Enterprise Linux
:sync: RHEL
```shell
sudo yum install kernel-headers kernel-devel
```
:::
:::{tab-item} SUSE Linux Enterprise Server
:sync: SLES
```shell
sudo zypper install kernel-default-devel
```
:::
::::
(linux_group_permissions)=
## Setting permissions for groups
This section provides steps to add any current user to a video group to access
GPU resources.
Use of the video group is recommended for all ROCm-supported operating
systems.
1. To check the groups in your system, issue the following command:
```shell
groups
```
2. Add yourself to the `render` and `video` group using the command:
```shell
sudo usermod -a -G render,video $LOGNAME
```
To add all future users to the `video` and `render` groups by default, run
the following commands:
```shell
echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=render' | sudo tee -a /etc/adduser.conf
```

View File

@@ -1,28 +0,0 @@
# Command-line installation
::::{grid} 2 3 3 3
:gutter: 1
:::{grid-item-card}
**[Installing ROCm](./install.md)**
Installation instructions.
:::
:::{grid-item-card}
**[Upgrading ROCm](./upgrade.md)**
Instructions for upgrading an existing ROCm installation.
:::
:::{grid-item-card}
**[Uninstalling ROCm](./uninstall.md)**
Instructions for removing ROCm packages, libraries and tools.
:::
::::
## See also
[Windows Support](../../../../about/compatibility/windows-support.md)

View File

@@ -1,55 +0,0 @@
# Installation using the CLI
The steps to install the HIP SDK for Windows are described in this document.
## System requirements
The HIP SDK is supported on Windows 10 and 11. The HIP SDK may be installed on a
system without AMD GPUs to use the build toolchains. To run HIP applications, a
compatible GPU is required. Please see the supported GPU guide for more details.
## HIP SDK installation
The command-line installer is the same executable which is used by the graphical
front-end. Download the installer from the
[HIP-SDK download page](https://www.amd.com/en/developer/rocm-hub/hip-sdk.html).
The options supported by the command-line interface (CLI) are summarized in the following table.
```{table} HIP SDK Command Line Options
:name: hip-sdk-cli-install
| **Install Option** | **Description** |
|:------------------:|:---------------:|
| `-install` | Command used to install packages, both driver and applications. No output to the screen. |
| `-install -boot` | Silent install with auto reboot. |
| `-install -log <absolute path>` | Write install result code to the specified log file. The specified log file must be on a local machine. Double quotes are needed if there are spaces in the log file path. |
| `-uninstall` | Command to uninstall all packages installed by this installer on the system. There is no option to specify which packages to uninstall. |
| `-uninstall -boot` | Silent uninstall with auto reboot. |
| `/?` or /help | Shows a brief description of all switch commands. |
```
```{note}
Unlike the graphical installer, the CLI doesn't support
selectively installing parts of the SDK bundle. It's all or nothing.
```
### Launching the installer from the command line
The installer is still a graphical application with a `WinMain` entry point, even
when called on the command line. This means that the application lifetime is
tied to a window, even on headless systems where that window may not be visible.
To launch the installer from PowerShell that will block until the installer
exits, one may use the following pattern:
```pwsh
Start-Process $InstallerExecutable -ArgumentList $InstallerArgs -NoNewWindow -Wait
```
```{important}
Running the installer requires Administrator Privileges.
```
For example, installing all components and
```pwsh
Start-Process ~\Downloads\Setup.exe -ArgumentList '-install','-log',"${env:USERPROFILE}\installer_log.txt" -NoNewWindow -Wait
```

View File

@@ -1,48 +0,0 @@
# Uninstallation using the CLI
The steps to uninstall the HIP SDK for Windows are described in this document.
## HIP SDK uninstallation
The command-line installer is the same executable which is used by the graphical
front-end. The options supported by the command-line interface (CLI) are summarized in
the following table.
```{table} HIP SDK Command-line Options
:name: hip-sdk-cli-uninstall
| **Install Option** | **Description** |
|:------------------:|:---------------:|
| `-install` | Command used to install packages, both driver and applications. No output to the screen. |
| `-install -boot` | Silent install with auto reboot. |
| `-install -log <absolute path>` | Write install result code to the specified log file. The specified log file must be on a local machine. Double quotes are needed if there are spaces in the log file path. |
| `-uninstall` | Command to uninstall all packages installed by this installer on the system. There is no option to specify which packages to uninstall. |
| `-uninstall -boot` | Silent uninstall with auto reboot. |
| `/?` or /help | Shows a brief description of all switch commands. |
```
```{note}
Unlike the graphical installer, the CLI doesn't support
selectively installing parts of the SDK bundle. It's all or nothing.
```
### Launching the installer from the command line
The installer is still a graphical application with a `WinMain` entry point, even
when called on the command line. This means that the application lifetime is
tied to a window, even on headless systems where that window may not be visible.
To launch the installer from PowerShell that will block until the installer
exits, one may use the following pattern:
```pwsh
Start-Process $InstallerExecutable -ArgumentList $InstallerArgs -NoNewWindow -Wait
```
```{important}
Running the installer requires Administrator Privileges.
```
For example, uninstalling all components and
```pwsh
Start-Process ~\Downloads\Setup.exe -ArgumentList '-uninstall' -NoNewWindow -Wait
```

View File

@@ -1,14 +0,0 @@
# Upgrading using the graphical interface
The steps to uninstall the HIP SDK for Windows are described in this document.
## HIP SDK upgrade
To upgrade an existing installation of the HIP SDK without preserving the
previous version, first uninstall it, then install the new version following the
instructions in {doc}`./uninstall` and
{doc}`./install` using the old and new installers
respectively.
To upgrade by installing both versions side-by-side, just run the installer of
the newer version.

View File

@@ -1,28 +0,0 @@
# Graphical installation
::::{grid} 2 3 3 3
:gutter: 1
:::{grid-item-card}
**[Installing ROCm](./install.md)**
Installation instructions.
:::
:::{grid-item-card}
**[Upgrading ROCm](./upgrade.md)**
Instructions for upgrading an existing ROCm installation.
:::
:::{grid-item-card}
**[Uninstalling ROCm](./uninstall.md)**
Instructions for removing ROCm packages, libraries and tools.
:::
::::
## See also
[Windows Support](../../../../about/compatibility/windows-support.md)

View File

@@ -1,124 +0,0 @@
# Installation using the graphical interface
The steps to install the HIP SDK for Windows are described in this document.
## System requirements
The HIP SDK is supported on Windows 10 and 11. The HIP SDK may be installed on a
system without AMD GPUs to use the build toolchains. To run HIP applications, a
compatible GPU is required. Please see the supported GPU guide for more details.
## HIP SDK installation
### Download the installer
Download the installer from the
[HIP-SDK download page](https://www.amd.com/en/developer/rocm-hub/hip-sdk.html).
### Launching the installer
To launch the AMD HIP SDK Installer, click the **Setup** icon shown in the following image.
![Icon with AMD arrow logo and User Access Control Shield overlay](../../../../data/tutorials/install/windows/000-setup-icon.png "Setup Icon")
The installer requires Administrator Privileges, so you may be greeted with a
User Access Control (UAC) pop-up. Click Yes.
![User Access Control pop-up](../../../../data/tutorials/install/windows/001-uac-dark.png "User Access Control pop-up")
![User Access Control pop-up](../../../../data/tutorials/install/windows/001-uac-light.png "User Access Control pop-up")
The installer executable will temporarily extract installer packages to `C:\AMD`
which it will remove after installation completes. This extraction is signified
by the "Initializing install" window in the following image.
![Window with AMD arrow logo, futuristic background and progress counter](../../../../data/tutorials/install/windows/002-initializing.png "Installer initialization window")
The installer will then detect your system configuration to determine which installable components
are applicable to your system.
![Window with AMD arrow logo, futuristic background and activity indicator](../../../../data/tutorials/install/windows/003-detecting-system-config.png "Installer initialization window")
### Customizing the install
When the installer launches, it displays a window that lets the user customize
the installation. By default, all components are selected for installation.
Refer to the following image for an instance when the Select All option
is turned on.
![Window with AMD arrow logo, futuristic background and activity indicator](../../../../data/tutorials/install/windows/004-installer-window.png "Installer initialization window")
#### HIP SDK installer
The HIP SDK installation options are listed in the following table.
```{table} HIP SDK Components for Installation
:name: hip-sdk-options
| **HIP Components** | **Install Type** | **Additional Options** |
|:------------------:|:----------------:|:----------------------:|
| HIP SDK Core | 5.5.0 | Install location |
| HIP Libraries | Full, Partial, None | Runtime, Development (Libs and headers) |
| HIP Runtime Compiler | Full, Partial, None | Runtime, Development (Headers) |
| HIP Ray Tracing | Full, Partial, None | Runtime, Development (Headers) |
| Visual Studio Plugin | Full, Partial, None | Visual Studio 2017, 2019, 2022 Plugin |
```
```{note}
The Select/DeSelect All option only applies to the installation of HIP SDK
components. To install the bundled AMD Display Driver, manually select the
install type.
```
```{tip}
Should you only wish to install a few select components,
DeSelecting All and then picking the individual components may be more
convenient.
```
#### AMD display driver
The HIP SDK installer bundles an AMD Radeon Software PRO 23.10 installer. The
supported install options are summarized in the following table:
```{table} AMD Display Driver Install Options
:name: display-driver-install-options
| **Install Option** | **Description** |
|:------------------:|:---------------:|
| Install Location | Location on disk to store driver files. |
| Install Type | The breadth of components to be installed. |
| Factory Reset (Optional) | A Factory Reset will remove all prior versions of AMD HIP SDK and drivers. You will not be able to roll back to previously installed drivers. |
```
```{table} AMD Display Driver Install Types
:name: display-driver-install-types
| **Install Type** | **Description** |
|:----------------:|:---------------:|
| Full Install | Provides all AMD Software features and controls for gaming, recording, streaming, and tweaking the performance on your graphics hardware. |
| Minimal Install | Provides only the basic controls for AMD Software features and does not include advanced features such as performance tweaking or recording and capturing content. |
| Driver Only | Provides no user interface for AMD Software features. |
```
```{note}
You must perform a system restart for a complete installation of the
Display Driver.
```
### Installing components
Please wait for the installation to complete during as shown in the following image.
![Window with AMD arrow logo, futuristic background and progress meter](../../../../data/tutorials/install/windows/012-install-progress.png "Installation progress")
### Installation complete
Once the installation is complete, the installer window may prompt you for a
system restart. Click **Restart** at the lower right corner, shown in the following image.
![Window with AMD arrow logo, futuristic background and completion notice](../../../../data/tutorials/install/windows/013-install-complete.png "Installation complete")
```{error}
Should the installer terminate due to unexpected circumstances, or the user
forcibly terminates the installer, the temporary directory created under
`C:\AMD` may be safely removed. Installed components will not depend on this
folder (unless the user specifies `C:\AMD` as an install folder explicitly).
```

View File

@@ -1,17 +0,0 @@
# Uninstallation using the graphical interface
The steps to uninstall the HIP SDK for Windows are described in this document.
## Uninstallation
All components, except visual studio plug-in should be uninstalled through
control panel -> Add/Remove Program. For visual studio extension uninstallation,
please refer to
<https://github.com/ROCm-Developer-Tools/HIP-VS/blob/master/README.md>.
Uninstallation of the HIP SDK components can be done through the Windows
Settings app. Navigate to "Apps > Installed apps", click the "..." on the far
right next to the component to uninstall, and click "Uninstall".
![Installed apps section of the settings app showing installed HIP SDK components](../../../../data/tutorials/install/windows/014-uninstall-dark.png "Removing the SDK via the settings app")
![Installed apps section of the settings app showing installed HIP SDK components](../../../../data/tutorials/install/windows/014-uninstall-light.png "Removing the SDK via the settings app")

View File

@@ -1,4 +0,0 @@
# Upgrading using the graphical interface
The steps to upgrade an existing HIP SDK installation for Windows are described
in this document.

Some files were not shown because too many files have changed in this diff Show More