Compare commits
87 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4d3dde1a2 | ||
|
|
b60afeeafe | ||
|
|
76af020540 | ||
|
|
e96f137f44 | ||
|
|
4dd5cf1e59 | ||
|
|
fab4379715 | ||
|
|
d17a27ca84 | ||
|
|
ddb77b9dcf | ||
|
|
52f52b7976 | ||
|
|
a35248bb77 | ||
|
|
9d05c49458 | ||
|
|
419f674456 | ||
|
|
e13e1d31c3 | ||
|
|
eb12f3f851 | ||
|
|
524f009280 | ||
|
|
d23a85c707 | ||
|
|
2786b32eea | ||
|
|
2c828465f2 | ||
|
|
58b137d43e | ||
|
|
a144653405 | ||
|
|
85a4eca655 | ||
|
|
bdb527980a | ||
|
|
8e39a2a147 | ||
|
|
72c128f681 | ||
|
|
284d024045 | ||
|
|
da32369db1 | ||
|
|
e70545bcd9 | ||
|
|
3d88626dd4 | ||
|
|
0cfc1e480a | ||
|
|
f9aeee3e15 | ||
|
|
6e50a85a93 | ||
|
|
e8fdc582d8 | ||
|
|
4df2273587 | ||
|
|
996f4a8c37 | ||
|
|
5bbe13fb75 | ||
|
|
b899a3697c | ||
|
|
f655458f87 | ||
|
|
8781a7706d | ||
|
|
3643e8a6c2 | ||
|
|
02d86aa41b | ||
|
|
5615c90889 | ||
|
|
21e433e91f | ||
|
|
8bf7cfdddc | ||
|
|
e05ce21fb4 | ||
|
|
6b1fdeab82 | ||
|
|
c1a8c5b030 | ||
|
|
014c904c4c | ||
|
|
e8275e7fd3 | ||
|
|
51af0be780 | ||
|
|
5e24832f3b | ||
|
|
6757f9dc56 | ||
|
|
a471e8debe | ||
|
|
8c86526f98 | ||
|
|
a42fae5140 | ||
|
|
bcb3dd3b4a | ||
|
|
8784fe3fba | ||
|
|
6e79d204b8 | ||
|
|
7076bc18ca | ||
|
|
519df7a51f | ||
|
|
90c697b6d3 | ||
|
|
125cc37981 | ||
|
|
5752b5986c | ||
|
|
2829c088c2 | ||
|
|
3b9fb62600 | ||
|
|
b7222caed2 | ||
|
|
c285dd729f | ||
|
|
0c93636d23 | ||
|
|
3fa5f1fddc | ||
|
|
17b029b885 | ||
|
|
460f46c3be | ||
|
|
6feca81dd0 | ||
|
|
ec8496041a | ||
|
|
c7350c08ab | ||
|
|
c1809766e6 | ||
|
|
61df1ec8c6 | ||
|
|
983987aab5 | ||
|
|
914b62e219 | ||
|
|
faac45772c | ||
|
|
d206494272 | ||
|
|
26c73a3986 | ||
|
|
dc74008ac6 | ||
|
|
108287dcd7 | ||
|
|
38440915ef | ||
|
|
d9c434881a | ||
|
|
4c795d45f6 | ||
|
|
ef0a88ea0e | ||
|
|
34578f0193 |
2
.github/CODEOWNERS
vendored
@@ -1 +1 @@
|
||||
* @saadrahim @Rmalavally @amd-aakash @zhang2amd @jlgreathouse @samjwu
|
||||
* @saadrahim @Rmalavally @amd-aakash @zhang2amd @jlgreathouse @samjwu @MathiasMagnus
|
||||
|
||||
10
.github/workflows/linting.yml
vendored
@@ -5,10 +5,14 @@ on:
|
||||
branches:
|
||||
- develop
|
||||
- main
|
||||
- 'docs/*'
|
||||
- 'roc**'
|
||||
pull_request:
|
||||
branches:
|
||||
- develop
|
||||
- main
|
||||
- 'docs/*'
|
||||
- 'roc**'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.ref }}-${{ github.workflow }}
|
||||
@@ -32,10 +36,10 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
- name: Use markdownlint
|
||||
uses: actionshub/markdownlint@v3.1.3
|
||||
- name: Use markdownlint-cli2
|
||||
uses: DavidAnson/markdownlint-cli2-action@v10.0.1
|
||||
with:
|
||||
filesToIgnoreRegex: CHANGELOG.md|(docs\/)?(RELEASE|release).md|tools\/autotag\/templates\/.
|
||||
globs: '**/*.md'
|
||||
|
||||
spelling:
|
||||
name: "Spelling"
|
||||
|
||||
1
.gitignore
vendored
@@ -15,3 +15,4 @@ _readthedocs/
|
||||
# avoid duplicating contributing.md due to conf.py
|
||||
docs/contributing.md
|
||||
docs/release.md
|
||||
docs/CHANGELOG.md
|
||||
|
||||
14
.markdownlint-cli2.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
config:
|
||||
default: true
|
||||
MD013: false
|
||||
MD026:
|
||||
punctuation: '.,;:!'
|
||||
MD029:
|
||||
style: ordered
|
||||
MD033: false
|
||||
MD034: false
|
||||
MD041: false
|
||||
ignores:
|
||||
- CHANGELOG.md
|
||||
- "{,docs/}{RELEASE,release}.md"
|
||||
- tools/autotag/templates/**/*.md
|
||||
@@ -1,5 +1,9 @@
|
||||
# isv_deployment_win
|
||||
ABI
|
||||
# file_reorg
|
||||
FHS
|
||||
Filesystem
|
||||
filesystem
|
||||
incrementing
|
||||
rocm
|
||||
# gpu_aware_mpi
|
||||
DMA
|
||||
GDR
|
||||
@@ -15,15 +19,31 @@ PeerDirect
|
||||
RDMA
|
||||
UCX
|
||||
ib_core
|
||||
# isv_deployment_win
|
||||
ABI
|
||||
# linear algebra
|
||||
LAPACK
|
||||
MMA
|
||||
backends
|
||||
cuSOLVER
|
||||
cuSPARSE
|
||||
# openmp
|
||||
ICV
|
||||
Multithreaded
|
||||
# tuning_guides
|
||||
BMC
|
||||
DGEMM
|
||||
HPCG
|
||||
HPL
|
||||
IOPM
|
||||
# windows
|
||||
SKU
|
||||
SKUs
|
||||
PowerShell
|
||||
UAC
|
||||
# pytorch_install
|
||||
kdb
|
||||
precompiled
|
||||
# gpu_os_support
|
||||
HWE
|
||||
el
|
||||
|
||||
715
CHANGELOG.md
@@ -8,10 +8,632 @@
|
||||
<!-- markdownlint-disable no-blanks-blockquote -->
|
||||
<!-- markdownlint-disable ul-indent -->
|
||||
<!-- markdownlint-disable no-trailing-spaces -->
|
||||
|
||||
<!-- spellcheck-disable -->
|
||||
|
||||
The release notes for the ROCm platform.
|
||||
|
||||
-------------------
|
||||
|
||||
## ROCm 5.6.0
|
||||
<!-- markdownlint-disable first-line-h1 -->
|
||||
<!-- markdownlint-disable no-duplicate-header -->
|
||||
<!-- markdownlint-disable header-increment -->
|
||||
#### Release Highlights
|
||||
|
||||
ROCm 5.6 consists of several AI software ecosystem improvements to our fast-growing user base. A few examples include:
|
||||
|
||||
- New documentation portal at https://rocm.docs.amd.com
|
||||
- Ongoing software enhancements for LLMs, ensuring full compliance with the HuggingFace unit test suite
|
||||
- OpenAI Triton, CuPy, HIP Graph support, and many other library performance enhancements
|
||||
- Improved ROCm deployment and development tools, including CPU-GPU (rocGDB) debugger, profiler, and docker containers
|
||||
- New pseudorandom generators are available in rocRAND. Added support for half-precision transforms in hipFFT/rocFFT. Added LU refactorization and linear system solver for sparse matrices in rocSOLVER.
|
||||
|
||||
#### OS and GPU Support Changes
|
||||
|
||||
- SLES15 SP5 support was added this release. SLES15 SP3 support was dropped.
|
||||
- AMD Instinct MI50, Radeon Pro VII, and Radeon VII products (collectively referred to as gfx906 GPUs) will be entering the maintenance mode starting Q3 2023. This will be aligned with ROCm 5.7 GA release date.
|
||||
- No new features and performance optimizations will be supported for the gfx906 GPUs beyond ROCm 5.7
|
||||
- Bug fixes / critical security patches will continue to be supported for the gfx906 GPUs till Q2 2024 (End of Maintenance [EOM])(will be aligned with the closest ROCm release)
|
||||
- Bug fixes during the maintenance will be made to the next ROCm point release
|
||||
- Bug fixes will not be back ported to older ROCm releases for this SKU
|
||||
- Distro / Operating system updates will continue as per the ROCm release cadence for gfx906 GPUs till EOM.
|
||||
|
||||
#### AMDSMI CLI 23.0.0.4
|
||||
|
||||
##### Added
|
||||
|
||||
- AMDSMI CLI tool enabled for Linux Bare Metal & Guest
|
||||
|
||||
- Package: amd-smi-lib
|
||||
|
||||
##### Known Issues
|
||||
|
||||
- not all Error Correction Code (ECC) fields are currently supported
|
||||
|
||||
- RHEL 8 & SLES 15 have extra install steps
|
||||
|
||||
#### Kernel Modules (DKMS)
|
||||
|
||||
##### Fixes
|
||||
|
||||
- Stability fix for multi GPU system reproducilble via ROCm_Bandwidth_Test as reported in [Issue 2198](https://github.com/RadeonOpenCompute/ROCm/issues/2198).
|
||||
|
||||
#### HIP 5.6 (For ROCm 5.6)
|
||||
|
||||
##### Optimizations
|
||||
|
||||
- Consolidation of hipamd, rocclr and OpenCL projects in clr
|
||||
- Optimized lock for graph global capture mode
|
||||
|
||||
##### Added
|
||||
|
||||
- Added hipRTC support for amd_hip_fp16
|
||||
- Added hipStreamGetDevice implementation to get the device associated with the stream
|
||||
- Added HIP_AD_FORMAT_SIGNED_INT16 in hipArray formats
|
||||
- hipArrayGetInfo for getting information about the specified array
|
||||
- hipArrayGetDescriptor for getting 1D or 2D array descriptor
|
||||
- hipArray3DGetDescriptor to get 3D array descriptor
|
||||
|
||||
##### Changed
|
||||
|
||||
- hipMallocAsync to return success for zero size allocation to match hipMalloc
|
||||
- Separation of hipcc perl binaries from HIP project to hipcc project. hip-devel package depends on newly added hipcc package
|
||||
- Consolidation of hipamd, ROCclr, and OpenCL repositories into a single repository called clr. Instructions are updated to build HIP from sources in the HIP Installation guide
|
||||
- Removed hipBusBandwidth and hipCommander samples from hip-tests
|
||||
|
||||
##### Fixed
|
||||
|
||||
- Fixed regression in hipMemCpyParam3D when offset is applied
|
||||
|
||||
##### Known Issues
|
||||
|
||||
- Limited testing on xnack+ configuration
|
||||
- Multiple HIP tests failures (gpuvm fault or hangs)
|
||||
- hipSetDevice and hipSetDeviceFlags APIs return hipErrorInvalidDevice instead of hipErrorNoDevice, on a system without GPU
|
||||
- Known memory leak when code object files are loaded/unloaded via hipModuleLoad/hipModuleUnload APIs. Issue will be fixed in a future ROCm release
|
||||
|
||||
##### Upcoming changes in future release
|
||||
|
||||
- Removal of gcnarch from hipDeviceProp_t structure
|
||||
- Addition of new fields in hipDeviceProp_t structure
|
||||
- maxTexture1D
|
||||
- maxTexture2D
|
||||
- maxTexture1DLayered
|
||||
- maxTexture2DLayered
|
||||
- sharedMemPerMultiprocessor
|
||||
- deviceOverlap
|
||||
- asyncEngineCount
|
||||
- surfaceAlignment
|
||||
- unifiedAddressing
|
||||
- computePreemptionSupported
|
||||
- uuid
|
||||
- Removal of deprecated code
|
||||
- hip-hcc codes from hip code tree
|
||||
- Correct hipArray usage in HIP APIs such as hipMemcpyAtoH and hipMemcpyHtoA
|
||||
- HIPMEMCPY_3D fields correction (unsigned int -> size_t)
|
||||
- Renaming of 'memoryType' in hipPointerAttribute_t structure to 'type'
|
||||
|
||||
#### ROCgdb-13 (For ROCm 5.6.0)
|
||||
|
||||
##### Optimized
|
||||
|
||||
- Improved performances when handling the end of a process with a large number of threads.
|
||||
|
||||
Known Issues
|
||||
|
||||
- On certain configurations, ROCgdb can show the following warning message:
|
||||
|
||||
`warning: Probes-based dynamic linker interface failed. Reverting to original interface.`
|
||||
|
||||
This does not affect ROCgdb's functionalities.
|
||||
|
||||
#### ROCprofiler (For ROCm 5.6.0)
|
||||
|
||||
In ROCm 5.6 the `rocprofilerv1` and `rocprofilerv2` include and library files of
|
||||
ROCm 5.5 are split into separate files. The `rocmtools` files that were
|
||||
deprecated in ROCm 5.5 have been removed.
|
||||
|
||||
| ROCm 5.6 | rocprofilerv1 | rocprofilerv2 |
|
||||
|-----------------|-------------------------------------|----------------------------------------|
|
||||
| **Tool script** | `bin/rocprof` | `bin/rocprofv2` |
|
||||
| **API include** | `include/rocprofiler/rocprofiler.h` | `include/rocprofiler/v2/rocprofiler.h` |
|
||||
| **API library** | `lib/librocprofiler.so.1` | `lib/librocprofiler.so.2` |
|
||||
|
||||
The ROCm Profiler Tool that uses `rocprofilerV1` can be invoked using the
|
||||
following command:
|
||||
|
||||
```sh
|
||||
$ rocprof …
|
||||
```
|
||||
|
||||
To write a custom tool based on the `rocprofilerV1` API do the following:
|
||||
|
||||
```C
|
||||
main.c:
|
||||
#include <rocprofiler/rocprofiler.h> // Use the rocprofilerV1 API
|
||||
int main() {
|
||||
// Use the rocprofilerV1 API
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
This can be built in the following manner:
|
||||
|
||||
```sh
|
||||
$ gcc main.c -I/opt/rocm-5.6.0/include -L/opt/rocm-5.6.0/lib -lrocprofiler64
|
||||
```
|
||||
|
||||
The resulting `a.out` will depend on
|
||||
`/opt/rocm-5.6.0/lib/librocprofiler64.so.1`.
|
||||
|
||||
The ROCm Profiler that uses `rocprofilerV2` API can be invoked using the
|
||||
following command:
|
||||
|
||||
```sh
|
||||
$ rocprofv2 …
|
||||
```
|
||||
|
||||
To write a custom tool based on the `rocprofilerV2` API do the following:
|
||||
|
||||
```C
|
||||
main.c:
|
||||
#include <rocprofiler/v2/rocprofiler.h> // Use the rocprofilerV2 API
|
||||
int main() {
|
||||
// Use the rocprofilerV2 API
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
This can be built in the following manner:
|
||||
|
||||
```sh
|
||||
$ gcc main.c -I/opt/rocm-5.6.0/include -L/opt/rocm-5.6.0/lib -lrocprofiler64-v2
|
||||
```
|
||||
|
||||
The resulting `a.out` will depend on
|
||||
`/opt/rocm-5.6.0/lib/librocprofiler64.so.2`.
|
||||
|
||||
##### Optimized
|
||||
|
||||
- Improved Test Suite
|
||||
|
||||
##### Added
|
||||
|
||||
- 'end_time' need to be disabled in roctx_trace.txt
|
||||
|
||||
##### Fixed
|
||||
|
||||
- rocprof in ROcm/5.4.0 gpu selector broken.
|
||||
- rocprof in ROCm/5.4.1 fails to generate kernel info.
|
||||
- rocprof clobbers LD_PRELOAD.
|
||||
|
||||
### Library Changes in ROCM 5.6.0
|
||||
|
||||
| Library | Version |
|
||||
|---------|---------|
|
||||
| hipBLAS | ⇒ [1.0.0](https://github.com/ROCmSoftwarePlatform/hipBLAS/releases/tag/rocm-5.6.0) |
|
||||
| hipCUB | ⇒ [2.13.1](https://github.com/ROCmSoftwarePlatform/hipCUB/releases/tag/rocm-5.6.0) |
|
||||
| hipFFT | ⇒ [1.0.12](https://github.com/ROCmSoftwarePlatform/hipFFT/releases/tag/rocm-5.6.0) |
|
||||
| hipSOLVER | ⇒ [1.8.0](https://github.com/ROCmSoftwarePlatform/hipSOLVER/releases/tag/rocm-5.6.0) |
|
||||
| hipSPARSE | ⇒ [2.3.6](https://github.com/ROCmSoftwarePlatform/hipSPARSE/releases/tag/rocm-5.6.0) |
|
||||
| MIOpen | ⇒ [2.19.0](https://github.com/ROCmSoftwarePlatform/MIOpen/releases/tag/rocm-5.6.0) |
|
||||
| rccl | ⇒ [2.15.5](https://github.com/ROCmSoftwarePlatform/rccl/releases/tag/rocm-5.6.0) |
|
||||
| rocALUTION | ⇒ [2.1.9](https://github.com/ROCmSoftwarePlatform/rocALUTION/releases/tag/rocm-5.6.0) |
|
||||
| rocBLAS | ⇒ [3.0.0](https://github.com/ROCmSoftwarePlatform/rocBLAS/releases/tag/rocm-5.6.0) |
|
||||
| rocFFT | ⇒ [1.0.23](https://github.com/ROCmSoftwarePlatform/rocFFT/releases/tag/rocm-5.6.0) |
|
||||
| rocm-cmake | ⇒ [0.9.0](https://github.com/RadeonOpenCompute/rocm-cmake/releases/tag/rocm-5.6.0) |
|
||||
| rocPRIM | ⇒ [2.13.0](https://github.com/ROCmSoftwarePlatform/rocPRIM/releases/tag/rocm-5.6.0) |
|
||||
| rocRAND | ⇒ [2.10.17](https://github.com/ROCmSoftwarePlatform/rocRAND/releases/tag/rocm-5.6.0) |
|
||||
| rocSOLVER | ⇒ [3.22.0](https://github.com/ROCmSoftwarePlatform/rocSOLVER/releases/tag/rocm-5.6.0) |
|
||||
| rocSPARSE | ⇒ [2.5.2](https://github.com/ROCmSoftwarePlatform/rocSPARSE/releases/tag/rocm-5.6.0) |
|
||||
| rocThrust | ⇒ [2.18.0](https://github.com/ROCmSoftwarePlatform/rocThrust/releases/tag/rocm-5.6.0) |
|
||||
| rocWMMA | ⇒ [1.1.0](https://github.com/ROCmSoftwarePlatform/rocWMMA/releases/tag/rocm-5.6.0) |
|
||||
| Tensile | ⇒ [4.37.0](https://github.com/ROCmSoftwarePlatform/Tensile/releases/tag/rocm-5.6.0) |
|
||||
|
||||
#### hipBLAS 1.0.0
|
||||
|
||||
hipBLAS 1.0.0 for ROCm 5.6.0
|
||||
|
||||
##### Changed
|
||||
|
||||
- added const qualifier to hipBLAS functions (swap, sbmv, spmv, symv, trsm) where missing
|
||||
|
||||
##### Removed
|
||||
|
||||
- removed support for deprecated hipblasInt8Datatype_t enum
|
||||
- removed support for deprecated hipblasSetInt8Datatype and hipblasGetInt8Datatype functions
|
||||
|
||||
##### Deprecated
|
||||
|
||||
- in-place trmm is deprecated. It will be replaced by trmm which includes both in-place and
|
||||
out-of-place functionality
|
||||
|
||||
#### hipCUB 2.13.1
|
||||
|
||||
hipCUB 2.13.1 for ROCm 5.6.0
|
||||
|
||||
##### Added
|
||||
|
||||
- Benchmarks for `BlockShuffle`, `BlockLoad`, and `BlockStore`.
|
||||
|
||||
##### Changed
|
||||
|
||||
- CUB backend references CUB and Thrust version 1.17.2.
|
||||
- Improved benchmark coverage of `BlockScan` by adding `ExclusiveScan`, benchmark coverage of `BlockRadixSort` by adding `SortBlockedToStriped`, and benchmark coverage of `WarpScan` by adding `Broadcast`.
|
||||
- Updated `docs` directory structure to match the standard of [rocm-docs-core](https://github.com/RadeonOpenCompute/rocm-docs-core).
|
||||
|
||||
##### Known Issues
|
||||
|
||||
- `BlockRadixRankMatch` is currently broken under the rocPRIM backend.
|
||||
- `BlockRadixRankMatch` with a warp size that does not exactly divide the block size is broken under the CUB backend.
|
||||
|
||||
#### hipFFT 1.0.12
|
||||
|
||||
hipFFT 1.0.12 for ROCm 5.6.0
|
||||
|
||||
##### Added
|
||||
|
||||
- Implemented the hipfftXtMakePlanMany, hipfftXtGetSizeMany, hipfftXtExec APIs, to allow requesting half-precision transforms.
|
||||
|
||||
##### Changed
|
||||
|
||||
- Added --precision argument to benchmark/test clients. --double is still accepted but is deprecated as a method to request a double-precision transform.
|
||||
|
||||
#### hipSOLVER 1.8.0
|
||||
|
||||
hipSOLVER 1.8.0 for ROCm 5.6.0
|
||||
|
||||
##### Added
|
||||
|
||||
- Added compatibility API with hipsolverRf prefix
|
||||
|
||||
#### hipSPARSE 2.3.6
|
||||
|
||||
hipSPARSE 2.3.6 for ROCm 5.6.0
|
||||
|
||||
##### Added
|
||||
|
||||
- Added SpGEMM algorithms
|
||||
|
||||
##### Changed
|
||||
|
||||
- For hipsparseXbsr2csr and hipsparseXcsr2bsr, blockDim == 0 now returns HIPSPARSE_STATUS_INVALID_SIZE
|
||||
|
||||
#### MIOpen 2.19.0
|
||||
|
||||
MIOpen 2.19.0 for ROCm 5.6.0
|
||||
|
||||
##### Added
|
||||
|
||||
- ROCm 5.5 support for gfx1101 (Navi32)
|
||||
|
||||
##### Changed
|
||||
|
||||
- Tuning results for MLIR on ROCm 5.5
|
||||
- Bumping MLIR commit to 5.5.0 release tag
|
||||
|
||||
##### Fixed
|
||||
|
||||
- Fix 3d convolution Host API bug
|
||||
- [HOTFIX][MI200][FP16] Disabled ConvHipImplicitGemmBwdXdlops when FP16_ALT is required.
|
||||
|
||||
#### rccl 2.15.5
|
||||
|
||||
RCCL 2.15.5 for ROCm 5.6.0
|
||||
|
||||
##### Changed
|
||||
|
||||
- Compatibility with NCCL 2.15.5
|
||||
- Unit test executable renamed to rccl-UnitTests
|
||||
|
||||
##### Added
|
||||
|
||||
- HW-topology aware binary tree implementation
|
||||
- Experimental support for MSCCL
|
||||
- New unit tests for hipGraph support
|
||||
- NPKit integration
|
||||
|
||||
##### Fixed
|
||||
|
||||
- rocm-smi ID conversion
|
||||
- Support for HIP_VISIBLE_DEVICES for unit tests
|
||||
- Support for p2p transfers to non (HIP) visible devices
|
||||
|
||||
##### Removed
|
||||
|
||||
- Removed TransferBench from tools. Exists in standalone repo: https://github.com/ROCmSoftwarePlatform/TransferBench
|
||||
|
||||
#### rocALUTION 2.1.9
|
||||
|
||||
rocALUTION 2.1.9 for ROCm 5.6.0
|
||||
|
||||
##### Improved
|
||||
|
||||
- Fixed synchronization issues in level 1 routines
|
||||
|
||||
#### rocBLAS 3.0.0
|
||||
|
||||
rocBLAS 3.0.0 for ROCm 5.6.0
|
||||
|
||||
##### Optimizations
|
||||
|
||||
- Improved performance of Level 2 rocBLAS GEMV on gfx90a GPU for non-transposed problems having small matrices and larger batch counts. Performance enhanced for problem sizes when m and n <= 32 and batch_count >= 256.
|
||||
- Improved performance of rocBLAS syr2k for single, double, and double-complex precision, and her2k for double-complex precision. Slightly improved performance for general sizes on gfx90a.
|
||||
|
||||
##### Added
|
||||
|
||||
- Added bf16 inputs and f32 compute support to Level 1 rocBLAS Extension functions axpy_ex, scal_ex and nrm2_ex.
|
||||
|
||||
##### Deprecated
|
||||
|
||||
- trmm inplace is deprecated. It will be replaced by trmm that has both inplace and out-of-place functionality
|
||||
- rocblas_query_int8_layout_flag() is deprecated and will be removed in a future release
|
||||
- rocblas_gemm_flags_pack_int8x4 enum is deprecated and will be removed in a future release
|
||||
- rocblas_set_device_memory_size() is deprecated and will be replaced by a future function rocblas_increase_device_memory_size()
|
||||
- rocblas_is_user_managing_device_memory() is deprecated and will be removed in a future release
|
||||
|
||||
##### Removed
|
||||
|
||||
- is_complex helper was deprecated and now removed. Use rocblas_is_complex instead.
|
||||
- The enum truncate_t and the value truncate was deprecated and now removed from. It was replaced by rocblas_truncate_t and rocblas_truncate, respectively.
|
||||
- rocblas_set_int8_type_for_hipblas was deprecated and is now removed.
|
||||
- rocblas_get_int8_type_for_hipblas was deprecated and is now removed.
|
||||
|
||||
##### Dependencies
|
||||
|
||||
- build only dependency on python joblib added as used by Tensile build
|
||||
- fix for cmake install on some OS when performed by install.sh -d --cmake_install
|
||||
|
||||
##### Fixed
|
||||
|
||||
- make trsm offset calculations 64 bit safe
|
||||
|
||||
##### Changed
|
||||
|
||||
- refactor rotg test code
|
||||
|
||||
#### rocFFT 1.0.23
|
||||
|
||||
rocFFT 1.0.23 for ROCm 5.6.0
|
||||
|
||||
##### Added
|
||||
|
||||
- Implemented half-precision transforms, which can be requested by passing rocfft_precision_half to rocfft_plan_create.
|
||||
- Implemented a hierarchical solution map which saves how to decompose a problem and the kernels to be used.
|
||||
- Implemented a first version of offline-tuner to support tuning kernels for C2C/Z2Z problems.
|
||||
|
||||
##### Changed
|
||||
|
||||
- Replaced std::complex with hipComplex data types for data generator.
|
||||
- FFT plan dimensions are now sorted to be row-major internally where possible, which produces better plans if the dimensions were accidentally specified in a different order (column-major, for example).
|
||||
- Added --precision argument to benchmark/test clients. --double is still accepted but is deprecated as a method to request a double-precision transform.
|
||||
|
||||
##### Fixed
|
||||
|
||||
- Fixed over-allocation of LDS in some real-complex kernels, which was resulting in kernel launch failure.
|
||||
|
||||
#### rocm-cmake 0.9.0
|
||||
|
||||
rocm-cmake 0.9.0 for ROCm 5.6.0
|
||||
|
||||
##### Added
|
||||
|
||||
- Added the option ROCM_HEADER_WRAPPER_WERROR
|
||||
- Compile-time C macro in the wrapper headers causes errors to be emitted instead of warnings.
|
||||
- Configure-time CMake option sets the default for the C macro.
|
||||
|
||||
#### rocPRIM 2.13.0
|
||||
|
||||
rocPRIM 2.13.0 for ROCm 5.6.0
|
||||
|
||||
##### Added
|
||||
|
||||
- New block level `radix_rank` primitive.
|
||||
- New block level `radix_rank_match` primitive.
|
||||
- Added a stable block sorting implementation. This be used with `block_sort` by using the `block_sort_algorithm::stable_merge_sort` algorithm.
|
||||
|
||||
##### Changed
|
||||
|
||||
- Improved the performance of `block_radix_sort` and `device_radix_sort`.
|
||||
- Improved the performance of `device_merge_sort`.
|
||||
- Updated `docs` directory structure to match the standard of [rocm-docs-core](https://github.com/RadeonOpenCompute/rocm-docs-core). Contributed by: [v01dXYZ](https://github.com/v01dXYZ).
|
||||
|
||||
##### Known Issues
|
||||
|
||||
- Disabled GPU error messages relating to incorrect warp operation usage with Navi GPUs on Windows, due to GPU printf performance issues on Windows.
|
||||
- When `ROCPRIM_DISABLE_LOOKBACK_SCAN` is set, `device_scan` fails for input sizes bigger than `scan_config::size_limit`, which defaults to `std::numeric_limits<unsigned int>::max()`.
|
||||
|
||||
#### rocRAND 2.10.17
|
||||
|
||||
rocRAND 2.10.17 for ROCm 5.6.0
|
||||
|
||||
##### Added
|
||||
|
||||
- MT19937 pseudo random number generator based on M. Matsumoto and T. Nishimura, 1998, Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator.
|
||||
- New benchmark for the device API using Google Benchmark, `benchmark_rocrand_device_api`, replacing `benchmark_rocrand_kernel`. `benchmark_rocrand_kernel` is deprecated and will be removed in a future version. Likewise, `benchmark_curand_host_api` is added to replace `benchmark_curand_generate` and `benchmark_curand_device_api` is added to replace `benchmark_curand_kernel`.
|
||||
- experimental HIP-CPU feature
|
||||
- ThreeFry pseudorandom number generator based on Salmon et al., 2011, "Parallel random numbers: as easy as 1, 2, 3".
|
||||
|
||||
##### Changed
|
||||
|
||||
- Python 2.7 is no longer officially supported.
|
||||
|
||||
#### rocSOLVER 3.22.0
|
||||
|
||||
rocSOLVER 3.22.0 for ROCm 5.6.0
|
||||
|
||||
##### Added
|
||||
|
||||
- LU refactorization for sparse matrices
|
||||
- CSRRF_ANALYSIS
|
||||
- CSRRF_SUMLU
|
||||
- CSRRF_SPLITLU
|
||||
- CSRRF_REFACTLU
|
||||
- Linear system solver for sparse matrices
|
||||
- CSRRF_SOLVE
|
||||
- Added type `rocsolver_rfinfo` for use with sparse matrix routines
|
||||
|
||||
##### Optimized
|
||||
|
||||
- Improved the performance of BDSQR and GESVD when singular vectors are requested
|
||||
|
||||
##### Fixed
|
||||
|
||||
- BDSQR and GESVD should no longer hang when the input contains `NaN` or `Inf`
|
||||
|
||||
#### rocSPARSE 2.5.2
|
||||
|
||||
rocSPARSE 2.5.2 for ROCm 5.6.0
|
||||
|
||||
##### Improved
|
||||
|
||||
- Fixed a memory leak in csritsv
|
||||
- Fixed a bug in csrsm and bsrsm
|
||||
|
||||
#### rocThrust 2.18.0
|
||||
|
||||
rocThrust 2.18.0 for ROCm 5.6.0
|
||||
|
||||
##### Fixed
|
||||
|
||||
- `lower_bound`, `upper_bound`, and `binary_search` failed to compile for certain types.
|
||||
|
||||
##### Changed
|
||||
|
||||
- Updated `docs` directory structure to match the standard of [rocm-docs-core](https://github.com/RadeonOpenCompute/rocm-docs-core).
|
||||
|
||||
#### rocWMMA 1.1.0
|
||||
|
||||
rocWMMA 1.1.0 for ROCm 5.6.0
|
||||
|
||||
##### Added
|
||||
|
||||
- Added cross-lane operation backends (Blend, Permute, Swizzle and Dpp)
|
||||
- Added GPU kernels for rocWMMA unit test pre-process and post-process operations (fill, validation)
|
||||
- Added performance gemm samples for half, single and double precision
|
||||
- Added rocWMMA cmake versioning
|
||||
- Added vectorized support in coordinate transforms
|
||||
- Included ROCm smi for runtime clock rate detection
|
||||
- Added fragment transforms for transpose and change data layout
|
||||
|
||||
##### Changed
|
||||
|
||||
- Default to GPU rocBLAS validation against rocWMMA
|
||||
- Re-enabled int8 gemm tests on gfx9
|
||||
- Upgraded to C++17
|
||||
- Restructured unit test folder for consistency
|
||||
- Consolidated rocWMMA samples common code
|
||||
|
||||
#### Tensile 4.37.0
|
||||
|
||||
Tensile 4.37.0 for ROCm 5.6.0
|
||||
|
||||
##### Added
|
||||
|
||||
- Added user driven tuning API
|
||||
- Added decision tree fallback feature
|
||||
- Added SingleBuffer + AtomicAdd option for GlobalSplitU
|
||||
- DirectToVgpr support for fp16 and Int8 with TN orientation
|
||||
- Added new test cases for various functions
|
||||
- Added SingleBuffer algorithm for ZGEMM/CGEMM
|
||||
- Added joblib for parallel map calls
|
||||
- Added support for MFMA + LocalSplitU + DirectToVgprA+B
|
||||
- Added asmcap check for MIArchVgpr
|
||||
- Added support for MFMA + LocalSplitU
|
||||
- Added frequency, power, and temperature data to the output
|
||||
|
||||
##### Optimizations
|
||||
|
||||
- Improved the performance of GlobalSplitU with SingleBuffer algorithm
|
||||
- Reduced the running time of the extended and pre_checkin tests
|
||||
- Optimized the Tailloop section of the assembly kernel
|
||||
- Optimized complex GEMM (fixed vgpr allocation, unified CGEMM and ZGEMM code in MulMIoutAlphaToArch)
|
||||
- Improved the performance of the second kernel of MultipleBuffer algorithm
|
||||
|
||||
##### Changed
|
||||
|
||||
- Updated custom kernels with 64-bit offsets
|
||||
- Adapted 64-bit offset arguments for assembly kernels
|
||||
- Improved temporary register re-use to reduce max sgpr usage
|
||||
- Removed some restrictions on VectorWidth and DirectToVgpr
|
||||
- Updated the dependency requirements for Tensile
|
||||
- Changed the range of AssertSummationElementMultiple
|
||||
- Modified the error messages for more clarity
|
||||
- Changed DivideAndReminder to vectorStaticRemainder in case quotient is not used
|
||||
- Removed dummy vgpr for vectorStaticRemainder
|
||||
- Removed tmpVgpr parameter from vectorStaticRemainder/Divide/DivideAndReminder
|
||||
- Removed qReg parameter from vectorStaticRemainder
|
||||
|
||||
##### Fixed
|
||||
|
||||
- Fixed tmp sgpr allocation to avoid over-writing values (alpha)
|
||||
- 64-bit offset parameters for post kernels
|
||||
- Fixed gfx908 CI test failures
|
||||
- Fixed offset calculation to prevent overflow for large offsets
|
||||
- Fixed issues when BufferLoad and BufferStore are equal to zero
|
||||
- Fixed StoreCInUnroll + DirectToVgpr + no useInitAccVgprOpt mismatch
|
||||
- Fixed DirectToVgpr + LocalSplitU + FractionalLoad mismatch
|
||||
- Fixed the memory access error related to StaggerU + large stride
|
||||
- Fixed ZGEMM 4x4 MatrixInst mismatch
|
||||
- Fixed DGEMM 4x4 MatrixInst mismatch
|
||||
- Fixed ASEM + GSU + NoTailLoop opt mismatch
|
||||
- Fixed AssertSummationElementMultiple + GlobalSplitU issues
|
||||
- Fixed ASEM + GSU + TailLoop inner unroll
|
||||
|
||||
-------------------
|
||||
|
||||
## ROCm 5.5.1
|
||||
<!-- markdownlint-disable first-line-h1 -->
|
||||
<!-- markdownlint-disable no-duplicate-header -->
|
||||
### What's New in This Release
|
||||
|
||||
#### HIP SDK for Windows
|
||||
|
||||
AMD is pleased to announce the availability of the HIP SDK for Windows as part
|
||||
of the ROCm platform. The
|
||||
[HIP SDK OS and GPU support page](https://rocm.docs.amd.com/en/docs-5.5.1/release/windows_support.html)
|
||||
lists the versions of Windows and GPUs validated by AMD. HIP SDK features on
|
||||
Windows are described in detail in our
|
||||
[What is ROCm?](https://rocm.docs.amd.com/en/docs-5.5.1/rocm.html#rocm-on-windows)
|
||||
page and differs from the Linux feature set. Visit
|
||||
[Quick Start](https://rocm.docs.amd.com/en/docs-5.5.1/deploy/windows/quick_start.html#)
|
||||
page to get started. Known issues are tracked on
|
||||
[GitHub](https://github.com/RadeonOpenCompute/ROCm/issues?q=is%3Aopen+label%3A5.5.1+label%3A%22Verified+Issue%22+label%3AWindows).
|
||||
|
||||
#### HIP API Change
|
||||
|
||||
The following HIP API is updated in the ROCm 5.5.1 release:
|
||||
|
||||
##### `hipDeviceSetCacheConfig`
|
||||
|
||||
- The return value for `hipDeviceSetCacheConfig` is updated from `hipErrorNotSupported` to `hipSuccess`
|
||||
|
||||
### Library Changes in ROCM 5.5.1
|
||||
|
||||
| Library | Version |
|
||||
|---------|---------|
|
||||
| hipBLAS | [0.54.0](https://github.com/ROCmSoftwarePlatform/hipBLAS/releases/tag/rocm-5.5.1) |
|
||||
| hipCUB | [2.13.1](https://github.com/ROCmSoftwarePlatform/hipCUB/releases/tag/rocm-5.5.1) |
|
||||
| hipFFT | [1.0.11](https://github.com/ROCmSoftwarePlatform/hipFFT/releases/tag/rocm-5.5.1) |
|
||||
| hipSOLVER | [1.7.0](https://github.com/ROCmSoftwarePlatform/hipSOLVER/releases/tag/rocm-5.5.1) |
|
||||
| hipSPARSE | [2.3.5](https://github.com/ROCmSoftwarePlatform/hipSPARSE/releases/tag/rocm-5.5.1) |
|
||||
| MIOpen | [2.19.0](https://github.com/ROCmSoftwarePlatform/MIOpen/releases/tag/rocm-5.5.1) |
|
||||
| rccl | [2.15.5](https://github.com/ROCmSoftwarePlatform/rccl/releases/tag/rocm-5.5.1) |
|
||||
| rocALUTION | [2.1.8](https://github.com/ROCmSoftwarePlatform/rocALUTION/releases/tag/rocm-5.5.1) |
|
||||
| rocBLAS | [2.47.0](https://github.com/ROCmSoftwarePlatform/rocBLAS/releases/tag/rocm-5.5.1) |
|
||||
| rocFFT | [1.0.22](https://github.com/ROCmSoftwarePlatform/rocFFT/releases/tag/rocm-5.5.1) |
|
||||
| rocm-cmake | [0.8.1](https://github.com/RadeonOpenCompute/rocm-cmake/releases/tag/rocm-5.5.1) |
|
||||
| rocPRIM | [2.13.0](https://github.com/ROCmSoftwarePlatform/rocPRIM/releases/tag/rocm-5.5.1) |
|
||||
| rocRAND | [2.10.17](https://github.com/ROCmSoftwarePlatform/rocRAND/releases/tag/rocm-5.5.1) |
|
||||
| rocSOLVER | [3.21.0](https://github.com/ROCmSoftwarePlatform/rocSOLVER/releases/tag/rocm-5.5.1) |
|
||||
| rocSPARSE | [2.5.1](https://github.com/ROCmSoftwarePlatform/rocSPARSE/releases/tag/rocm-5.5.1) |
|
||||
| rocThrust | [2.17.0](https://github.com/ROCmSoftwarePlatform/rocThrust/releases/tag/rocm-5.5.1) |
|
||||
| rocWMMA | [1.0](https://github.com/ROCmSoftwarePlatform/rocWMMA/releases/tag/rocm-5.5.1) |
|
||||
| Tensile | [4.36.0](https://github.com/ROCmSoftwarePlatform/Tensile/releases/tag/rocm-5.5.1) |
|
||||
|
||||
-------------------
|
||||
|
||||
## ROCm 5.5.0
|
||||
<!-- markdownlint-disable first-line-h1 -->
|
||||
<!-- markdownlint-disable no-duplicate-header -->
|
||||
@@ -41,6 +663,29 @@ The following hipcc changes are implemented in this release:
|
||||
- `hipCommander` at <https://github.com/ROCm-Developer-Tools/hip-tests/tree/develop/samples/1_Utils/hipCommander>
|
||||
|
||||
Note that the samples will continue to be available in previous release branches.
|
||||
- Removal of gcnarch from hipDeviceProp_t structure
|
||||
- Addition of new fields in hipDeviceProp_t structure
|
||||
- maxTexture1D
|
||||
- maxTexture2D
|
||||
- maxTexture1DLayered
|
||||
- maxTexture2DLayered
|
||||
- sharedMemPerMultiprocessor
|
||||
- deviceOverlap
|
||||
- asyncEngineCount
|
||||
- surfaceAlignment
|
||||
- unifiedAddressing
|
||||
- computePreemptionSupported
|
||||
- hostRegisterSupported
|
||||
- uuid
|
||||
- Removal of deprecated code
|
||||
- hip-hcc codes from hip code tree
|
||||
- Correct hipArray usage in HIP APIs such as hipMemcpyAtoH and hipMemcpyHtoA
|
||||
- HIPMEMCPY_3D fields correction to avoid truncation of "size_t" to "unsigned int" inside hipMemcpy3D()
|
||||
- Renaming of 'memoryType' in hipPointerAttribute_t structure to 'type'
|
||||
- Correct hipGetLastError to return the last error instead of last API call's return code
|
||||
- Update hipExternalSemaphoreHandleDesc to add "unsigned int reserved[16]"
|
||||
- Correct handling of flag values in hipIpcOpenMemHandle for hipIpcMemLazyEnablePeerAccess
|
||||
- Remove hiparray* and make it opaque with hipArray_t
|
||||
|
||||
##### New HIP APIs in This Release
|
||||
|
||||
@@ -309,10 +954,12 @@ Multiple HIP directed tests fail.
|
||||
| hipFFT | 1.0.10 ⇒ [1.0.11](https://github.com/ROCmSoftwarePlatform/hipFFT/releases/tag/rocm-5.5.0) |
|
||||
| hipSOLVER | 1.6.0 ⇒ [1.7.0](https://github.com/ROCmSoftwarePlatform/hipSOLVER/releases/tag/rocm-5.5.0) |
|
||||
| hipSPARSE | 2.3.3 ⇒ [2.3.5](https://github.com/ROCmSoftwarePlatform/hipSPARSE/releases/tag/rocm-5.5.0) |
|
||||
| MIOpen | ⇒ [2.19.0](https://github.com/ROCmSoftwarePlatform/MIOpen/releases/tag/rocm-5.5.0) |
|
||||
| rccl | 2.13.4 ⇒ [2.15.5](https://github.com/ROCmSoftwarePlatform/rccl/releases/tag/rocm-5.5.0) |
|
||||
| rocALUTION | 2.1.3 ⇒ [2.1.8](https://github.com/ROCmSoftwarePlatform/rocALUTION/releases/tag/rocm-5.5.0) |
|
||||
| rocBLAS | 2.46.0 ⇒ [2.47.0](https://github.com/ROCmSoftwarePlatform/rocBLAS/releases/tag/rocm-5.5.0) |
|
||||
| rocFFT | 1.0.21 ⇒ [1.0.22](https://github.com/ROCmSoftwarePlatform/rocFFT/releases/tag/rocm-5.5.0) |
|
||||
| rocm-cmake | 0.8.0 ⇒ [0.8.1](https://github.com/RadeonOpenCompute/rocm-cmake/releases/tag/rocm-5.5.0) |
|
||||
| rocPRIM | 2.12.0 ⇒ [2.13.0](https://github.com/ROCmSoftwarePlatform/rocPRIM/releases/tag/rocm-5.5.0) |
|
||||
| rocRAND | 2.10.16 ⇒ [2.10.17](https://github.com/ROCmSoftwarePlatform/rocRAND/releases/tag/rocm-5.5.0) |
|
||||
| rocSOLVER | 3.20.0 ⇒ [3.21.0](https://github.com/ROCmSoftwarePlatform/rocSOLVER/releases/tag/rocm-5.5.0) |
|
||||
@@ -402,6 +1049,24 @@ hipSPARSE 2.3.5 for ROCm 5.5.0
|
||||
- Improved documentation
|
||||
- Fixed a bug with deprecation messages when using gcc9 (Thanks @Maetveis)
|
||||
|
||||
#### MIOpen 2.19.0
|
||||
|
||||
MIOpen 2.19.0 for ROCm 5.5.0
|
||||
|
||||
##### Added
|
||||
|
||||
- ROCm 5.5 support for gfx1101 (Navi32)
|
||||
|
||||
##### Changed
|
||||
|
||||
- Tuning results for MLIR on ROCm 5.5
|
||||
- Bumping MLIR commit to 5.5.0 release tag
|
||||
|
||||
##### Fixed
|
||||
|
||||
- Fix 3d convolution Host API bug
|
||||
- [HOTFIX][MI200][FP16] Disabled ConvHipImplicitGemmBwdXdlops when FP16_ALT is required.
|
||||
|
||||
#### rccl 2.15.5
|
||||
|
||||
RCCL 2.15.5 for ROCm 5.5.0
|
||||
@@ -513,6 +1178,18 @@ rocFFT 1.0.22 for ROCm 5.5.0
|
||||
- Removed zero-length twiddle table allocations, which fixes errors from hipMallocManaged.
|
||||
- Fixed incorrect freeing of HIP stream handles during twiddle computation when multiple devices are present.
|
||||
|
||||
#### rocm-cmake 0.8.1
|
||||
|
||||
rocm-cmake 0.8.1 for ROCm 5.5.0
|
||||
|
||||
##### Fixed
|
||||
|
||||
- ROCMInstallTargets: Added compatibility symlinks for included cmake files in `<ROCM>/lib/cmake/<PACKAGE>`.
|
||||
|
||||
##### Changed
|
||||
|
||||
- ROCMHeaderWrapper: The wrapper header deprecation message is now a deprecation warning.
|
||||
|
||||
#### rocPRIM 2.13.0
|
||||
|
||||
rocPRIM 2.13.0 for ROCm 5.5.0
|
||||
@@ -828,6 +1505,7 @@ This issue is under investigation, and the known workaround is not to use -save-
|
||||
| rocALUTION | [2.1.3](https://github.com/ROCmSoftwarePlatform/rocALUTION/releases/tag/rocm-5.4.3) |
|
||||
| rocBLAS | [2.46.0](https://github.com/ROCmSoftwarePlatform/rocBLAS/releases/tag/rocm-5.4.3) |
|
||||
| rocFFT | 1.0.20 ⇒ [1.0.21](https://github.com/ROCmSoftwarePlatform/rocFFT/releases/tag/rocm-5.4.3) |
|
||||
| rocm-cmake | [0.8.0](https://github.com/RadeonOpenCompute/rocm-cmake/releases/tag/rocm-5.4.3) |
|
||||
| rocPRIM | [2.12.0](https://github.com/ROCmSoftwarePlatform/rocPRIM/releases/tag/rocm-5.4.3) |
|
||||
| rocRAND | [2.10.16](https://github.com/ROCmSoftwarePlatform/rocRAND/releases/tag/rocm-5.4.3) |
|
||||
| rocSOLVER | [3.20.0](https://github.com/ROCmSoftwarePlatform/rocSOLVER/releases/tag/rocm-5.4.3) |
|
||||
@@ -891,6 +1569,7 @@ This is a known issue and will be fixed in a future release.
|
||||
| rocALUTION | [2.1.3](https://github.com/ROCmSoftwarePlatform/rocALUTION/releases/tag/rocm-5.4.2) |
|
||||
| rocBLAS | [2.46.0](https://github.com/ROCmSoftwarePlatform/rocBLAS/releases/tag/rocm-5.4.2) |
|
||||
| rocFFT | [1.0.20](https://github.com/ROCmSoftwarePlatform/rocFFT/releases/tag/rocm-5.4.2) |
|
||||
| rocm-cmake | [0.8.0](https://github.com/RadeonOpenCompute/rocm-cmake/releases/tag/rocm-5.4.2) |
|
||||
| rocPRIM | [2.12.0](https://github.com/ROCmSoftwarePlatform/rocPRIM/releases/tag/rocm-5.4.2) |
|
||||
| rocRAND | [2.10.16](https://github.com/ROCmSoftwarePlatform/rocRAND/releases/tag/rocm-5.4.2) |
|
||||
| rocSOLVER | [3.20.0](https://github.com/ROCmSoftwarePlatform/rocSOLVER/releases/tag/rocm-5.4.2) |
|
||||
@@ -980,6 +1659,7 @@ Maintenance update #3, combined with ROCm 5.4.1, now provides SRIOV virtualizati
|
||||
| rocALUTION | [2.1.3](https://github.com/ROCmSoftwarePlatform/rocALUTION/releases/tag/rocm-5.4.1) |
|
||||
| rocBLAS | [2.46.0](https://github.com/ROCmSoftwarePlatform/rocBLAS/releases/tag/rocm-5.4.1) |
|
||||
| rocFFT | 1.0.19 ⇒ [1.0.20](https://github.com/ROCmSoftwarePlatform/rocFFT/releases/tag/rocm-5.4.1) |
|
||||
| rocm-cmake | [0.8.0](https://github.com/RadeonOpenCompute/rocm-cmake/releases/tag/rocm-5.4.1) |
|
||||
| rocPRIM | [2.12.0](https://github.com/ROCmSoftwarePlatform/rocPRIM/releases/tag/rocm-5.4.1) |
|
||||
| rocRAND | [2.10.16](https://github.com/ROCmSoftwarePlatform/rocRAND/releases/tag/rocm-5.4.1) |
|
||||
| rocSOLVER | [3.20.0](https://github.com/ROCmSoftwarePlatform/rocSOLVER/releases/tag/rocm-5.4.1) |
|
||||
@@ -1096,6 +1776,8 @@ The `hipcc` and `hipconfig` Perl scripts are deprecated. In a future release, co
|
||||
>
|
||||
> There will be a transition period where the Perl scripts and compiled binaries are available before the scripts are removed. There will be no functional difference between the Perl scripts and their compiled binary counterpart. No user action is required. Once these are available, users can optionally switch to `hipcc.bin` and `hipconfig.bin`. The `hipcc`/`hipconfig` soft link will be assimilated to point from `hipcc`/`hipconfig` to the respective compiled binaries as the default option.
|
||||
|
||||
(5_4_0_filesystem_reorg_deprecation_notice)=
|
||||
|
||||
##### Linux Filesystem Hierarchy Standard for ROCm
|
||||
|
||||
ROCm packages have adopted the Linux foundation filesystem hierarchy standard in this release to ensure ROCm components follow open source conventions for Linux-based distributions. While moving to a new filesystem hierarchy, ROCm ensures backward compatibility with its 5.1 version or older filesystem hierarchy. See below for a detailed explanation of the new filesystem hierarchy and backward compatibility.
|
||||
@@ -1206,9 +1888,8 @@ The test was incorrectly using the `hipDeviceAttributePageableMemoryAccess` devi
|
||||
|
||||
`hipHostMalloc()` allocates memory with fine-grained access by default when the environment variable `HIP_HOST_COHERENT=1` is used.
|
||||
|
||||
For more information, refer to the HIP Programming Guide at
|
||||
For more information, refer to {doc}`hip:.doxygen/docBin/html/index`.
|
||||
|
||||
<https://docs.amd.com/bundle/HIP-Programming-Guide-v5.4/page/Introduction_to_HIP_Programming_Guide.html>
|
||||
|
||||
#### SoftHang with `hipStreamWithCUMask` test on AMD Instinct™
|
||||
|
||||
@@ -1239,6 +1920,7 @@ GPU IDs reported by ROCTracer and ROCProfiler or ROCm Tools are HSA Driver Node
|
||||
| rocALUTION | 2.1.0 ⇒ [2.1.3](https://github.com/ROCmSoftwarePlatform/rocALUTION/releases/tag/rocm-5.4.0) |
|
||||
| rocBLAS | 2.45.0 ⇒ [2.46.0](https://github.com/ROCmSoftwarePlatform/rocBLAS/releases/tag/rocm-5.4.0) |
|
||||
| rocFFT | 1.0.18 ⇒ [1.0.19](https://github.com/ROCmSoftwarePlatform/rocFFT/releases/tag/rocm-5.4.0) |
|
||||
| rocm-cmake | [0.8.0](https://github.com/RadeonOpenCompute/rocm-cmake/releases/tag/rocm-5.4.0) |
|
||||
| rocPRIM | 2.11.0 ⇒ [2.12.0](https://github.com/ROCmSoftwarePlatform/rocPRIM/releases/tag/rocm-5.4.0) |
|
||||
| rocRAND | 2.10.15 ⇒ [2.10.16](https://github.com/ROCmSoftwarePlatform/rocRAND/releases/tag/rocm-5.4.0) |
|
||||
| rocSOLVER | 3.19.0 ⇒ [3.20.0](https://github.com/ROCmSoftwarePlatform/rocSOLVER/releases/tag/rocm-5.4.0) |
|
||||
@@ -1566,6 +2248,7 @@ This issue is resolved with the following fixes to compilation failures:
|
||||
| rocALUTION | [2.1.0](https://github.com/ROCmSoftwarePlatform/rocALUTION/releases/tag/rocm-5.3.3) |
|
||||
| rocBLAS | [2.45.0](https://github.com/ROCmSoftwarePlatform/rocBLAS/releases/tag/rocm-5.3.3) |
|
||||
| rocFFT | [1.0.18](https://github.com/ROCmSoftwarePlatform/rocFFT/releases/tag/rocm-5.3.3) |
|
||||
| rocm-cmake | [0.8.0](https://github.com/RadeonOpenCompute/rocm-cmake/releases/tag/rocm-5.3.3) |
|
||||
| rocPRIM | [2.11.0](https://github.com/ROCmSoftwarePlatform/rocPRIM/releases/tag/rocm-5.3.3) |
|
||||
| rocRAND | [2.10.15](https://github.com/ROCmSoftwarePlatform/rocRAND/releases/tag/rocm-5.3.3) |
|
||||
| rocSOLVER | [3.19.0](https://github.com/ROCmSoftwarePlatform/rocSOLVER/releases/tag/rocm-5.3.3) |
|
||||
@@ -1635,6 +2318,7 @@ This issue is currently under investigation and will be resolved in a future rel
|
||||
| rocALUTION | [2.1.0](https://github.com/ROCmSoftwarePlatform/rocALUTION/releases/tag/rocm-5.3.2) |
|
||||
| rocBLAS | [2.45.0](https://github.com/ROCmSoftwarePlatform/rocBLAS/releases/tag/rocm-5.3.2) |
|
||||
| rocFFT | [1.0.18](https://github.com/ROCmSoftwarePlatform/rocFFT/releases/tag/rocm-5.3.2) |
|
||||
| rocm-cmake | [0.8.0](https://github.com/RadeonOpenCompute/rocm-cmake/releases/tag/rocm-5.3.2) |
|
||||
| rocPRIM | [2.11.0](https://github.com/ROCmSoftwarePlatform/rocPRIM/releases/tag/rocm-5.3.2) |
|
||||
| rocRAND | [2.10.15](https://github.com/ROCmSoftwarePlatform/rocRAND/releases/tag/rocm-5.3.2) |
|
||||
| rocSOLVER | [3.19.0](https://github.com/ROCmSoftwarePlatform/rocSOLVER/releases/tag/rocm-5.3.2) |
|
||||
@@ -1818,6 +2502,7 @@ Workaround: To avoid the system crash, add `amd_iommu=on iommu=pt` as the kernel
|
||||
| rocALUTION | 2.0.3 ⇒ [2.1.0](https://github.com/ROCmSoftwarePlatform/rocALUTION/releases/tag/rocm-5.3.0) |
|
||||
| rocBLAS | 2.44.0 ⇒ [2.45.0](https://github.com/ROCmSoftwarePlatform/rocBLAS/releases/tag/rocm-5.3.0) |
|
||||
| rocFFT | 1.0.17 ⇒ [1.0.18](https://github.com/ROCmSoftwarePlatform/rocFFT/releases/tag/rocm-5.3.0) |
|
||||
| rocm-cmake | ⇒ [0.8.0](https://github.com/RadeonOpenCompute/rocm-cmake/releases/tag/rocm-5.3.0) |
|
||||
| rocPRIM | 2.10.14 ⇒ [2.11.0](https://github.com/ROCmSoftwarePlatform/rocPRIM/releases/tag/rocm-5.3.0) |
|
||||
| rocRAND | 2.10.14 ⇒ [2.10.15](https://github.com/ROCmSoftwarePlatform/rocRAND/releases/tag/rocm-5.3.0) |
|
||||
| rocSOLVER | 3.18.0 ⇒ [3.19.0](https://github.com/ROCmSoftwarePlatform/rocSOLVER/releases/tag/rocm-5.3.0) |
|
||||
@@ -2000,6 +2685,21 @@ rocFFT 1.0.18 for ROCm 5.3.0
|
||||
An example is 98^3 R2C out-of-place.
|
||||
- Fixed bugs in SBRC_ERC type.
|
||||
|
||||
#### rocm-cmake 0.8.0
|
||||
|
||||
rocm-cmake 0.8.0 for ROCm 5.3.0
|
||||
|
||||
##### Fixed
|
||||
|
||||
- Fixed error in prerm scripts created by `rocm_create_package` that could break uninstall for packages using the `PTH` option.
|
||||
|
||||
##### Changed
|
||||
|
||||
- `ROCM_USE_DEV_COMPONENT` set to on by default for all platforms. This means that Windows will now generate runtime and devel packages by default
|
||||
- ROCMInstallTargets now defaults `CMAKE_INSTALL_LIBDIR` to `lib` if not otherwise specified.
|
||||
- Changed default Debian compression type to xz and enabled multi-threaded package compression.
|
||||
- `rocm_create_package` will no longer warn upon failure to determine version of program rpmbuild.
|
||||
|
||||
#### rocPRIM 2.11.0
|
||||
|
||||
rocPRIM 2.11.0 for ROCm 5.3.0
|
||||
@@ -2522,7 +3222,8 @@ The new APIs for virtual memory management are as follows:
|
||||
hipError_t hipMemUnmap(void* ptr, size_t size);
|
||||
```
|
||||
|
||||
For more information, refer to the HIP API documentation at <https://docs.amd.com/bundle/HIP_API_Guide/page/modules.html>
|
||||
For more information, refer to the HIP API documentation at
|
||||
{doc}`hip:.doxygen/docBin/html/modules`.
|
||||
|
||||
##### Planned HIP Changes in Future Releases
|
||||
|
||||
@@ -2538,7 +3239,8 @@ 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 <https://docs.amd.com/category/libraries>.
|
||||
For more information, refer to
|
||||
[Communication Libraries](../../../../docs/reference/gpu_libraries/communication.md).
|
||||
|
||||
#### OpenMP Enhancements in This Release
|
||||
|
||||
@@ -3132,7 +3834,8 @@ ROCDebugger Machine Interface (MI) extends support to lanes. The following enhan
|
||||
|
||||
- MI varobjs are now lane-aware.
|
||||
|
||||
For more information, refer to the ROC Debugger User Guide at <https://docs.amd.com>.
|
||||
For more information, refer to the ROC Debugger User Guide at
|
||||
{doc}`ROCgdb <rocgdb:index>`.
|
||||
|
||||
##### Enhanced - clone-inferior Command
|
||||
|
||||
@@ -3154,7 +3857,7 @@ This release includes support for AMD Radeon™ Pro W6800, in addition to other
|
||||
|
||||
- Various other bug fixes and performance improvements
|
||||
|
||||
For more information, see <https://docs.amd.com/bundle/MIOpen_gh-pages/page/releasenotes.html>
|
||||
For more information, see {doc}`Documentation <miopen:index>`.
|
||||
|
||||
#### Checkpoint Restore Support With CRIU
|
||||
|
||||
|
||||
10
README.md
@@ -1,4 +1,4 @@
|
||||
# AMD ROCm™ Platform - Powering Your GPU Computational Needs
|
||||
# AMD ROCm™ Platform
|
||||
|
||||
ROCm™ is an open-source stack for GPU computation. ROCm is primarily Open-Source
|
||||
Software (OSS) that allows developers the freedom to customize and tailor their
|
||||
@@ -32,7 +32,13 @@ The default.xml file uses the repo Manifest format.
|
||||
The develop branch of this repository contains content for the next
|
||||
ROCm release.
|
||||
|
||||
## How to build documentation via Sphinx
|
||||
## ROCm Documentation
|
||||
|
||||
ROCm Documentation is available online at
|
||||
[rocm.docs.amd.com](https://rocm.docs.amd.com). Source code for the documenation
|
||||
is located in the docs folder of most repositories that are part of ROCm.
|
||||
|
||||
### How to build documentation via Sphinx
|
||||
|
||||
```bash
|
||||
cd docs
|
||||
|
||||
931
RELEASE.md
34
default.xml
@@ -12,44 +12,41 @@ fetch="https://github.com/GPUOpen-ProfessionalCompute-Libraries/" />
|
||||
fetch="https://github.com/GPUOpen-Tools/" />
|
||||
<remote name="KhronosGroup"
|
||||
fetch="https://github.com/KhronosGroup/" />
|
||||
<default revision="refs/tags/rocm-5.5.0"
|
||||
<default revision="refs/tags/rocm-5.6.0"
|
||||
remote="roc-github"
|
||||
sync-c="true"
|
||||
sync-j="4" />
|
||||
<!--list of projects for ROCM-->
|
||||
<project name="ROCK-Kernel-Driver" />
|
||||
<project name="ROCT-Thunk-Interface" />
|
||||
<project name="ROCR-Runtime" />
|
||||
<project name="rocm_smi_lib" />
|
||||
<project name="rocm-core" />
|
||||
<project name="rocm-cmake" />
|
||||
<project name="rocminfo" />
|
||||
<project name="ROCK-Kernel-Driver" remote="roc-github" />
|
||||
<project name="ROCT-Thunk-Interface" remote="roc-github" />
|
||||
<project name="ROCR-Runtime" remote="roc-github" />
|
||||
<project name="rocm_smi_lib" remote="roc-github" />
|
||||
<project name="rocm-core" remote="roc-github" />
|
||||
<project name="rocm-cmake" remote="roc-github" />
|
||||
<project name="rocminfo" remote="roc-github" />
|
||||
<project name="rocprofiler" remote="rocm-devtools" />
|
||||
<project name="roctracer" remote="rocm-devtools" />
|
||||
<project name="ROCm-OpenCL-Runtime" />
|
||||
<project path="ROCm-OpenCL-Runtime/api/opencl/khronos/icd" name="OpenCL-ICD-Loader" remote="KhronosGroup" revision="6c03f8b58fafd9dd693eaac826749a5cfad515f8" />
|
||||
<project name="clang-ocl" />
|
||||
<project name="clang-ocl" remote="roc-github" />
|
||||
<!--HIP Projects-->
|
||||
<project name="HIP" remote="rocm-devtools" />
|
||||
<project name="hipamd" remote="rocm-devtools" />
|
||||
<project name="clr" remote="rocm-devtools" />
|
||||
<project name="HIP-Examples" remote="rocm-devtools" />
|
||||
<project name="ROCclr" remote="rocm-devtools" />
|
||||
<project name="HIPIFY" remote="rocm-devtools" />
|
||||
<project name="HIPCC" remote="rocm-devtools" />
|
||||
<!-- The following projects are all associated with the AMDGPU LLVM compiler -->
|
||||
<project name="llvm-project" />
|
||||
<project name="ROCm-Device-Libs" />
|
||||
<project name="atmi" />
|
||||
<project name="ROCm-CompilerSupport" />
|
||||
<project name="llvm-project" remote="roc-github" />
|
||||
<project name="ROCm-Device-Libs" remote="roc-github" />
|
||||
<project name="ROCm-CompilerSupport" remote="roc-github" />
|
||||
<project name="rocr_debug_agent" remote="rocm-devtools" />
|
||||
<project name="rocm_bandwidth_test" />
|
||||
<project name="rocm_bandwidth_test" remote="roc-github" />
|
||||
<project name="half" remote="rocm-swplat" revision="37742ce15b76b44e4b271c1e66d13d2fa7bd003e" />
|
||||
<project name="RCP" remote="gpuopen-tools" revision="3a49405a1500067c49d181844ec90aea606055bb" />
|
||||
<!-- gdb projects -->
|
||||
<project name="ROCgdb" remote="rocm-devtools" />
|
||||
<project name="ROCdbgapi" remote="rocm-devtools" />
|
||||
<!-- ROCm Libraries -->
|
||||
<project name="rdc" />
|
||||
<project name="rdc" remote="roc-github" />
|
||||
<project groups="mathlibs" name="rocBLAS" remote="rocm-swplat" />
|
||||
<project groups="mathlibs" name="Tensile" remote="rocm-swplat" />
|
||||
<project groups="mathlibs" name="hipBLAS" remote="rocm-swplat" />
|
||||
@@ -61,7 +58,6 @@ fetch="https://github.com/KhronosGroup/" />
|
||||
<project groups="mathlibs" name="hipSOLVER" remote="rocm-swplat" />
|
||||
<project groups="mathlibs" name="hipSPARSE" remote="rocm-swplat" />
|
||||
<project groups="mathlibs" name="rocALUTION" remote="rocm-swplat" />
|
||||
<project name="MIOpenGEMM" remote="rocm-swplat" />
|
||||
<project name="MIOpen" remote="rocm-swplat" />
|
||||
<project groups="mathlibs" name="rccl" remote="rocm-swplat" />
|
||||
<project name="MIVisionX" remote="gpuopen-libs" />
|
||||
|
||||
76
docs/conf.py
@@ -5,47 +5,37 @@
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||
|
||||
import shutil
|
||||
shutil.copy2('../CONTRIBUTING.md','./contributing.md')
|
||||
shutil.copy2('../RELEASE.md','./release.md')
|
||||
|
||||
|
||||
from rocm_docs import ROCmDocs
|
||||
|
||||
# working anchors that linkcheck cannot find
|
||||
linkcheck_anchors_ignore = [
|
||||
'd90e61',
|
||||
'd1667e113',
|
||||
'd2999e60',
|
||||
'building-from-source',
|
||||
'use-the-rocm-build-tool-rbuild',
|
||||
'use-cmake-to-build-migraphx',
|
||||
'example'
|
||||
]
|
||||
linkcheck_ignore = [
|
||||
# site to be built
|
||||
"https://rocmdocs.amd.com/projects/ROCmCC/en/latest/",
|
||||
"https://rocmdocs.amd.com/projects/amdsmi/en/latest/",
|
||||
"https://rocmdocs.amd.com/projects/rdc/en/latest/",
|
||||
"https://rocmdocs.amd.com/projects/rocmsmi/en/latest/",
|
||||
"https://rocmdocs.amd.com/projects/roctracer/en/latest/",
|
||||
"https://rocmdocs.amd.com/projects/MIGraphX/en/latest/",
|
||||
"https://rocmdocs.amd.com/projects/rocprofiler/en/latest/",
|
||||
# correct links that linkcheck times out on
|
||||
"https://github.com/ROCm-Developer-Tools/HIP-VS/blob/master/README.md",
|
||||
r"https://www.amd.com/system/files/.*.pdf",
|
||||
"https://www.amd.com/en/developer/aocc.html",
|
||||
"https://www.amd.com/en/support/linux-drivers",
|
||||
"https://www.amd.com/en/technologies/infinity-hub",
|
||||
r"https://bitbucket.org/icl/magma/*",
|
||||
"http://cs231n.stanford.edu/"
|
||||
]
|
||||
|
||||
shutil.copy2('../CONTRIBUTING.md','./contributing.md')
|
||||
shutil.copy2('../RELEASE.md','./release.md')
|
||||
# Keep capitalization due to similar linking on GitHub's markdown preview.
|
||||
shutil.copy2('../CHANGELOG.md','./CHANGELOG.md')
|
||||
|
||||
latex_engine = "xelatex"
|
||||
|
||||
# configurations for PDF output by Read the Docs
|
||||
project = "ROCm Documentation"
|
||||
author = "Advanced Micro Devices, Inc."
|
||||
copyright = "Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved."
|
||||
version = "5.6.0"
|
||||
release = "5.6.0"
|
||||
|
||||
|
||||
setting_all_article_info = True
|
||||
all_article_info_os = ["linux"]
|
||||
all_article_info_os = ["linux", "windows"]
|
||||
all_article_info_author = ""
|
||||
|
||||
# pages with specific settings
|
||||
article_pages = [
|
||||
{
|
||||
"file":"release",
|
||||
"os":["linux", "windows"],
|
||||
"date":"2023-07-27"
|
||||
},
|
||||
|
||||
{"file":"deploy/linux/index", "os":["linux"]},
|
||||
{"file":"deploy/linux/install_overview", "os":["linux"]},
|
||||
{"file":"deploy/linux/prerequisites", "os":["linux"]},
|
||||
@@ -56,7 +46,20 @@ article_pages = [
|
||||
{"file":"deploy/linux/package_manager_integration", "os":["linux"]},
|
||||
{"file":"deploy/docker", "os":["linux"]},
|
||||
|
||||
{"file":"deploy/windows/cli/index", "os":["windows"]},
|
||||
{"file":"deploy/windows/cli/install", "os":["windows"]},
|
||||
{"file":"deploy/windows/cli/uninstall", "os":["windows"]},
|
||||
{"file":"deploy/windows/cli/upgrade", "os":["windows"]},
|
||||
{"file":"deploy/windows/gui/index", "os":["windows"]},
|
||||
{"file":"deploy/windows/gui/install", "os":["windows"]},
|
||||
{"file":"deploy/windows/gui/uninstall", "os":["windows"]},
|
||||
{"file":"deploy/windows/gui/upgrade", "os":["windows"]},
|
||||
{"file":"deploy/windows/index", "os":["windows"]},
|
||||
{"file":"deploy/windows/prerequisites", "os":["windows"]},
|
||||
{"file":"deploy/windows/quick_start", "os":["windows"]},
|
||||
|
||||
{"file":"release/gpu_os_support", "os":["linux"]},
|
||||
{"file":"release/windows_support", "os":["windows"]},
|
||||
{"file":"release/docker_support_matrix", "os":["linux"]},
|
||||
|
||||
{"file":"reference/gpu_libraries/communication", "os":["linux"]},
|
||||
@@ -73,7 +76,7 @@ article_pages = [
|
||||
{"file":"how_to/system_debugging", "os":["linux"]},
|
||||
{"file":"how_to/tensorflow_install/tensorflow_install", "os":["linux"]},
|
||||
|
||||
{"file":"examples/ai_ml_inferencing", "os":["linux"]},
|
||||
{"file":"examples/machine_learning", "os":["linux"]},
|
||||
{"file":"examples/inception_casestudy/inception_casestudy", "os":["linux"]},
|
||||
|
||||
{"file":"understand/file_reorg", "os":["linux"]},
|
||||
@@ -83,8 +86,13 @@ article_pages = [
|
||||
|
||||
external_toc_path = "./sphinx/_toc.yml"
|
||||
|
||||
docs_core = ROCmDocs("ROCm Documentation")
|
||||
docs_core = ROCmDocs("ROCm Documentation Home")
|
||||
docs_core.setup()
|
||||
|
||||
external_projects_current_project = "rocm"
|
||||
|
||||
for sphinx_var in ROCmDocs.SPHINX_VARS:
|
||||
globals()[sphinx_var] = getattr(docs_core, sphinx_var)
|
||||
html_theme_options = {
|
||||
"link_main_doc": False
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 163 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 183 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 407 KiB |
|
Before Width: | Height: | Size: 465 KiB |
|
Before Width: | Height: | Size: 207 KiB |
|
Before Width: | Height: | Size: 461 KiB |
|
Before Width: | Height: | Size: 461 KiB |
|
Before Width: | Height: | Size: 412 KiB |
|
Before Width: | Height: | Size: 68 KiB |
@@ -1 +0,0 @@
|
||||
|
||||
BIN
docs/data/deploy/windows/000-settings-dark.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
docs/data/deploy/windows/000-settings-light.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
BIN
docs/data/deploy/windows/001-about-dark.png
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
docs/data/deploy/windows/001-about-light.png
Normal file
|
After Width: | Height: | Size: 110 KiB |
BIN
docs/data/deploy/windows/001-uac-dark.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/data/deploy/windows/001-uac-light.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/data/deploy/windows/002-initializing.png
Normal file
|
After Width: | Height: | Size: 228 KiB |
BIN
docs/data/deploy/windows/003-detecting-system-config.png
Normal file
|
After Width: | Height: | Size: 796 KiB |
BIN
docs/data/deploy/windows/004-installer-window.png
Normal file
|
After Width: | Height: | Size: 310 KiB |
BIN
docs/data/deploy/windows/005-deselect-all.png
Normal file
|
After Width: | Height: | Size: 309 KiB |
BIN
docs/data/deploy/windows/006-component-options-sdk-core.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
docs/data/deploy/windows/007-component-options-libraries.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
docs/data/deploy/windows/008-component-options-rtc.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
docs/data/deploy/windows/009-component-options-rt.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
docs/data/deploy/windows/010-component-options-vs-plugin.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 17 KiB |
BIN
docs/data/deploy/windows/012-install-progress.png
Normal file
|
After Width: | Height: | Size: 789 KiB |
BIN
docs/data/deploy/windows/013-install-complete.png
Normal file
|
After Width: | Height: | Size: 801 KiB |
BIN
docs/data/deploy/windows/014-uninstall-dark.png
Normal file
|
After Width: | Height: | Size: 102 KiB |
BIN
docs/data/deploy/windows/014-uninstall-light.png
Normal file
|
After Width: | Height: | Size: 102 KiB |
@@ -1,44 +0,0 @@
|
||||
# Deploy
|
||||
|
||||
Please follow the guides below to begin your ROCm journey. ROCm can be consumed
|
||||
via many mechanisms.
|
||||
:::::{grid} 1 1 3 3
|
||||
:gutter: 1
|
||||
|
||||
::::{grid-item-card}
|
||||
:padding: 2
|
||||
Quick Start
|
||||
^^^
|
||||
|
||||
- [Linux](quick_start)
|
||||
- [Windows](hip_sdk_install_win/hip_sdk_install_win)
|
||||
|
||||
::::
|
||||
|
||||
::::{grid-item-card}
|
||||
:padding: 2
|
||||
Docker
|
||||
^^^
|
||||
|
||||
- [Guide](deploy/docker)
|
||||
- [Dockerhub](https://hub.docker.com/u/rocm/)
|
||||
|
||||
::::
|
||||
|
||||
::::{grid-item-card}
|
||||
:padding: 2
|
||||
[Advanced](deploy/advanced)
|
||||
^^^
|
||||
|
||||
- [Uninstall](deploy/advanced/uninstall)
|
||||
- [Multi-ROCm Installations](deploy/advanced/multi)
|
||||
- [spack](deploy/advanced/spack)
|
||||
- [Build from Source](deploy/advanced/build_source)
|
||||
|
||||
::::
|
||||
|
||||
:::::
|
||||
|
||||
## Related Information
|
||||
|
||||
[Release Information](release)
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
Docker containers share the kernel with the host operating system, therefore the
|
||||
ROCm kernel-mode driver must be installed on the host. Please refer to
|
||||
[](/deploy/linux/install) for details. The other user-space parts
|
||||
(like the HIP-runtime or math libraries) of the ROCm stack will be loaded from
|
||||
the container image and don't need to be installed to the host.
|
||||
{ref}`using-the-package-manager` on installing `amdgpu-dkms`. The other
|
||||
user-space parts (like the HIP-runtime or math libraries) of the ROCm stack will
|
||||
be loaded from the container image and don't need to be installed to the host.
|
||||
|
||||
(docker-access-gpus-in-container)=
|
||||
|
||||
|
||||
@@ -1,17 +1,13 @@
|
||||
# Deploy ROCm on Linux
|
||||
|
||||
Please start with the [Quick Start Linux](quick_start) or follow the detailed instructions below.
|
||||
Start with {doc}`/deploy/linux/quick_start` or follow the detailed
|
||||
instructions below.
|
||||
|
||||
::::{grid} 2 3 3 3
|
||||
## Prepare to Install
|
||||
|
||||
::::{grid} 1 1 2 2
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} Overview
|
||||
:link: install
|
||||
:link-type: doc
|
||||
|
||||
Overview and comparison of the different ways to install ROCm.
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Prerequisites
|
||||
:link: prerequisites
|
||||
:link-type: doc
|
||||
@@ -19,37 +15,39 @@ Overview and comparison of the different ways to install ROCm.
|
||||
The prerequisites page lists the required steps *before* installation.
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Installation
|
||||
:link: install
|
||||
:::{grid-item-card} Install Choices
|
||||
:link: install_overview
|
||||
:link-type: doc
|
||||
|
||||
Detailed steps to install with the package manager or with the installation
|
||||
script, including multi-version installation. Recommended for most users.
|
||||
Package manager vs AMDGPU Installer
|
||||
|
||||
Standard Packages vs Multi-Version Packages
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Upgrading
|
||||
:link: upgrade
|
||||
::::
|
||||
|
||||
## Choose your install method
|
||||
|
||||
::::{grid} 1 1 2 2
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} Package Manager
|
||||
:link: os-native/index
|
||||
:link-type: doc
|
||||
|
||||
Instructions for upgrading an existing ROCm installation.
|
||||
Directly use your distribution's package manager to install ROCm.
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Uninstallation
|
||||
:link: uninstall
|
||||
:::{grid-item-card} AMDGPU Installer
|
||||
:link: installer/index
|
||||
:link-type: doc
|
||||
|
||||
Steps for removing ROCm packages libraries and tools.
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Package Manager Integration
|
||||
:link: package_manager_integration
|
||||
:link-type: doc
|
||||
|
||||
Information about (meta-)packages in the ROCm ecosystem.
|
||||
Use an installer tool that orchestrates changes via the package
|
||||
manager.
|
||||
:::
|
||||
|
||||
::::
|
||||
|
||||
## See Also
|
||||
|
||||
- [GPU and OS Support Linux](../../gpu_os_support.md)
|
||||
- {doc}`/release/gpu_os_support`
|
||||
|
||||
@@ -1,956 +0,0 @@
|
||||
# Installation (Linux)
|
||||
|
||||
Installing can be done in one of two ways, depending on your preference:
|
||||
|
||||
- Using an installer script
|
||||
- Through your system's package manager
|
||||
|
||||
```{attention}
|
||||
For information on installing ROCm on devices with NVIDIA GPUs, refer to the HIP
|
||||
Installation Guide.
|
||||
```
|
||||
|
||||
(install-script-method)=
|
||||
|
||||
## Installer Script Method
|
||||
|
||||
The installer script method automates the installation process for the AMDGPU
|
||||
and ROCm stack. The installer script handles the complete installation process
|
||||
for ROCm, including setting up the repository, cleaning the system, updating,
|
||||
and installing the desired drivers and meta-packages. With this approach, the
|
||||
system has more control over the ROCm installation process. Thus, those who are
|
||||
less familiar with the Linux standard commands can choose this method for ROCm
|
||||
installation.
|
||||
|
||||
For AMDGPU and ROCm installation using the installer script method on Linux
|
||||
distribution, follow these steps:
|
||||
|
||||
1. **Meet prerequisites** – Ensure the Prerequisites are met before downloading
|
||||
and installing the installer using the installer script method.
|
||||
|
||||
2. **Download and install the installer script** – Ensure you download and
|
||||
install the installer script from the recommended URL.
|
||||
|
||||
```{tip}
|
||||
The installer package is updated periodically to resolve known issues and add
|
||||
new features. The links for each Linux distribution always point to the latest
|
||||
available build.
|
||||
```
|
||||
|
||||
3. **Use the installer script on Linux distributions** – Ensure you execute the
|
||||
script for installing use cases.
|
||||
|
||||
### Download and Install the Installer Script
|
||||
|
||||
::::::{tab-set}
|
||||
:::::{tab-item} Ubuntu
|
||||
:sync: ubuntu
|
||||
|
||||
<!-- markdownlint-disable-next-line MD013 -->
|
||||
::::{rubric} To download the amdgpu-install script on the system, use the following commands.
|
||||
::::
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} Ubuntu 20.04
|
||||
:sync: ubuntu-20.04
|
||||
|
||||
```shell
|
||||
sudo apt update
|
||||
wget https://repo.radeon.com/amdgpu-install/5.4.3/ubuntu/focal/amdgpu-install_5.4.50403-1_all.deb
|
||||
sudo apt install ./amdgpu-install_5.4.50403-1_all.deb
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} Ubuntu 22.04
|
||||
:sync: ubuntu-22.04
|
||||
|
||||
```shell
|
||||
sudo apt update
|
||||
wget https://repo.radeon.com/amdgpu-install/5.4.3/ubuntu/jammy/amdgpu-install_5.4.50403-1_all.deb
|
||||
sudo apt install ./amdgpu-install_5.4.50403-1_all.deb
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
:::::
|
||||
:::::{tab-item} Red Hat Enterprise Linux
|
||||
:sync: RHEL
|
||||
|
||||
<!-- markdownlint-disable-next-line MD013 -->
|
||||
::::{rubric} To download the amdgpu-install script on the system, use the following commands.
|
||||
::::
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} RHEL 8.6
|
||||
:sync: RHEL-8.6
|
||||
|
||||
```shell
|
||||
sudo yum install https://repo.radeon.com/amdgpu-install/5.4.3/rhel/8.6/amdgpu-install-5.4.50403-1.el8.noarch.rpm
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} RHEL 8.7
|
||||
:sync: RHEL-8.7
|
||||
|
||||
```shell
|
||||
sudo yum install https://repo.radeon.com/amdgpu-install/5.4.3/rhel/8.7/amdgpu-install-5.4.50403-1.el8.noarch.rpm
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} RHEL 9.1
|
||||
:sync: RHEL-9.1
|
||||
|
||||
```shell
|
||||
sudo yum install https://repo.radeon.com/amdgpu-install/5.4.3/rhel/9.1/amdgpu-install-5.4.50403-1.el9.noarch.rpm
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
:::::
|
||||
:::::{tab-item} SUSE Linux Enterprise Server 15
|
||||
:sync: SLES15
|
||||
|
||||
<!-- markdownlint-disable-next-line MD013 -->
|
||||
::::{rubric} To download the amdgpu-install script on the system, use the following commands.
|
||||
::::
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} Service Pack 4
|
||||
:sync: SLES15-SP4
|
||||
|
||||
```shell
|
||||
sudo zypper --no-gpg-checks install https://repo.radeon.com/amdgpu-install/5.4.3/sle/15.4/amdgpu-install-5.4.50403-1.noarch.rpm
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
:::::
|
||||
::::::
|
||||
|
||||
### Using the Installer Script for Single-version ROCm Installation
|
||||
|
||||
To install use cases specific to your requirements, use the installer
|
||||
`amdgpu-install` as follows:
|
||||
|
||||
- To install a single use case:
|
||||
|
||||
```shell
|
||||
sudo amdgpu-install --usecase=rocm
|
||||
```
|
||||
|
||||
- To install kernel-mode driver:
|
||||
|
||||
```shell
|
||||
sudo amdgpu-install --usecase=dkms
|
||||
```
|
||||
|
||||
- To install multiple use cases:
|
||||
|
||||
```shell
|
||||
sudo amdgpu-install --usecase=hiplibsdk,rocm
|
||||
```
|
||||
|
||||
- To display a list of available use cases:
|
||||
|
||||
```shell
|
||||
sudo amdgpu-install --list-usecase
|
||||
```
|
||||
|
||||
Following is a sample of output listed by the command above:
|
||||
|
||||
```{note}
|
||||
The list in this section represents only a sample of available use cases for ROCm:
|
||||
```
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
```{tip}
|
||||
Adding `-y` as a parameter to `amdgpu-install` skips user prompts (for
|
||||
automation). Example: `amdgpu-install -y --usecase=rocm`
|
||||
```
|
||||
|
||||
### Using Installer Script in Docker
|
||||
|
||||
When the installation is initiated in Docker, the installer tries to install the
|
||||
use case along with the kernel-mode driver. However, you cannot install the
|
||||
kernel-mode driver in a Docker container. To skip the installation of the
|
||||
kernel-mode driver, proceed with the `--no-dkms` option, as shown below:
|
||||
|
||||
```shell
|
||||
sudo amdgpu-install --usecase=rocm --no-dkms
|
||||
```
|
||||
|
||||
### Using the Installer Script for Multi-version ROCm Installation
|
||||
|
||||
The multi-version ROCm installation requires you to download and install the
|
||||
latest ROCm release installer from the list of ROCm releases you want to install
|
||||
simultaneously on your system.
|
||||
|
||||
**Example:** If you want to install ROCm releases 4.5.0, 4.5.1, and 5.4.3
|
||||
simultaneously, you are required to download the installer from the latest ROCm
|
||||
release v5.4.3.
|
||||
|
||||
To download and install the installer, refer to the [Download and Install the
|
||||
Installer Script](#download-and-install-the-installer-script) section.
|
||||
|
||||
```{attention}
|
||||
If the existing ROCm release contains non-versioned ROCm packages, uninstall
|
||||
those packages before proceeding with the multi-version installation to avoid
|
||||
conflicts.
|
||||
```
|
||||
|
||||
#### Add Required ROCm Repositories
|
||||
|
||||
Add the required repositories using the following steps:
|
||||
|
||||
```{important}
|
||||
Add the AMDGPU and 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.
|
||||
```
|
||||
|
||||
::::::{tab-set}
|
||||
:::::{tab-item} Ubuntu
|
||||
:sync: ubuntu
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} Ubuntu 20.04
|
||||
:sync: ubuntu-20.04
|
||||
|
||||
```shell
|
||||
for ver in 5.0.2 5.1.4 5.2.5 5.3.3; 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} Ubuntu 22.04
|
||||
:sync: ubuntu-22.04
|
||||
|
||||
```shell
|
||||
for ver in 5.0.2 5.1.4 5.2.5 5.3.3; 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} Red Hat Enterprise Linux
|
||||
:sync: RHEL
|
||||
|
||||
```shell
|
||||
for ver in 5.0.2 5.1.4 5.2.5 5.3.3; do
|
||||
sudo tee --append /etc/yum.repos.d/rocm.repo <<EOF
|
||||
[ROCm-$ver]
|
||||
Name=ROCm$ver
|
||||
baseurl=https://repo.radeon.com/rocm/$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 15
|
||||
:sync: SLES15
|
||||
|
||||
```shell
|
||||
for ver in 5.0.2 5.1.4 5.2.5 5.3.3; do
|
||||
sudo tee --append /etc/zypp/repos.d/rocm.repo <<EOF
|
||||
name=rocm
|
||||
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
|
||||
done
|
||||
sudo zypper ref
|
||||
```
|
||||
|
||||
:::::
|
||||
::::::
|
||||
|
||||
#### Use the Installer to Install Multi-version ROCm Meta-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>
|
||||
```
|
||||
|
||||
```{tip}
|
||||
If the kernel-mode driver is already present on the system and you do not want
|
||||
to upgrade it, use the `--no-dkms` option to skip the installation of the
|
||||
kernel-mode driver, as shown in the following samples:
|
||||
```
|
||||
|
||||
```none
|
||||
sudo amdgpu-install --usecase=rocm --rocmrelease=4.5.0 --no-dkms
|
||||
sudo amdgpu-install --usecase=rocm --rocmrelease=5.4.3 --no-dkms
|
||||
```
|
||||
|
||||
Following are examples of ROCm multi-version installation. The kernel-mode
|
||||
driver, associated with the ROCm release v5.4.3, will be installed as its latest
|
||||
release in the list.
|
||||
|
||||
```none
|
||||
sudo amdgpu-install --usecase=rocm --rocmrelease=4.5.0
|
||||
sudo amdgpu-install --usecase=rocm --rocmrelease=4.5.2
|
||||
sudo amdgpu-install --usecase=rocm --rocmrelease=5.4.3
|
||||
```
|
||||
|
||||
## Package Manager Method
|
||||
|
||||
The package manager method involves a manual setup of the repository, which
|
||||
includes setting up the repository, updating, and installing/uninstalling
|
||||
meta-packages. This involves using standard commands such as yum, apt, and
|
||||
others respective to the Linux distribution.
|
||||
|
||||
The functions of a package manager installation system are:
|
||||
|
||||
- Grouping packages based on function
|
||||
- Extracting package archives
|
||||
- Ensuring a package is installed with all necessary packages and dependencies
|
||||
are managed
|
||||
- From a remote repository, looking up, downloading, installing, or updating
|
||||
existing packages
|
||||
- Ensuring the authenticity and integrity of the package
|
||||
|
||||
### Installing ROCm on Linux Distributions
|
||||
|
||||
For a fresh ROCm installation using the package manager method on a Linux
|
||||
distribution, follow the steps below:
|
||||
|
||||
1. **Meet prerequisites** – Ensure the Prerequisites are met before the ROCm
|
||||
installation.
|
||||
|
||||
2. **Install kernel headers and development packages** – Ensure kernel headers
|
||||
and development packages are installed on the system.
|
||||
|
||||
3. **Select the base URLs for AMDGPU and ROCm stack repository** – Ensure the
|
||||
base URLs for AMDGPU and ROCm stack repositories are selected.
|
||||
|
||||
4. **Add the AMDGPU stack repository** – Ensure the AMDGPU stack repository is
|
||||
added.
|
||||
|
||||
5. **Install the kernel-mode driver and reboot the system** – Ensure the
|
||||
kernel-mode driver is installed and the system is rebooted.
|
||||
|
||||
6. **Add ROCm stack repository** – Ensure the ROCm stack repository is added.
|
||||
|
||||
7. **Install single-version or multi-version ROCm meta-packages** – Install the
|
||||
desired meta-packages.
|
||||
|
||||
8. **Verify installation for the applicable distributions** – Verify if the
|
||||
installation is successful.
|
||||
|
||||
```{important}
|
||||
You cannot install a kernel-mode driver in a Docker container. Refer to the
|
||||
sections below for specific commands to install the AMDGPU and ROCm stack on
|
||||
various Linux distributions.
|
||||
```
|
||||
|
||||
#### Understanding the Release-specific AMDGPU and ROCm Stack Repositories on Linux Distributions
|
||||
|
||||
The release-specific repositories consist of packages from a specific release of
|
||||
the AMDGPU stack and ROCm stack. 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.
|
||||
|
||||
```{note}
|
||||
Users installing multiple versions of the ROCm stack must use the
|
||||
release-specific base URL.
|
||||
```
|
||||
|
||||
#### Using the Package Manager
|
||||
|
||||
::::::{tab-set}
|
||||
:::::{tab-item} Ubuntu
|
||||
:sync: ubuntu
|
||||
|
||||
::::{rubric} Installation of Kernel Headers and Development Packages
|
||||
::::
|
||||
|
||||
The following instructions to install kernel headers and development packages
|
||||
apply to all versions and kernels of Ubuntu. The ROCm installation requires you
|
||||
to install the Linux-headers and Linux-modules-extra package with the correct
|
||||
version corresponding to the kernel's version.
|
||||
|
||||
**Example:** If the system is running the Linux kernel version
|
||||
`5.15.0-41-generic`, you must install the identical versions of Linux-headers
|
||||
and development packages. Refer to {ref}`check-kernel-info` on to how to check
|
||||
the system's kernel version.
|
||||
|
||||
To check the `kernel-headers` and `linux-modules-extra` package versions,
|
||||
follow these steps:
|
||||
|
||||
1. For the Ubuntu/Debian environment, execute the following command to verify
|
||||
the kernel headers and development packages are installed with the
|
||||
respective versions:
|
||||
|
||||
```shell
|
||||
sudo dpkg -l | grep linux-headers
|
||||
```
|
||||
|
||||
The command indicates if there are Linux headers installed as shown below:
|
||||
|
||||
```none
|
||||
ii linux-headers-5.15.0-41-generic 5.15.0-41.44~20.04.1 amd64 Linux kernel headers for version 5.15.0 on 64 bit x86 SMP
|
||||
```
|
||||
|
||||
2. Execute the following command to check whether the development packages are
|
||||
installed:
|
||||
|
||||
```shell
|
||||
sudo dpkg -l | grep linux-modules-extra
|
||||
```
|
||||
|
||||
The command mentioned above lists the installed `linux-modules-extra`
|
||||
packages like the output below:
|
||||
|
||||
```none
|
||||
ii linux-modules-extra-5.15.0-41-generic 5.15.0-41.44~20.04.1 amd64 Linux kernel extra modules for version 5.15.0 on 64 bit x86 SMP
|
||||
```
|
||||
|
||||
3. If the supported version installation of Linux headers and development
|
||||
packages are not installed on the system, execute the following command
|
||||
to install the packages:
|
||||
|
||||
```shell
|
||||
sudo apt install linux-headers-`uname -r` linux-modules-extra-`uname -r`
|
||||
```
|
||||
|
||||
::::{rubric} Adding the AMDGPU and ROCm Stack Repositories
|
||||
::::
|
||||
|
||||
1. Add GPG Key for AMDGPU and ROCm Stack
|
||||
|
||||
Add the GPG key for AMDGPU and ROCm repositories. For Debian-based systems
|
||||
like Ubuntu, configure the Debian ROCm repository as follows:
|
||||
|
||||
```shell
|
||||
curl -fsSL https://repo.radeon.com/rocm/rocm.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/rocm-keyring.gpg
|
||||
```
|
||||
|
||||
```{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`
|
||||
```
|
||||
|
||||
2. Add the AMDGPU Stack Repository and Install the Kernel-mode Driver
|
||||
|
||||
```{attention}
|
||||
If you have a version of the kernel-mode driver installed, you may skip this
|
||||
section.
|
||||
```
|
||||
|
||||
To add the AMDGPU stack repository, follow these steps:
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} Ubuntu 20.04
|
||||
:sync: ubuntu-20.04
|
||||
|
||||
```shell
|
||||
echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/amdgpu/5.4.3/ubuntu focal main' | sudo tee /etc/apt/sources.list.d/amdgpu.list
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} Ubuntu 22.04
|
||||
:sync: ubuntu-22.04
|
||||
|
||||
```shell
|
||||
echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/amdgpu/5.4.3/ubuntu jammy 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
|
||||
```
|
||||
|
||||
3. Add the ROCm Stack Repository and Install Meta-packages
|
||||
|
||||
To add the ROCm repository, use the following steps:
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} Ubuntu 20.04
|
||||
:sync: ubuntu-20.04
|
||||
|
||||
```shell
|
||||
for ver in 5.0.2 5.1.4 5.2.5 5.3.3 5.4.3; 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} Ubuntu 22.04
|
||||
:sync: ubuntu-22.04
|
||||
|
||||
```shell
|
||||
for ver in 5.0.2 5.1.4 5.2.5 5.3.3 5.4.3; 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
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
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
|
||||
|
||||
```{important}
|
||||
If the existing ROCm release contains non-versioned ROCm packages, you must
|
||||
uninstall those packages before proceeding to the multi-version installation
|
||||
to avoid conflicts.
|
||||
```
|
||||
|
||||
```shell
|
||||
sudo apt install rocm-hip-sdk5.4.3 rocm-hip-sdk5.2.5
|
||||
```
|
||||
|
||||
:::::
|
||||
:::::{tab-item} Red Hat Enterprise Linux
|
||||
:sync: RHEL
|
||||
|
||||
::::{rubric} Installation of Kernel Headers and Development Packages
|
||||
::::
|
||||
|
||||
The ROCm installation requires that you install the kernel headers and
|
||||
`linux-modules-extra` package with the correct version corresponding to the
|
||||
kernel's version.
|
||||
|
||||
**Example:** If the system is running Linux kernel version
|
||||
`3.10.0-1160.el7.x86_64`, you must install the identical versions of kernel
|
||||
headers and development packages. Refer to {ref}`check-kernel-info` on to how to
|
||||
check the system's kernel version.
|
||||
|
||||
To check the kernel headers and `linux-modules-extra` package versions,
|
||||
follow these steps:
|
||||
|
||||
1. To verify you have the supported version of the installed kernel headers,
|
||||
type the following on the command line:
|
||||
|
||||
```shell
|
||||
sudo yum list installed kernel-headers
|
||||
```
|
||||
|
||||
The command mentioned above displays the list of kernel headers versions
|
||||
currently present on your system. Verify if the listed kernel headers have
|
||||
the same versions as the kernel.
|
||||
|
||||
2. The following command lists the development packages on your system. Verify
|
||||
if the listed development package's version number matches the kernel
|
||||
version number:
|
||||
|
||||
```shell
|
||||
sudo yum list installed kernel-devel
|
||||
```
|
||||
|
||||
3. If the supported version installation of kernel headers and development
|
||||
packages does not exist on the system, execute the command below to install:
|
||||
|
||||
```shell
|
||||
sudo yum install kernel-headers-`uname -r` kernel-devel-`uname -r`
|
||||
```
|
||||
|
||||
::::{rubric} Adding the AMDGPU and ROCm Stack Repositories
|
||||
::::
|
||||
|
||||
1. Add the AMDGPU Stack Repository and Install the Kernel-mode Driver
|
||||
|
||||
```{attention}
|
||||
If you have a version of the kernel-mode driver installed, you may skip this
|
||||
section.
|
||||
```
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} RHEL 8.6
|
||||
:sync: RHEL-8.6
|
||||
|
||||
```shell
|
||||
sudo tee --append /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
Name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.4.3/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} RHEL 8.7
|
||||
:sync: RHEL-8.7
|
||||
|
||||
```shell
|
||||
sudo tee --append /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
Name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.4.3/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 9.1
|
||||
:sync: RHEL-9.1
|
||||
|
||||
```shell
|
||||
sudo tee --append /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
Name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.4.3/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
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
Install the kernel mode driver and reboot the system using the following
|
||||
commands:
|
||||
|
||||
```shell
|
||||
sudo yum install amdgpu-dkms
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
2. Add the ROCm Stack Repository and Install Meta-packages
|
||||
|
||||
To add the ROCm repository, use the following steps:
|
||||
|
||||
```shell
|
||||
for ver in 5.0.2 5.1.4 5.2.5 5.3.3 5.4.3; do
|
||||
sudo tee --append /etc/yum.repos.d/rocm.repo <<EOF
|
||||
[ROCm-$ver]
|
||||
Name=ROCm$ver
|
||||
baseurl=https://repo.radeon.com/rocm/$ver/main
|
||||
enabled=1
|
||||
priority=50
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
done
|
||||
sudo yum clean all
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
```{important}
|
||||
If the existing ROCm release contains non-versioned ROCm packages, you must
|
||||
uninstall those packages before proceeding to the multi-version installation
|
||||
to avoid conflicts.
|
||||
```
|
||||
|
||||
```shell
|
||||
sudo yum install rocm-hip-sdk5.4.3 rocm-hip-sdk5.2.5
|
||||
```
|
||||
|
||||
:::::
|
||||
:::::{tab-item} SUSE Linux Enterprise Server 15
|
||||
:sync: SLES15
|
||||
|
||||
::::{rubric} Installation of Kernel Headers and Development Packages
|
||||
::::
|
||||
|
||||
ROCm installation requires you to install `linux-headers` and
|
||||
`linux-modules-extra` package with the correct version corresponding to the
|
||||
kernel's version.
|
||||
|
||||
**Example:** If the system is running the Linux kernel version
|
||||
`5.3.18-57_11.0.18`, you must install the same versions of Linux headers and
|
||||
development packages. Refer to {ref}`check-kernel-info` on to how to check
|
||||
the system's kernel version.
|
||||
|
||||
To check the `kernel-headers` and `linux-modules-extra` package versions, follow
|
||||
these steps:
|
||||
|
||||
1. Ensure that the correct version of the latest `kernel-default-devel` and
|
||||
`kernel-default` packages are installed. The following command lists the
|
||||
installed `kernel-default-devel` and `kernel-default` package:
|
||||
|
||||
```shell
|
||||
sudo zypper info kernel-default-devel or kernel-default
|
||||
```
|
||||
|
||||
```{note}
|
||||
This next step is only required if you find from the above command that the
|
||||
`kernel-default-devel` and `kernel-default` versions of the package,
|
||||
corresponding to the kernel release version, do not exist on your system.
|
||||
```
|
||||
|
||||
2. If the required version of packages does not exist on the system, install
|
||||
with the command below:
|
||||
|
||||
```shell
|
||||
sudo zypper install kernel-default-devel or kernel-default
|
||||
```
|
||||
|
||||
::::{rubric} Adding the AMDGPU and ROCm Stack Repositories
|
||||
::::
|
||||
|
||||
1. Add the AMDGPU Stack Repository and Install the Kernel-mode Driver
|
||||
|
||||
```{attention}
|
||||
If you have a version of the kernel-mode driver installed, you may skip this
|
||||
section.
|
||||
```
|
||||
|
||||
```shell
|
||||
sudo tee --append /etc/zypp/repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.4.3/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
|
||||
```
|
||||
|
||||
2. Add the ROCm Stack Repository and Install Meta-packages
|
||||
|
||||
To add the ROCm repository, use the following steps:
|
||||
|
||||
```shell
|
||||
for ver in 5.0.2 5.1.4 5.2.5 5.3.3 5.4.3; do
|
||||
sudo tee --append /etc/zypp/repos.d/rocm.repo <<EOF
|
||||
name=rocm
|
||||
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
|
||||
done
|
||||
sudo zypper ref
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
```{important}
|
||||
If the existing ROCm release contains non-versioned ROCm packages, you must
|
||||
uninstall those packages before proceeding to the multi-version installation
|
||||
to avoid conflicts.
|
||||
```
|
||||
|
||||
```shell
|
||||
sudo zypper --gpg-auto-import-keys install rocm-hip-sdk5.4.3 rocm-hip-sdk5.2.5
|
||||
```
|
||||
|
||||
:::::
|
||||
::::::
|
||||
|
||||
(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.4.3/bin:/opt/rocm-5.4.3/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
|
||||
# OR
|
||||
/opt/rocm/opencl/bin/clinfo
|
||||
```
|
||||
|
||||
### 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 15
|
||||
:sync: SLES15
|
||||
|
||||
```shell
|
||||
sudo zypper search --installed-only
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
@@ -1,111 +1,38 @@
|
||||
# Installation Overview (Linux)
|
||||
# ROCm Installation Options (Linux)
|
||||
|
||||
This document is intended for users familiar with Linux and discusses the
|
||||
installation of ROCm on various distributions.
|
||||
Users installing ROCm must choose between various installation options. A new
|
||||
user should follow the [Quick Start guide](./quick_start).
|
||||
|
||||
The guide provides instructions for the following:
|
||||
## Package Manager versus AMDGPU Installer?
|
||||
|
||||
- Kernel-mode driver installation
|
||||
- ROCm single-version and multi-version installation
|
||||
- ROCm and kernel-mode driver version upgrade
|
||||
- ROCm single-version and multi-version uninstallation
|
||||
- Kernel-mode driver uninstallation
|
||||
ROCm supports two methods for installation:
|
||||
|
||||
```{note}
|
||||
The rest of this document refers to _Radeon™ Software for Linux_ as the `amdgpu`
|
||||
stack and `amdgpu-dkms` driver as the kernel-mode driver.
|
||||
```
|
||||
- Directly using the Linux distribution's package manager
|
||||
- The `amdgpu-install` script
|
||||
|
||||
## Installation Methods
|
||||
There is no difference in the final installation state when choosing either
|
||||
option.
|
||||
|
||||
It is customary for Linux installers to integrate into the system's package
|
||||
manager. There are two notable groups of package sources:
|
||||
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.
|
||||
|
||||
- AMD-hosted repositories maintained by AMD available to register on supported
|
||||
Linux distribution versions. For a complete list of AMD-supported platforms,
|
||||
refer to the article: [GPU and OS Support](/release/gpu_os_support).
|
||||
- Distribution-hosted repositories maintained by the developer of said Linux
|
||||
distribution. These require little to no setup from the user, but aren't tested
|
||||
by AMD. For support on these installations, contact the relevant maintainers.
|
||||
The `amdgpu-install` script is a wrapper around the package manager. The same
|
||||
packages are installed by this script as the package manager system.
|
||||
|
||||
AMD also provides installer scripts for those that wish to drive installations
|
||||
in a more manual fashion.
|
||||
|
||||
## Package Licensing
|
||||
|
||||
```{attention}
|
||||
AQL Profiler and AOCC CPU optimization are both provided in binary form, each
|
||||
subject to the license agreement enclosed in the directory for the binary and is
|
||||
available here: `/opt/rocm/share/doc/rocm-llvm-alt/EULA`. By using, installing,
|
||||
copying or distributing AQL Profiler and/or AOCC CPU Optimizations, you agree to
|
||||
the terms and conditions of this license agreement. If you do not agree to the
|
||||
terms of this agreement, do not install, copy or use the AQL Profiler and/or the
|
||||
AOCC CPU Optimizations.
|
||||
```
|
||||
|
||||
For the rest of the ROCm packages, you can find the licensing information at the
|
||||
following location: `/opt/rocm/share/doc/<component-name>/`
|
||||
|
||||
For example, you can fetch the licensing information of the `_amd_comgr_`
|
||||
component (Code Object Manager) from the `amd_comgr` folder. A file named
|
||||
`LICENSE.txt` contains the license details at:
|
||||
`/opt/rocm-5.4.3/share/doc/amd_comgr/LICENSE.txt`
|
||||
|
||||
### Package Manager Integration
|
||||
|
||||
Integrating with the distribution's package manager let's the user install,
|
||||
upgrade and uninstall using familiar commands and workflows. The actual commands
|
||||
vary from distribution to distribution. For more information, refer to
|
||||
[Package Manager Integration](package_manager_integration).
|
||||
|
||||
### Installer Script
|
||||
|
||||
The `amdgpu-install` script streamlines the installation process by:
|
||||
|
||||
- Abstracting the distribution-specific package installation logic
|
||||
- Performing the repository setup
|
||||
- Allowing you to specify the use case and automating the installation of all
|
||||
the required packages
|
||||
- Installing multiple ROCm releases simultaneously on a system
|
||||
- Automating updating local repository information through enhanced
|
||||
functionality of the `amdgpu-install` script
|
||||
- Performing post-install checks to verify whether the installation was
|
||||
completed successfully
|
||||
- Upgrading the installed ROCm release
|
||||
- Uninstalling the installed single-version or multi-version ROCm releases
|
||||
|
||||
```{tip}
|
||||
The installer script is provided for convenience. It doesn't do anything the
|
||||
user otherwise couldn't. It automates some tasks surrounding installation, such
|
||||
as registering/unregistering and driving the system's package manager, but the
|
||||
bulk of the work will still be done by the system's package manager. As is the
|
||||
case with most convenience wrappers, some degree of customization is lost for
|
||||
the sake of simplicity.
|
||||
```
|
||||
|
||||
#### Use cases
|
||||
|
||||
The installer script introduces the notion of "use cases", which denote usage
|
||||
patterns or reasons why someone installs ROCm. This is to allow users to install
|
||||
only a subset of the ROCm ecosystem, parts concerning them, resulting in
|
||||
smaller installation footprint and faster installs/upgrades.
|
||||
|
||||
Some of the ROCm-specific use cases the installer supports are:
|
||||
|
||||
- OpenCL (ROCr/KFD based) runtime
|
||||
- HIP runtimes
|
||||
- ROCm libraries and applications
|
||||
- ROCm Compiler and device libraries
|
||||
- Kernel-mode driver
|
||||
|
||||
For more information, refer to the How to Install ROCm section in this guide.
|
||||
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)=
|
||||
|
||||
## Installation types
|
||||
## Single Version ROCm install versus Multi-Version
|
||||
|
||||
This section discusses the single-version and multi-version installation of the
|
||||
ROCm software stack.
|
||||
ROCm packages are versioned with both semantic versioning that is package
|
||||
specific and a ROCm release version.
|
||||
|
||||
### Single-version Installation
|
||||
|
||||
@@ -123,8 +50,14 @@ The multi-version installation refers to the following:
|
||||
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}
|
||||
Multiversion install is not available for the AMDGPU stack.
|
||||
Multiversion install is not available for the kernel driver module, also referred to as AMDGPU.
|
||||
```
|
||||
|
||||
The following image demonstrates the difference between single-version and
|
||||
|
||||
31
docs/deploy/linux/installer/index.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# AMDGPU Install Script
|
||||
|
||||
::::{grid} 2 3 3 3
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} Install
|
||||
:link: install
|
||||
:link-type: doc
|
||||
|
||||
How to install ROCm?
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Upgrade
|
||||
:link: upgrade
|
||||
:link-type: doc
|
||||
|
||||
Instructions for upgrading an existing ROCm installation.
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Uninstall
|
||||
:link: uninstall
|
||||
:link-type: doc
|
||||
|
||||
Steps for removing ROCm packages, libraries and tools.
|
||||
:::
|
||||
|
||||
::::
|
||||
|
||||
## See Also
|
||||
|
||||
- {doc}`/release/gpu_os_support`
|
||||
325
docs/deploy/linux/installer/install.md
Normal file
@@ -0,0 +1,325 @@
|
||||
# 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 20.04
|
||||
:sync: ubuntu-20.04
|
||||
|
||||
```shell
|
||||
sudo apt update
|
||||
wget https://repo.radeon.com/amdgpu-install/5.6/ubuntu/focal/amdgpu-install_5.6.50600-1_all.deb
|
||||
sudo apt install ./amdgpu-install_5.6.50600-1_all.deb
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} Ubuntu 22.04
|
||||
:sync: ubuntu-22.04
|
||||
|
||||
```shell
|
||||
sudo apt update
|
||||
wget https://repo.radeon.com/amdgpu-install/5.6/ubuntu/jammy/amdgpu-install_5.6.50600-1_all.deb
|
||||
sudo apt install ./amdgpu-install_5.6.50600-1_all.deb
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
:::::
|
||||
:::::{tab-item} Red Hat Enterprise Linux
|
||||
:sync: RHEL
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} RHEL 8.6
|
||||
:sync: RHEL-8.6
|
||||
:sync: RHEL-8
|
||||
|
||||
```shell
|
||||
sudo yum install https://repo.radeon.com/amdgpu-install/5.6/rhel/8.6/amdgpu-install-5.6.50600-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.6/rhel/8.7/amdgpu-install-5.6.50600-1.el8.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.5.1/rhel/8.8/amdgpu-install-5.5.50501-1.el8.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.6/rhel/9.1/amdgpu-install-5.6.50600-1.el8.noarch.rpm
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} RHEL 9.2
|
||||
:sync: RHEL-9.2
|
||||
:sync: RHEL-9
|
||||
|
||||
```shell
|
||||
sudo yum install https://repo.radeon.com/amdgpu-install/5.5.1/rhel/9.2/amdgpu-install-5.5.50501-1.el8.noarch.rpm
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
:::::
|
||||
:::::{tab-item} SUSE Linux Enterprise Server
|
||||
:sync: SLES
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} SLES 15.4
|
||||
:sync: SLES-15.4
|
||||
|
||||
```shell
|
||||
sudo zypper --no-gpg-checks install https://repo.radeon.com/amdgpu-install/5.6/sle/15.4/amdgpu-install-5.6.50600-1.noarch.rpm
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} SLES 15.5
|
||||
:sync: SLES-15.5
|
||||
|
||||
```shell
|
||||
sudo zypper --no-gpg-checks install https://repo.radeon.com/amdgpu-install/5.6/sle/15.5/amdgpu-install-5.6.50600-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.3.3 and 5.4.3
|
||||
simultaneously, you are required to download the installer from the latest ROCm
|
||||
release v5.4.3.
|
||||
|
||||
### 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 20.04
|
||||
:sync: ubuntu-20.04
|
||||
|
||||
```shell
|
||||
for ver in 5.3.3 5.4.3; 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} Ubuntu 22.04
|
||||
:sync: ubuntu-22.04
|
||||
|
||||
```shell
|
||||
for ver in 5.3.3 5.4.3; 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} Red Hat Enterprise Linux
|
||||
:sync: RHEL
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} RHEL 8
|
||||
:sync: RHEL-8
|
||||
|
||||
```shell
|
||||
for ver in 5.3.3 5.4.3; 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} RHEL 9
|
||||
:sync: RHEL-9
|
||||
|
||||
```shell
|
||||
for ver in 5.3.3 5.4.3; 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} SUSE Linux Enterprise Server
|
||||
:sync: SLES
|
||||
|
||||
```shell
|
||||
for ver in 5.3.3 5.4.3; 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 v5.4.3, will be installed as its latest
|
||||
release in the list.
|
||||
|
||||
```none
|
||||
sudo amdgpu-install --usecase=rocm --rocmrelease=5.3.3
|
||||
sudo amdgpu-install --usecase=rocm --rocmrelease=5.4.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.
|
||||
25
docs/deploy/linux/installer/uninstall.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# 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
|
||||
```
|
||||
5
docs/deploy/linux/installer/upgrade.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# 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.
|
||||
38
docs/deploy/linux/os-native/index.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Installation via Package manager
|
||||
|
||||
::::{grid} 2 3 3 3
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} Install
|
||||
:link: install
|
||||
:link-type: doc
|
||||
|
||||
How to install ROCm?
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Upgrade
|
||||
:link: upgrade
|
||||
:link-type: doc
|
||||
|
||||
Instructions for upgrading an existing ROCm installation.
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Uninstall
|
||||
:link: uninstall
|
||||
:link-type: doc
|
||||
|
||||
Steps for removing ROCm packages libraries and tools.
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Package Manager Integration
|
||||
:link: package_manager_integration
|
||||
:link-type: doc
|
||||
|
||||
Information about packages.
|
||||
:::
|
||||
|
||||
::::
|
||||
|
||||
## See Also
|
||||
|
||||
- {doc}`/release/gpu_os_support`
|
||||
526
docs/deploy/linux/os-native/install.md
Normal file
@@ -0,0 +1,526 @@
|
||||
# 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 20.04
|
||||
:sync: ubuntu-20.04
|
||||
|
||||
```shell
|
||||
# amdgpu repository for focal
|
||||
echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/5.6/ubuntu focal main' \
|
||||
| sudo tee /etc/apt/sources.list.d/amdgpu.list
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} Ubuntu 22.04
|
||||
:sync: ubuntu-22.04
|
||||
|
||||
```shell
|
||||
# amdgpu repository for jammy
|
||||
echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/5.6/ubuntu jammy 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 20.04
|
||||
:sync: ubuntu-20.04
|
||||
|
||||
```shell
|
||||
# ROCm repositories for focal
|
||||
for ver in 5.3.3 5.4.3 5.5.1 5.6; 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
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} Ubuntu 22.04
|
||||
:sync: ubuntu-22.04
|
||||
|
||||
```shell
|
||||
# ROCm repositories for jammy
|
||||
for ver in 5.3.3 5.4.3 5.5.1 5.6; 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
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
::::{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.6 rocm-hip-sdk5.3.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 8.6
|
||||
:sync: RHEL-8.6
|
||||
:sync: RHEL-8
|
||||
|
||||
```shell
|
||||
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.6/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} RHEL 8.7
|
||||
:sync: RHEL-8.7
|
||||
:sync: RHEL-8
|
||||
|
||||
```shell
|
||||
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.6/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.8
|
||||
:sync: RHEL-8.8
|
||||
:sync: RHEL-8
|
||||
|
||||
```shell
|
||||
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.5.1/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 9.1
|
||||
:sync: RHEL-9.1
|
||||
:sync: RHEL-9
|
||||
|
||||
```shell
|
||||
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.6/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 9.2
|
||||
:sync: RHEL-9.2
|
||||
:sync: RHEL-9
|
||||
|
||||
```shell
|
||||
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.5.1/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
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
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 8
|
||||
:sync: RHEL-8
|
||||
|
||||
```shell
|
||||
for ver in 5.3.3 5.4.3 5.5.1 5.6; 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} RHEL 9
|
||||
:sync: RHEL-9
|
||||
|
||||
```shell
|
||||
for ver in 5.3.3 5.4.3 5.5.1 5.6; 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
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
::::{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.6 rocm-hip-sdk5.3.3
|
||||
```
|
||||
|
||||
:::::
|
||||
:::::{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.4
|
||||
:sync: SLES-15.4
|
||||
|
||||
```shell
|
||||
sudo tee /etc/zypp/repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.6/sle/15.4/main/x86_64
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
sudo zypper ref
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} SLES 15.5
|
||||
:sync: SLES-15.5
|
||||
|
||||
```shell
|
||||
sudo tee /etc/zypp/repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.6/sle/15.5/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.3 5.5.1 5.6; 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.6 rocm-hip-sdk5.3.3
|
||||
```
|
||||
|
||||
:::::
|
||||
::::::
|
||||
|
||||
(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/bin:/opt/rocm-5.6/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
|
||||
# OR
|
||||
/opt/rocm/opencl/bin/clinfo
|
||||
```
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
@@ -1,23 +1,9 @@
|
||||
# Uninstallation (Linux)
|
||||
# Uninstallation with package manager (Linux)
|
||||
|
||||
Uninstallation of ROCm entails removing ROCm packages, tools, and libraries from
|
||||
the system.
|
||||
|
||||
You can uninstall using the following methods:
|
||||
|
||||
- Package manager uninstallation
|
||||
- Uninstallation using the uninstall script
|
||||
|
||||
```{attention}
|
||||
Use the same uninstall method that you used to install ROCm. Mixing procedures
|
||||
is untested and may result in inconsistent system state.
|
||||
```
|
||||
|
||||
## Package Manager Method
|
||||
|
||||
The package manager uninstallation offers a method for a clean uninstallation
|
||||
process for ROCm. This section describes how to uninstall the ROCm instance from
|
||||
various Linux distributions.
|
||||
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}`/deploy/linux/installer/uninstall`.
|
||||
|
||||
::::::{tab-set}
|
||||
:::::{tab-item} Ubuntu
|
||||
@@ -128,8 +114,8 @@ sudo yum autoremove amdgpu-dkms
|
||||
```
|
||||
|
||||
:::::
|
||||
:::::{tab-item} SUSE Linux Enterprise Server 15
|
||||
:sync: SLES15
|
||||
:::::{tab-item} SUSE Linux Enterprise Server
|
||||
:sync: SLES
|
||||
|
||||
::::{rubric} Uninstalling Specific Meta-packages
|
||||
::::
|
||||
@@ -182,31 +168,3 @@ sudo zypper remove --clean-deps amdgpu-dkms
|
||||
|
||||
:::::
|
||||
::::::
|
||||
|
||||
## Installer Script Method
|
||||
|
||||
::::{rubric} Uninstalling Single-Version Install
|
||||
::::
|
||||
|
||||
```console shell
|
||||
sudo amdgpu-install --uninstall
|
||||
```
|
||||
|
||||
```{note}
|
||||
This command uninstalls all ROCm packages associated with the installed ROCm
|
||||
release along with the kernel-mode driver.
|
||||
```
|
||||
|
||||
::::{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
|
||||
```
|
||||
350
docs/deploy/linux/os-native/upgrade.md
Normal file
@@ -0,0 +1,350 @@
|
||||
# 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 20.04
|
||||
:sync: ubuntu-20.04
|
||||
|
||||
```shell
|
||||
# amdgpu repository for focal
|
||||
echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/5.6/ubuntu focal main' \
|
||||
| sudo tee /etc/apt/sources.list.d/amdgpu.list
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} Ubuntu 22.04
|
||||
:sync: ubuntu-22.04
|
||||
|
||||
```shell
|
||||
# amdgpu repository for jammy
|
||||
echo 'deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amdgpu/5.6/ubuntu jammy 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 8.6
|
||||
:sync: RHEL-8.6
|
||||
:sync: RHEL-8
|
||||
|
||||
```shell
|
||||
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.6/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} RHEL 8.7
|
||||
:sync: RHEL-8.7
|
||||
:sync: RHEL-8
|
||||
|
||||
```shell
|
||||
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.6/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.8
|
||||
:sync: RHEL-8.8
|
||||
:sync: RHEL-8
|
||||
|
||||
```shell
|
||||
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.5.1/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 9.1
|
||||
:sync: RHEL-9.1
|
||||
:sync: RHEL-9
|
||||
|
||||
```shell
|
||||
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.6/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 9.2
|
||||
:sync: RHEL-9.2
|
||||
:sync: RHEL-9
|
||||
|
||||
```shell
|
||||
sudo tee /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.5.1/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} SUSE Linux Enterprise Server
|
||||
:sync: SLES
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} SLES 15.4
|
||||
:sync: SLES-15.4
|
||||
|
||||
```shell
|
||||
sudo tee /etc/zypp/repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.6/sle/15.4/main/x86_64
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
sudo zypper ref
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} SLES 15.5
|
||||
:sync: SLES-15.5
|
||||
|
||||
```shell
|
||||
sudo tee /etc/zypp/repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.6/sle/15.5/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 & 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 20.04
|
||||
:sync: ubuntu-20.04
|
||||
|
||||
```shell
|
||||
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/5.6 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} Ubuntu 22.04
|
||||
:sync: ubuntu-22.04
|
||||
|
||||
```shell
|
||||
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/5.6 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} Red Hat Enterprise Linux
|
||||
:sync: RHEL
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} RHEL 8
|
||||
:sync: RHEL-8
|
||||
|
||||
```shell
|
||||
sudo tee /etc/yum.repos.d/rocm.repo <<EOF
|
||||
[ROCm-5.6]
|
||||
name=ROCm5.6
|
||||
baseurl=https://repo.radeon.com/rocm/rhel8/5.6/main
|
||||
enabled=1
|
||||
priority=50
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
sudo yum clean all
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} RHEL 9
|
||||
:sync: RHEL-9
|
||||
|
||||
```shell
|
||||
sudo tee /etc/yum.repos.d/rocm.repo <<EOF
|
||||
[ROCm-5.6]
|
||||
name=ROCm5.6
|
||||
baseurl=https://repo.radeon.com/rocm/rhel9/5.6/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
|
||||
sudo tee /etc/zypp/repos.d/rocm.repo <<EOF
|
||||
[ROCm-5.6]
|
||||
name=ROCm5.6
|
||||
name=rocm
|
||||
baseurl=https://repo.radeon.com/rocm/zyp/5.6/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.
|
||||
@@ -49,59 +49,144 @@ Verify the kernel version using the following steps:
|
||||
uname -srmv
|
||||
```
|
||||
|
||||
2. Confirm that the obtained kernel version information matches with System
|
||||
Requirements.
|
||||
|
||||
**Example:** The output of the command above lists the kernel version in the
|
||||
following format:
|
||||
|
||||
```shell
|
||||
```output
|
||||
Linux 5.15.0-46-generic #44~20.04.5-Ubuntu SMP Fri Jun 24 13:27:29 UTC 2022 x86_64
|
||||
```
|
||||
|
||||
## Confirm the System has a ROCm-Capable GPU
|
||||
2. Confirm that the obtained kernel version information matches with system
|
||||
requirements as listed in {ref}`supported_distributions`.
|
||||
|
||||
The ROCm platform is designed to support the following GPUs:
|
||||
## Additional package repositories
|
||||
|
||||
```{table} GPU Support for ROCm Programming Models
|
||||
:name: gpu-support
|
||||
| **Classification** | **GPU Name** | **GFX ID** | **Product Id** |
|
||||
|:------------------:|:-------------------------:|:----------:|:--------------:|
|
||||
| **GFX9 GPUs** | AMD Radeon Instinct™ MI50 | gfx906 | Vega 20 |
|
||||
| **GFX9 GPUs** | AMD Radeon Instinct™ MI60 | gfx906 | Vega 20 |
|
||||
| **GFX9 GPUs** | AMD Radeon™ VII | gfx906 | Vega 20 |
|
||||
| **GFX9 GPUs** | AMD Radeon™ Pro VII | gfx906 | Vega 20 |
|
||||
| **RDNA GPUs** | AMD Radeon™ Pro W6800 | gfx1030 | Navi 21 GL-XL |
|
||||
| **RDNA GPUs** | AMD Radeon™ Pro V620 | gfx1030 | Navi 21 GL-XE |
|
||||
| **CDNA GPUs** | AMD Instinct™ MI100 | gfx908 | Arcturus |
|
||||
| **CDNA GPUs** | AMD Instinct™ MI200 | gfx90a | Aldebaran |
|
||||
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
|
||||
```
|
||||
|
||||
### Verify Your System Has a ROCm-Capable GPU
|
||||
:::
|
||||
:::{tab-item} RHEL 9
|
||||
:sync: RHEL-9
|
||||
|
||||
To verify that your system has a ROCm-capable GPU, use these steps:
|
||||
```shell
|
||||
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
|
||||
sudo rpm -ivh epel-release-latest-9.noarch.rpm
|
||||
```
|
||||
|
||||
1. Enter the following command:
|
||||
:::
|
||||
::::
|
||||
|
||||
```shell
|
||||
lspci | grep -i display
|
||||
```
|
||||
::::{rubric} 2. Enable the CodeReady Linux Builder repository
|
||||
::::
|
||||
|
||||
The command displays the details of detected GPUs on the system in the
|
||||
following format in the case of AMD Instinct™ MI200:
|
||||
Run the following command and follow the instructions.
|
||||
|
||||
```text
|
||||
c1:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Aldebaran
|
||||
c5:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Aldebaran
|
||||
```
|
||||
```shell
|
||||
sudo crb enable
|
||||
```
|
||||
|
||||
2. Verify from the output that the listed product names match with the Product
|
||||
Id given in the table above.
|
||||
:::::
|
||||
:::::{tab-item} SUSE Linux Enterprise Server
|
||||
:sync: SLES
|
||||
|
||||
### Setting Permissions for Groups
|
||||
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
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
## 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:
|
||||
|
||||
@@ -109,21 +194,17 @@ GPU resources.
|
||||
groups
|
||||
```
|
||||
|
||||
2. Add yourself to the `render` or `video` group using the following instruction:
|
||||
2. Add yourself to the `render` and `video` group using the command:
|
||||
|
||||
```shell
|
||||
sudo usermod -a -G render $LOGNAME
|
||||
# OR
|
||||
sudo usermod -a -G video $LOGNAME
|
||||
sudo usermod -a -G render,video $LOGNAME
|
||||
```
|
||||
|
||||
3. Use of the video group is recommended for all ROCm-supported operating
|
||||
systems.
|
||||
To add all future users to the `video` and `render` groups by default, run
|
||||
the following commands:
|
||||
|
||||
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
|
||||
```
|
||||
```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
|
||||
```
|
||||
|
||||
@@ -1,48 +1,5 @@
|
||||
# Quick Start (Linux)
|
||||
|
||||
## Install Prerequisites
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
## Add Repositories
|
||||
|
||||
::::::{tab-set}
|
||||
@@ -93,6 +50,8 @@ EOF
|
||||
sudo tee /etc/apt/sources.list.d/rocm.list <<'EOF'
|
||||
deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/debian jammy main
|
||||
EOF
|
||||
# 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
|
||||
```
|
||||
|
||||
:::
|
||||
@@ -168,6 +127,33 @@ EOF
|
||||
|
||||
:::
|
||||
|
||||
:::{tab-item} RHEL 8.8
|
||||
:sync: RHEL-8.8
|
||||
|
||||
```shell
|
||||
# Add the amdgpu module repository for RHEL 8.8
|
||||
sudo tee /etc/yum.repos.d/amdgpu.repo <<'EOF'
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/latest/rhel/8.8/main/x86_64
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
# Add the rocm repository for RHEL 8
|
||||
sudo tee /etc/yum.repos.d/rocm.repo <<'EOF'
|
||||
[rocm]
|
||||
name=rocm
|
||||
baseurl=https://repo.radeon.com/rocm/rhel8/latest/main
|
||||
enabled=1
|
||||
priority=50
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
:::{tab-item} RHEL 9.1
|
||||
:sync: RHEL-9.1
|
||||
|
||||
@@ -193,6 +179,33 @@ gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
:::{tab-item} RHEL 9.2
|
||||
:sync: RHEL-9.2
|
||||
|
||||
```shell
|
||||
# Add the amdgpu module repository for RHEL 9.2
|
||||
sudo tee /etc/yum.repos.d/amdgpu.repo <<'EOF'
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/latest/rhel/9.2/main/x86_64
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
# Add the rocm repository for RHEL 9
|
||||
sudo tee /etc/yum.repos.d/rocm.repo <<'EOF'
|
||||
[rocm]
|
||||
name=rocm
|
||||
baseurl=https://repo.radeon.com/rocm/rhel9/latest/main
|
||||
enabled=1
|
||||
priority=50
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
@@ -212,8 +225,8 @@ sudo yum clean all
|
||||
::::
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} SLES 15 SP4
|
||||
:sync: SLES15-SP4
|
||||
:::{tab-item} SLES 15.4
|
||||
:sync: SLES-15.4
|
||||
|
||||
```shell
|
||||
|
||||
@@ -238,6 +251,33 @@ gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} SLES 15.5
|
||||
:sync: SLES-15.5
|
||||
|
||||
```shell
|
||||
|
||||
# Add the amdgpu module repository for SLES 15.5
|
||||
sudo tee /etc/zypp/repos.d/amdgpu.repo <<'EOF'
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/latest/sle/15.5/main/x86_64
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
# Add the rocm repository for SLES
|
||||
sudo tee /etc/zypp/repos.d/rocm.repo <<'EOF'
|
||||
[rocm]
|
||||
name=rocm
|
||||
baseurl=https://repo.radeon.com/rocm/zyp/zypper
|
||||
enabled=1
|
||||
priority=50
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
|
||||
@@ -1,282 +0,0 @@
|
||||
# Upgrade (Linux)
|
||||
|
||||
This section explains how to upgrade the existing kernel-mode driver and ROCm
|
||||
packages to the latest version. The assumption is that you already have a
|
||||
version of the kernel-mode driver and the ROCm software stack is installed on
|
||||
the system.
|
||||
|
||||
```{note}
|
||||
Package upgrade is applicable to single-version packages only. If the preference
|
||||
is to install an updated version of the ROCm stack along with the currently
|
||||
installed version, refer to the [](install) page.
|
||||
```
|
||||
|
||||
You may use the following upgrade methods to upgrade ROCm:
|
||||
|
||||
- Package manager method
|
||||
- Installer script method
|
||||
|
||||
## Package Manager Method
|
||||
|
||||
To upgrade the system with the desired ROCm release using the package manager
|
||||
method, follow the steps below:
|
||||
|
||||
1. **Update the AMDGPU stack repository** – Ensure you have updated the AMDGPU
|
||||
repository.
|
||||
|
||||
2. **Upgrade the kernel-mode driver and reboot the system** – Ensure you have
|
||||
upgraded the kernel-mode driver and rebooted the system.
|
||||
|
||||
3. **Update the ROCm repository** – Ensure you have updated the ROCm repository
|
||||
with the desired ROCm release.
|
||||
|
||||
4. **Upgrade the ROCm meta-packages** – Upgrade the ROCm meta-packages.
|
||||
|
||||
5. **Verify the upgrade for the applicable distributions** – Verify if the
|
||||
upgrade is successful.
|
||||
|
||||
To upgrade ROCm on different Linux distributions, refer to the sections below
|
||||
for specific commands.
|
||||
|
||||
::::::{tab-set}
|
||||
:::::{tab-item} Ubuntu
|
||||
:sync: ubuntu
|
||||
|
||||
::::{rubric} Update the AMDGPU Stack Repository
|
||||
::::
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} Ubuntu 20.04
|
||||
:sync: ubuntu-20.04
|
||||
|
||||
```shell
|
||||
echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/amdgpu/5.4.3/ubuntu focal main' | sudo tee /etc/apt/sources.list.d/amdgpu.list
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
:::
|
||||
:::{tab-item} Ubuntu 22.04
|
||||
:sync: ubuntu-22.04
|
||||
|
||||
```shell
|
||||
echo 'deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/amdgpu/5.4.3/ubuntu jammy main' | sudo tee /etc/apt/sources.list.d/amdgpu.list
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
Upgrade the kernel mode driver and reboot the system using the following
|
||||
commands:
|
||||
|
||||
```shell
|
||||
sudo apt install amdgpu-dkms
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
::::{rubric} Update the ROCm Stack Repository
|
||||
::::
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} Ubuntu 20.04
|
||||
:sync: ubuntu-20.04
|
||||
|
||||
```shell
|
||||
echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/rocm/apt/5.4.3 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} Ubuntu 22.04
|
||||
:sync: ubuntu-22.04
|
||||
|
||||
```shell
|
||||
echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/rocm-keyring.gpg] https://repo.radeon.com/rocm/apt/5.4.3 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
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
::::{rubric} Upgrade the ROCm Meta-packages
|
||||
::::
|
||||
|
||||
Your packages can be upgraded now through their meta-packages, for example:
|
||||
|
||||
```shell
|
||||
sudo apt install –-only-upgrade rocm-hip-sdk
|
||||
```
|
||||
|
||||
:::::
|
||||
:::::{tab-item} Red Hat Enterprise Linux
|
||||
:sync: RHEL
|
||||
|
||||
::::{rubric} Update the AMDGPU Stack Repository
|
||||
::::
|
||||
|
||||
::::{tab-set}
|
||||
:::{tab-item} RHEL 8.6
|
||||
:sync: RHEL-8.6
|
||||
|
||||
```shell
|
||||
sudo tee --append /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
Name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.4.3/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} RHEL 8.7
|
||||
:sync: RHEL-8.7
|
||||
|
||||
```shell
|
||||
sudo tee --append /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
Name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.4.3/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 9.1
|
||||
:sync: RHEL-9.1
|
||||
|
||||
```shell
|
||||
sudo tee --append /etc/yum.repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
Name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.4.3/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
|
||||
```
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
::::{rubric} Upgrade the Kernel-mode Driver and Reboot the System
|
||||
::::
|
||||
|
||||
Upgrade the kernel mode driver and reboot the system using the following
|
||||
commands:
|
||||
|
||||
```shell
|
||||
sudo yum install amdgpu-dkms
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
::::{rubric} Update the ROCm Repository
|
||||
::::
|
||||
|
||||
```shell
|
||||
sudo tee --append /etc/yum.repos.d/rocm.repo <<EOF
|
||||
[ROCm-5.4.3]
|
||||
Name=ROCm5.4.3
|
||||
baseurl=https://repo.radeon.com/rocm/5.4.3/main
|
||||
enabled=1
|
||||
priority=50
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
done
|
||||
sudo yum clean all
|
||||
```
|
||||
|
||||
::::{rubric} Upgrade the ROCm Meta-packages
|
||||
::::
|
||||
|
||||
Your packages can be upgraded now through their meta-packages, for example:
|
||||
|
||||
```shell
|
||||
sudo apt install –-only-upgrade rocm-hip-sdk
|
||||
```
|
||||
|
||||
:::::
|
||||
:::::{tab-item} SUSE Linux Enterprise Server 15
|
||||
:sync: SLES15
|
||||
|
||||
::::{rubric} Update the AMDGPU Stack Repository
|
||||
::::
|
||||
|
||||
```shell
|
||||
sudo tee --append /etc/zypp/repos.d/amdgpu.repo <<EOF
|
||||
[amdgpu]
|
||||
name=amdgpu
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.4.3/sle/15.4/main/x86_64
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
sudo zypper ref
|
||||
```
|
||||
|
||||
::::{rubric} Upgrade the Kernel-mode Driver and Reboot the System
|
||||
::::
|
||||
|
||||
Upgrade 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} Update the ROCm Stack Repository
|
||||
::::
|
||||
|
||||
```shell
|
||||
sudo tee --append /etc/zypp/repos.d/rocm.repo <<EOF
|
||||
name=rocm
|
||||
baseurl=https://repo.radeon.com/amdgpu/5.4.3/sle/15.4/main/x86_64
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://repo.radeon.com/rocm/rocm.gpg.key
|
||||
EOF
|
||||
sudo zypper ref
|
||||
```
|
||||
|
||||
::::{rubric} Upgrade the ROCm Meta-packages
|
||||
::::
|
||||
|
||||
Your packages can be upgraded now through their meta-packages, for example:
|
||||
|
||||
```shell
|
||||
sudo zypper --gpg-auto-import-keys update -y rocm-hip-sdk
|
||||
```
|
||||
|
||||
:::::
|
||||
::::::
|
||||
|
||||
## Installer Script Method
|
||||
|
||||
The installer script method automates the upgrade process for the AMDGPU and
|
||||
ROCm stack. The `amdgpu-install` script handles the complete upgrade process for
|
||||
ROCm, including updating the required repositories and upgrading the desired
|
||||
meta-packages.
|
||||
|
||||
The upgrade procedure is exactly the same as installing for 1st time use. Refer
|
||||
to the {ref}`install-script-method` section on the exact procedure to follow.
|
||||
|
||||
## Verification Process
|
||||
|
||||
To verify if the upgrade is successful, refer to the
|
||||
{ref}`post-install-actions-linux` given in the
|
||||
[Installation](install) section.
|
||||
31
docs/deploy/windows/cli/index.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Command Line Installation
|
||||
|
||||
::::{grid} 2 3 3 3
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} Install
|
||||
:link: install
|
||||
:link-type: doc
|
||||
|
||||
How to install ROCm?
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Upgrade
|
||||
:link: upgrade
|
||||
:link-type: doc
|
||||
|
||||
Instructions for upgrading an existing ROCm installation.
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Uninstall
|
||||
:link: uninstall
|
||||
:link-type: doc
|
||||
|
||||
Steps for removing ROCm packages and libraries.
|
||||
:::
|
||||
|
||||
::::
|
||||
|
||||
## See Also
|
||||
|
||||
- {doc}`/release/gpu_os_support`
|
||||
56
docs/deploy/windows/cli/install.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# Installation Using the Command Line 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
|
||||
|
||||
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 are summarized in
|
||||
{numref}`hip-sdk-cli-options`.
|
||||
|
||||
```{table} HIP SDK Command Line Options
|
||||
:name: hip-sdk-cli-options
|
||||
| **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 command line interface 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
|
||||
```
|
||||
48
docs/deploy/windows/cli/uninstall.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# Uninstallation Using the Command Line Interface
|
||||
|
||||
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 are summarized in
|
||||
{numref}`hip-sdk-cli-options`.
|
||||
|
||||
```{table} HIP SDK Command Line Options
|
||||
:name: hip-sdk-cli-options
|
||||
| **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 command line interface 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
|
||||
```
|
||||
14
docs/deploy/windows/cli/upgrade.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# 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}`/deploy/windows/cli/uninstall` and
|
||||
{doc}`/deploy/windows/cli/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.
|
||||
31
docs/deploy/windows/gui/index.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Graphical Installation
|
||||
|
||||
::::{grid} 2 3 3 3
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} Install
|
||||
:link: install
|
||||
:link-type: doc
|
||||
|
||||
How to install ROCm?
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Upgrade
|
||||
:link: upgrade
|
||||
:link-type: doc
|
||||
|
||||
Instructions for upgrading an existing ROCm installation.
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Uninstall
|
||||
:link: uninstall
|
||||
:link-type: doc
|
||||
|
||||
Steps for removing ROCm packages and libraries.
|
||||
:::
|
||||
|
||||
::::
|
||||
|
||||
## See Also
|
||||
|
||||
- {doc}`/release/gpu_os_support`
|
||||
163
docs/deploy/windows/gui/install.md
Normal file
@@ -0,0 +1,163 @@
|
||||
# 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
|
||||
{numref}`setup-icon`.
|
||||
|
||||
```{figure} /data/deploy/windows/000-setup-icon.png
|
||||
:name: setup-icon
|
||||
:alt: Icon with AMD arrow logo and User Access Control Shield overlayed.
|
||||
Setup Icon
|
||||
```
|
||||
|
||||
The installer requires Administrator Privileges, so you may be greeted with a
|
||||
User Access Control (UAC) pop-up. Click Yes.
|
||||
|
||||
```{figure} /data/deploy/windows/001-uac-dark.png
|
||||
:name: uac-dark
|
||||
:class: only-dark
|
||||
:alt: User Access Control pop-up
|
||||
User Access Control pop-up
|
||||
```
|
||||
|
||||
```{figure} /data/deploy/windows/001-uac-light.png
|
||||
:name: uac-light
|
||||
:class: only-light
|
||||
:alt: User Access Control pop-up
|
||||
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 {numref}`init-install`.
|
||||
|
||||
```{figure} /data/deploy/windows/002-initializing.png
|
||||
:name: init-install
|
||||
:alt: Window with AMD arrow logo, futuristic background and progress counter.
|
||||
Installer initialization window
|
||||
```
|
||||
|
||||
The installer will then detect your system configuration as per
|
||||
{numref}`detecting-system-components` to decide, which installable components
|
||||
are applicable to your system.
|
||||
|
||||
```{figure} /data/deploy/windows/003-detecting-system-config.png
|
||||
:name: detecting-system-components
|
||||
:alt: Window with AMD arrow logo, futuristic background and activity indicator.
|
||||
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 {numref}`installer-window` for an instance when the Select All option
|
||||
is turned on.
|
||||
|
||||
```{figure} /data/deploy/windows/004-installer-window.png
|
||||
:name: installer-window
|
||||
:alt: Window with AMD arrow logo, futuristic background and activity indicator.
|
||||
Installer initialization window.
|
||||
```
|
||||
|
||||
#### HIP SDK Installer
|
||||
|
||||
The HIP SDK installation options are listed in {numref}`hip-sdk-options`.
|
||||
|
||||
```{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 by
|
||||
{numref}`display-driver-install-options`:
|
||||
|
||||
```{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. Refer to {numref}`display-driver-install-types` for details. |
|
||||
| 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
|
||||
{numref}`install-progress`.
|
||||
|
||||
```{figure} /data/deploy/windows/012-install-progress.png
|
||||
:name: install-progress
|
||||
:alt: Window with AMD arrow logo, futuristic background and progress meter.
|
||||
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
|
||||
{numref}`install-complete`
|
||||
|
||||
```{figure} /data/deploy/windows/013-install-complete.png
|
||||
:name: install-complete
|
||||
:alt: Window with AMD arrow logo, futuristic background and completion notice.
|
||||
Installation Complete
|
||||
```
|
||||
|
||||
```{error}
|
||||
Should the installer terminate due to unexpcted 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).
|
||||
```
|
||||
27
docs/deploy/windows/gui/uninstall.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# 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".
|
||||
|
||||
```{figure} /data/deploy/windows/014-uninstall-dark.png
|
||||
:name: uninstall-dark
|
||||
:class: only-dark
|
||||
:alt: Installed apps section of the Setting app showing installed HIP SDK components.
|
||||
Removing the SDK via the Setting app
|
||||
```
|
||||
|
||||
```{figure} /data/deploy/windows/014-uninstall-light.png
|
||||
:name: uninstall-light
|
||||
:class: only-light
|
||||
:alt: Installed apps section of the Setting app showing installed HIP SDK components.
|
||||
Removing the SDK via the Setting app
|
||||
```
|
||||
4
docs/deploy/windows/gui/upgrade.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# Upgrading Using the Graphical Interface
|
||||
|
||||
The steps to upgrade an existing HIP SDK installation for Windows are described
|
||||
in this document.
|
||||
44
docs/deploy/windows/index.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# Deploy ROCm on Windows
|
||||
|
||||
Start with {doc}`/deploy/windows/quick_start` or follow the detailed
|
||||
instructions below.
|
||||
|
||||
## Prepare to Install
|
||||
|
||||
::::{grid} 1 1 2 2
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} Prerequisites
|
||||
:link: prerequisites
|
||||
:link-type: doc
|
||||
|
||||
The prerequisites page lists the required steps to verify that the system
|
||||
supports ROCm.
|
||||
:::
|
||||
|
||||
::::
|
||||
|
||||
## Choose your install method
|
||||
|
||||
::::{grid} 1 1 2 2
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} Graphical Installation
|
||||
:link: gui/index
|
||||
:link-type: doc
|
||||
|
||||
Use the graphical front-end of the installer.
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Command Line Installation
|
||||
:link: cli/index
|
||||
:link-type: doc
|
||||
|
||||
Use the command line front-end of the installer.
|
||||
:::
|
||||
|
||||
::::
|
||||
|
||||
## See Also
|
||||
|
||||
- {doc}`/release/gpu_os_support`
|
||||
74
docs/deploy/windows/prerequisites.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# Installation Prerequisites (Windows)
|
||||
|
||||
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 Is Supported
|
||||
|
||||
The ROCm installation is supported only on specific host architectures, Windows
|
||||
SKUs and update versions.
|
||||
|
||||
### Check the Windows SKU and Update Version on Your System
|
||||
|
||||
This section discusses obtaining information about the host architecture,
|
||||
Windows SKU and update version.
|
||||
|
||||
#### Command Line Check
|
||||
|
||||
Verify the Windows SKU using the following steps:
|
||||
|
||||
1. To obtain the Linux distribution information, type the following command on
|
||||
your system from a PowerShell Command Line Interface (CLI):
|
||||
|
||||
```pwsh
|
||||
Get-ComputerInfo | Format-Table CsSystemType,OSName,OSDisplayVersion
|
||||
```
|
||||
|
||||
2. Confirm that the obtained information matches with those listed in
|
||||
{ref}`supported_skus`.
|
||||
|
||||
**Example:** Running the command above on a Windows system may result in the
|
||||
following output:
|
||||
|
||||
```output
|
||||
CsSystemType OsName OSDisplayVersion
|
||||
------------ ------ ----------------
|
||||
x64-based PC Microsoft Windows 11 Pro 22H2
|
||||
```
|
||||
|
||||
#### Graphical Check
|
||||
|
||||
1. Open the Setting app.
|
||||
|
||||
```{figure} /data/deploy/windows/000-settings-dark.png
|
||||
:name: settings-dark
|
||||
:class: only-dark
|
||||
:alt: Gear icon of the Windows Settings app
|
||||
Windows Settings app icon
|
||||
```
|
||||
|
||||
```{figure} /data/deploy/windows/000-settings-light.png
|
||||
:name: settings-light
|
||||
:class: only-light
|
||||
:alt: Gear icon of the Windows Settings app
|
||||
Windows Settings app icon
|
||||
```
|
||||
|
||||
2. Navigate to **System > About**.
|
||||
|
||||
```{figure} /data/deploy/windows/001-about-dark.png
|
||||
:name: about-dark
|
||||
:class: only-dark
|
||||
:alt: Settings app panel showing Device and OS information
|
||||
Settings > About page
|
||||
```
|
||||
|
||||
```{figure} /data/deploy/windows/001-about-light.png
|
||||
:name: about-light
|
||||
:class: only-light
|
||||
:alt: Settings app panel showing Device and OS information
|
||||
Settings > About page
|
||||
```
|
||||
|
||||
3. Confirm that the obtained information matches with those listed in
|
||||
{ref}`supported_skus`.
|
||||
187
docs/deploy/windows/quick_start.md
Normal file
@@ -0,0 +1,187 @@
|
||||
# Quick Start (Windows)
|
||||
|
||||
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
|
||||
{numref}`setup-icon`.
|
||||
|
||||
```{figure} /data/deploy/windows/000-setup-icon.png
|
||||
:name: setup-icon
|
||||
:alt: Icon with AMD arrow logo and User Access Control Shield overlayed.
|
||||
Setup Icon
|
||||
```
|
||||
|
||||
The installer requires Administrator Privileges, so you may be greeted with a
|
||||
User Access Control (UAC) pop-up. Click Yes.
|
||||
|
||||
```{figure} /data/deploy/windows/001-uac-dark.png
|
||||
:name: uac-dark
|
||||
:class: only-dark
|
||||
:alt: User Access Control pop-up
|
||||
User Access Control pop-up
|
||||
```
|
||||
|
||||
```{figure} /data/deploy/windows/001-uac-light.png
|
||||
:name: uac-light
|
||||
:class: only-light
|
||||
:alt: User Access Control pop-up
|
||||
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 {numref}`init-install`.
|
||||
|
||||
```{figure} /data/deploy/windows/002-initializing.png
|
||||
:name: init-install
|
||||
:alt: Window with AMD arrow logo, futuristic background and progress counter.
|
||||
Installer initialization window
|
||||
```
|
||||
|
||||
The installer will then detect your system configuration as per
|
||||
{numref}`detecting-system-components` to decide, which installable components
|
||||
are applicable to your system.
|
||||
|
||||
```{figure} /data/deploy/windows/003-detecting-system-config.png
|
||||
:name: detecting-system-components
|
||||
:alt: Window with AMD arrow logo, futuristic background and activity indicator.
|
||||
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 {numref}`installer-window` for an instance when the Select All option
|
||||
is turned on.
|
||||
|
||||
```{figure} /data/deploy/windows/004-installer-window.png
|
||||
:name: installer-window
|
||||
:alt: Window with AMD arrow logo, futuristic background and activity indicator.
|
||||
Installer initialization window.
|
||||
```
|
||||
|
||||
#### HIP SDK Installer
|
||||
|
||||
The HIP SDK installation options are listed in {numref}`hip-sdk-options`.
|
||||
|
||||
```{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 by
|
||||
{numref}`display-driver-install-options`:
|
||||
|
||||
```{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. Refer to {numref}`display-driver-install-types` for details. |
|
||||
| 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
|
||||
{numref}`install-progress`.
|
||||
|
||||
```{figure} /data/deploy/windows/012-install-progress.png
|
||||
:name: install-progress
|
||||
:alt: Window with AMD arrow logo, futuristic background and progress meter.
|
||||
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
|
||||
{numref}`install-complete`
|
||||
|
||||
```{figure} /data/deploy/windows/013-install-complete.png
|
||||
:name: install-complete
|
||||
:alt: Window with AMD arrow logo, futuristic background and completion notice.
|
||||
Installation Complete
|
||||
```
|
||||
|
||||
```{error}
|
||||
Should the installer terminate due to unexpcted 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).
|
||||
```
|
||||
|
||||
## 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".
|
||||
|
||||
```{figure} /data/deploy/windows/014-uninstall-dark.png
|
||||
:name: uninstall-dark
|
||||
:class: only-dark
|
||||
:alt: Installed apps section of the Setting app showing installed HIP SDK components.
|
||||
Removing the SDK via the Setting app
|
||||
```
|
||||
|
||||
```{figure} /data/deploy/windows/014-uninstall-light.png
|
||||
:name: uninstall-light
|
||||
:class: only-light
|
||||
:alt: Installed apps section of the Setting app showing installed HIP SDK components.
|
||||
Removing the SDK via the Setting app
|
||||
```
|
||||
@@ -1,5 +0,0 @@
|
||||
# AI/ML/Inferencing
|
||||
|
||||
To demonstrate some of the potential usages of ROCm for AI/ML/DL/Inferencing we
|
||||
provide a detailed example of a
|
||||
[ROCm implementation of Inception v3 using the PyTorch framework](./inception_casestudy/inception_casestudy.md).
|
||||
25
docs/examples/all.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# All Tutorial Material
|
||||
|
||||
:::::{grid} 1 1 2 2
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} ROCm Examples
|
||||
:link: https://github.com/amd/rocm-examples
|
||||
:link-type: url
|
||||
Samples codes demonstrating and explaining the use of the HIP API as well as
|
||||
ROCm-accelerated domain libraries.
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} AI/ML/Inferencing
|
||||
:link: machine_learning/all
|
||||
:link-type: doc
|
||||
Detailed walkthroughs of specific use-cases driven by frameworks using ROCm
|
||||
acceleration.
|
||||
|
||||
- [Implementing Inception V3 on ROCm with PyTorch](machine_learning/pytorch_inception.md)
|
||||
- [Optimizing Inference with MIGraphX](machine_learning/migraphx_optimization.md)
|
||||
|
||||
:::
|
||||
|
||||
:::::
|
||||
20
docs/examples/machine_learning/all.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Machine Learning, Deep Learning, and Artificial Intelligence
|
||||
|
||||
:::::{grid} 1 1 2 2
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} Inception V3 with PyTorch
|
||||
:link: pytorch_inception
|
||||
:link-type: doc
|
||||
A collection of detailed and guided examples for working with Inception V3 with PyTorch on ROCm.
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Optimizing Inference with MIGraphX
|
||||
:link: migraphx_optimization
|
||||
:link-type: doc
|
||||
Walkthroughs of optimizing inference using MIGraphX.
|
||||
|
||||
:::
|
||||
|
||||
:::::
|
||||
338
docs/examples/machine_learning/migraphx_optimization.md
Normal file
@@ -0,0 +1,338 @@
|
||||
# Inference Optimization with MIGraphX
|
||||
|
||||
The following sections cover inferencing and introduces MIGraphX.
|
||||
|
||||
## Inference
|
||||
|
||||
The inference is where capabilities learned during Deep Learning training are put to work. It refers to using a fully trained neural network to make conclusions (predictions) on unseen data that the model has never interacted with before. Deep Learning inferencing is achieved by feeding new data, such as new images, to the network, giving the Deep Neural Network a chance to classify the image.
|
||||
|
||||
Taking our previous example of MNIST, the DNN can be fed new images of handwritten digit images, allowing the neural network to classify digits. A fully trained DNN should make accurate predictions about what an image represents, and inference cannot happen without training.
|
||||
|
||||
## MIGraphX Introduction
|
||||
|
||||
MIGraphX is a graph compiler focused on accelerating the Machine Learning inference that can target AMD GPUs and CPUs. MIGraphX accelerates the Machine Learning models by leveraging several graph-level transformations and optimizations. These optimizations include:
|
||||
|
||||
- Operator fusion
|
||||
|
||||
- Arithmetic simplifications
|
||||
|
||||
- Dead-code elimination
|
||||
|
||||
- Common subexpression elimination (CSE)
|
||||
|
||||
- Constant propagation
|
||||
|
||||
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:
|
||||
|
||||
- Number of arguments
|
||||
|
||||
- Type of arguments
|
||||
|
||||
- Shape of arguments
|
||||
|
||||
After optimization passes, all these operators get mapped to different kernels on GPUs or CPUs.
|
||||
|
||||
After importing a model into MIGraphX, the model is represented as `migraphx::program`. `migraphx::program` is made up of `migraphx::module`. The program can consist of several modules, but it always has one main_module. Modules are made up of `migraphx::instruction_ref`. Instructions contain the `migraphx::op` and arguments to the operator.
|
||||
|
||||
## Installing MIGraphX
|
||||
|
||||
There are three options to get started with MIGraphX installation. MIGraphX depends on ROCm libraries; assume that the machine has ROCm installed.
|
||||
|
||||
### Option 1: Installing Binaries
|
||||
|
||||
To install MIGraphX on Debian-based systems like Ubuntu, use the following command:
|
||||
|
||||
```bash
|
||||
sudo apt update && sudo apt install -y migraphx
|
||||
```
|
||||
|
||||
The header files and libraries are installed under `/opt/rocm-\<version\>`, where \<version\> is the ROCm version.
|
||||
|
||||
### Option 2: Building from Source
|
||||
|
||||
There are two ways to build the MIGraphX sources.
|
||||
|
||||
- [Use the ROCm build tool](https://github.com/ROCmSoftwarePlatform/AMDMIGraphX#use-the-rocm-build-tool-rbuild) - This approach uses [rbuild](https://github.com/RadeonOpenCompute/rbuild) to install the prerequisites and build the libraries with just one command.
|
||||
|
||||
or
|
||||
|
||||
- [Use CMake](https://github.com/ROCmSoftwarePlatform/AMDMIGraphX#use-cmake-to-build-migraphx) - This approach uses a script to install the prerequisites, then uses CMake to build the source.
|
||||
|
||||
For detailed steps on building from source and installing dependencies, refer to the following `README` file:
|
||||
|
||||
[https://github.com/ROCmSoftwarePlatform/AMDMIGraphX#building-from-source](https://github.com/ROCmSoftwarePlatform/AMDMIGraphX#building-from-source)
|
||||
|
||||
### Option 3: Use Docker
|
||||
|
||||
To use Docker, follow these steps:
|
||||
|
||||
1. The easiest way to set up the development environment is to use Docker. To build Docker from scratch, first clone the MIGraphX repository by running:
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/ROCmSoftwarePlatform/AMDMIGraphX
|
||||
```
|
||||
|
||||
2. The repository contains a Dockerfile from which you can build a Docker image as:
|
||||
|
||||
```bash
|
||||
docker build -t migraphx .
|
||||
```
|
||||
|
||||
3. Then to enter the development environment, use Docker run:
|
||||
|
||||
```bash
|
||||
docker run --device='/dev/kfd' --device='/dev/dri' -v=`pwd`:/code/AMDMIGraphX -w /code/AMDMIGraphX --group-add video -it migraphx
|
||||
```
|
||||
|
||||
The Docker image contains all the prerequisites required for the installation, so users can go to the folder `/code/AMDMIGraphX` and follow the steps mentioned in [Option 2: Building from Source](#option-2-building-from-source).
|
||||
|
||||
## MIGraphX Example
|
||||
|
||||
MIGraphX provides both C++ and Python APIs. The following sections show examples of both using the Inception v3 model. To walk through the examples, fetch the Inception v3 ONNX model by running the following:
|
||||
|
||||
```py
|
||||
import torch
|
||||
import torchvision.models as models
|
||||
inception = models.inception_v3(pretrained=True)
|
||||
torch.onnx.export(inception,torch.randn(1,3,299,299), "inceptioni1.onnx")
|
||||
```
|
||||
|
||||
This will create `inceptioni1.onnx`, which can be imported in MIGraphX using C++ or Python API.
|
||||
|
||||
### MIGraphX Python API
|
||||
|
||||
Follow these steps:
|
||||
|
||||
1. To import the MIGraphX module in Python script, set `PYTHONPATH` to the MIGraphX libraries installation. If binaries are installed using steps mentioned in [Option 1: Installing Binaries](#option-1-installing-binaries), perform the following action:
|
||||
|
||||
```bash
|
||||
export PYTHONPATH=$PYTHONPATH:/opt/rocm/
|
||||
```
|
||||
|
||||
2. The following script shows the usage of Python API to import the ONNX model, compile it, and run inference on it. Set `LD_LIBRARY_PATH` to `/opt/rocm/` if required.
|
||||
|
||||
```py
|
||||
# import migraphx and numpy
|
||||
import migraphx
|
||||
import numpy as np
|
||||
# import and parse inception model
|
||||
model = migraphx.parse_onnx("inceptioni1.onnx")
|
||||
# compile model for the GPU target
|
||||
model.compile(migraphx.get_target("gpu"))
|
||||
# optionally print compiled model
|
||||
model.print()
|
||||
# create random input image
|
||||
input_image = np.random.rand(1, 3, 299, 299).astype('float32')
|
||||
# feed image to model, 'x.1` is the input param name
|
||||
results = model.run({'x.1': input_image})
|
||||
# get the results back
|
||||
result_np = np.array(results[0])
|
||||
# print the inferred class of the input image
|
||||
print(np.argmax(result_np))
|
||||
```
|
||||
|
||||
Find additional examples of Python API in the `/examples` directory of the MIGraphX repository.
|
||||
|
||||
## MIGraphX C++ API
|
||||
|
||||
Follow these steps:
|
||||
|
||||
1. The following is a minimalist example that shows the usage of MIGraphX C++ API to load ONNX file, compile it for the GPU, and run inference on it. To use MIGraphX C++ API, you only need to load the `migraphx.hpp` file. This example runs inference on the Inception v3 model.
|
||||
|
||||
```c++
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <algorithm>
|
||||
#include <ctime>
|
||||
#include <random>
|
||||
#include <migraphx/migraphx.hpp>
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
migraphx::program prog;
|
||||
migraphx::onnx_options onnx_opts;
|
||||
// import and parse onnx file into migraphx::program
|
||||
prog = parse_onnx("inceptioni1.onnx", onnx_opts);
|
||||
// print imported model
|
||||
prog.print();
|
||||
migraphx::target targ = migraphx::target("gpu");
|
||||
migraphx::compile_options comp_opts;
|
||||
comp_opts.set_offload_copy();
|
||||
// compile for the GPU
|
||||
prog.compile(targ, comp_opts);
|
||||
// print the compiled program
|
||||
prog.print();
|
||||
// randomly generate input image
|
||||
// of shape (1, 3, 299, 299)
|
||||
std::srand(unsigned(std::time(nullptr)));
|
||||
std::vector<float> input_image(1*299*299*3);
|
||||
std::generate(input_image.begin(), input_image.end(), std::rand);
|
||||
// users need to provide data for the input
|
||||
// parameters in order to run inference
|
||||
// you can query into migraph program for the parameters
|
||||
migraphx::program_parameters prog_params;
|
||||
auto param_shapes = prog.get_parameter_shapes();
|
||||
auto input = param_shapes.names().front();
|
||||
// create argument for the parameter
|
||||
prog_params.add(input, migraphx::argument(param_shapes[input], input_image.data()));
|
||||
// run inference
|
||||
auto outputs = prog.eval(prog_params);
|
||||
// read back the output
|
||||
float* results = reinterpret_cast<float*>(outputs[0].data());
|
||||
float* max = std::max_element(results, results + 1000);
|
||||
int answer = max - results;
|
||||
std::cout << "answer: " << answer << std::endl;
|
||||
}
|
||||
```
|
||||
|
||||
2. To compile this program, you can use CMake and you only need to link the `migraphx::c` library to use MIGraphX's C++ API. The following is the `CMakeLists.txt` file that can build the earlier example:
|
||||
|
||||
```cmake
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project (CAI)
|
||||
|
||||
set (CMAKE_CXX_STANDARD 14)
|
||||
set (EXAMPLE inception_inference)
|
||||
|
||||
list (APPEND CMAKE_PREFIX_PATH /opt/rocm/hip /opt/rocm)
|
||||
find_package (migraphx)
|
||||
|
||||
message("source file: " ${EXAMPLE}.cpp " ---> bin: " ${EXAMPLE})
|
||||
add_executable(${EXAMPLE} ${EXAMPLE}.cpp)
|
||||
|
||||
target_link_libraries(${EXAMPLE} migraphx::c)
|
||||
```
|
||||
|
||||
3. To build the executable file, run the following from the directory containing the `inception_inference.cpp` file:
|
||||
|
||||
```bash
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make -j$(nproc)
|
||||
./inception_inference
|
||||
```
|
||||
|
||||
:::{note}
|
||||
Set `LD_LIBRARY_PATH` to `/opt/rocm/lib` if required during the build. Additional examples can be found in the MIGraphX repository under the `/examples/` directory.
|
||||
:::
|
||||
|
||||
## Tuning MIGraphX
|
||||
|
||||
MIGraphX uses MIOpen kernels to target AMD GPU. For the model compiled with MIGraphX, tune MIOpen to pick the best possible kernel implementation. The MIOpen tuning results in a significant performance boost. Tuning can be done by setting the environment variable `MIOPEN_FIND_ENFORCE=3`.
|
||||
|
||||
:::{note}
|
||||
The tuning process can take a long time to finish.
|
||||
:::
|
||||
|
||||
**Example:** The average inference time of the inception model example shown previously over 100 iterations using untuned kernels is 0.01383ms. After tuning, it reduces to 0.00459ms, which is a 3x improvement. This result is from ROCm v4.5 on a MI100 GPU.
|
||||
|
||||
:::{note}
|
||||
The results may vary depending on the system configurations.
|
||||
:::
|
||||
|
||||
For reference, the following code snippet shows inference runs for only the first 10 iterations for both tuned and untuned kernels:
|
||||
|
||||
```console
|
||||
### UNTUNED ###
|
||||
iterator : 0
|
||||
Inference complete
|
||||
Inference time: 0.063ms
|
||||
iterator : 1
|
||||
Inference complete
|
||||
Inference time: 0.008ms
|
||||
iterator : 2
|
||||
Inference complete
|
||||
Inference time: 0.007ms
|
||||
iterator : 3
|
||||
Inference complete
|
||||
Inference time: 0.007ms
|
||||
iterator : 4
|
||||
Inference complete
|
||||
Inference time: 0.007ms
|
||||
iterator : 5
|
||||
Inference complete
|
||||
Inference time: 0.008ms
|
||||
iterator : 6
|
||||
Inference complete
|
||||
Inference time: 0.007ms
|
||||
iterator : 7
|
||||
Inference complete
|
||||
Inference time: 0.028ms
|
||||
iterator : 8
|
||||
Inference complete
|
||||
Inference time: 0.029ms
|
||||
iterator : 9
|
||||
Inference complete
|
||||
Inference time: 0.029ms
|
||||
|
||||
### TUNED ###
|
||||
iterator : 0
|
||||
Inference complete
|
||||
Inference time: 0.063ms
|
||||
iterator : 1
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 2
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 3
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 4
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 5
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 6
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 7
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 8
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 9
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
```
|
||||
|
||||
### YModel
|
||||
|
||||
The best inference performance through MIGraphX is conditioned upon having tuned kernel configurations stored in a `/home` local User Database (DB). If a user were to move their model to a different server or allow a different user to use it, they would have to run through the MIOpen tuning process again to populate the next User DB with the best kernel configurations and corresponding solvers.
|
||||
|
||||
Tuning is time consuming, and if the users have not performed tuning, they would see discrepancies between expected or claimed inference performance and actual inference performance. This has led to repetitive and time-consuming tuning tasks for each user.
|
||||
|
||||
MIGraphX introduces a feature, known as YModel, that stores the kernel config parameters found during tuning into a `.mxr` file. This ensures the same level of expected performance, even when a model is copied to a different user/system.
|
||||
|
||||
The YModel feature is available starting from ROCm 5.4.1 and UIF 1.1.
|
||||
|
||||
#### YModel Example
|
||||
|
||||
Through the `migraphx-driver` functionality, you can generate `.mxr` files with tuning information stored inside it by passing additional `--binary --output model.mxr` to `migraphx-driver` along with the rest of the necessary flags.
|
||||
|
||||
For example, to generate `.mxr` file from the ONNX model, use the following:
|
||||
|
||||
```bash
|
||||
./path/to/migraphx-driver compile --onnx resnet50.onnx --enable-offload-copy --binary --output resnet50.mxr
|
||||
```
|
||||
|
||||
To run generated `.mxr` files through `migraphx-driver`, use the following:
|
||||
|
||||
```bash
|
||||
./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. Refer to {numref}`image018` for an example.
|
||||
|
||||
```{figure} ../../data/understand/deep_learning/image.018.png
|
||||
:name: image018
|
||||
---
|
||||
align: center
|
||||
---
|
||||
Generating a `.mxr` File
|
||||
```
|
||||
@@ -1,4 +1,4 @@
|
||||
# Training and Inference Walk-through: Inception V3 with PyTorch
|
||||
# Inception V3 with PyTorch
|
||||
|
||||
## Deep Learning Training
|
||||
|
||||
@@ -15,11 +15,11 @@ Training occurs in multiple phases for every batch of training data. {numref}`Ty
|
||||
:::{table} Types of Training Phases
|
||||
:name: TypesOfTrainingPhases
|
||||
:widths: auto
|
||||
| Types of Phases | |
|
||||
| ----------- | ----------- |
|
||||
| Forward Pass | The input features are fed into the model, whose parameters may be randomly initialized initially. Activations (outputs) of each layer are retained during this pass to help in the loss gradient computation during the backward pass. |
|
||||
| Loss Computation | The output is compared against the target outputs, and the loss is computed. |
|
||||
| Backward Pass | The loss is propagated backward, and the model's error gradients are computed and stored for each trainable parameter. |
|
||||
| Types of Phases | |
|
||||
| ----------------- | --- |
|
||||
| Forward Pass | The input features are fed into the model, whose parameters may be randomly initialized initially. Activations (outputs) of each layer are retained during this pass to help in the loss gradient computation during the backward pass. |
|
||||
| Loss Computation | The output is compared against the target outputs, and the loss is computed. |
|
||||
| Backward Pass | The loss is propagated backward, and the model's error gradients are computed and stored for each trainable parameter. |
|
||||
| Optimization Pass | The optimization algorithm updates the model parameters using the stored error gradients. |
|
||||
:::
|
||||
|
||||
@@ -44,19 +44,19 @@ The following sections contain case studies for the Inception v3 model.
|
||||
|
||||
### Inception v3 with PyTorch
|
||||
|
||||
Convolution Neural Networks are forms of artificial neural networks commonly used for image processing. One of the core layers of such a network is the convolutional layer, which convolves the input with a weight tensor and passes the result to the next layer. Inception v3 [1] is an architectural development over the ImageNet competition-winning entry, AlexNet, using more profound and broader networks while attempting to meet computational and memory budgets.
|
||||
Convolution Neural Networks are forms of artificial neural networks commonly used for image processing. One of the core layers of such a network is the convolutional layer, which convolves the input with a weight tensor and passes the result to the next layer. Inception v3[^inception_arch] is an architectural development over the ImageNet competition-winning entry, AlexNet, using more profound and broader networks while attempting to meet computational and memory budgets.
|
||||
|
||||
The implementation uses PyTorch as a framework. This case study utilizes `torchvision` [2], a repository of popular datasets and model architectures, for obtaining the model. `torchvision` also provides pre-trained weights as a starting point to develop new models or fine-tune the model for a new task.
|
||||
The implementation uses PyTorch as a framework. This case study utilizes `torchvision`[^torch_vision], a repository of popular datasets and model architectures, for obtaining the model. `torchvision` also provides pre-trained weights as a starting point to develop new models or fine-tune the model for a new task.
|
||||
|
||||
#### Evaluating a Pre-Trained Model
|
||||
|
||||
The Inception v3 model introduces a simple image classification task with the pre-trained model. This does not involve training but utilizes an already pre-trained model from `torchvision`.
|
||||
|
||||
This example is adapted from the PyTorch research hub page on Inception v3 [3].
|
||||
This example is adapted from the PyTorch research hub page on Inception v3[^torch_vision_inception].
|
||||
|
||||
Follow these steps:
|
||||
|
||||
1. Run the PyTorch ROCm-based Docker image or refer to the section [Installing PyTorch](https://docs.amd.com/bundle/ROCm-Deep-Learning-Guide-v5.4-/page/Frameworks_Installation.html#d1667e113) for setting up a PyTorch environment on ROCm.
|
||||
1. Run the PyTorch ROCm-based Docker image or refer to the section [Installing PyTorch](/how_to/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,16 +146,16 @@ 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](https://docs.amd.com/bundle/ROCm-Deep-Learning-Guide-v5.4-/page/Frameworks_Installation.html#d1667e113) for setting up a PyTorch environment on ROCm.
|
||||
1. Run the PyTorch ROCm Docker image or refer to the section [Installing PyTorch](how_to/pytorch_install/pytorch_install.md) for setting up a PyTorch environment on ROCm.
|
||||
|
||||
```dockerfile
|
||||
docker pull rocm/pytorch:latest
|
||||
docker run -it --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
|
||||
```
|
||||
|
||||
2. Download an ImageNet database. For this example, the `tiny-imagenet-200` [4], a smaller ImageNet variant with 200 image classes and a training dataset with 100,000 images, was downsized to 64x64 color images.
|
||||
2. Download an ImageNet database. For this example, the `tiny-imagenet-200`[^Stanford_deep_learning], a smaller ImageNet variant with 200 image classes and a training dataset with 100,000 images, was downsized to 64x64 color images.
|
||||
|
||||
```py
|
||||
```bash
|
||||
wget http://cs231n.stanford.edu/tiny-imagenet-200.zip
|
||||
```
|
||||
|
||||
@@ -357,7 +357,7 @@ Follow these steps:
|
||||
model.to(device)
|
||||
```
|
||||
|
||||
13. Set the loss criteria. For this example, Cross Entropy Loss [5] is used.
|
||||
13. Set the loss criteria. For this example, Cross Entropy Loss[^cross_entropy] is used.
|
||||
|
||||
```py
|
||||
criterion = torch.nn.CrossEntropyLoss()
|
||||
@@ -583,7 +583,7 @@ Follow these steps:
|
||||
import torch.optim as optim
|
||||
```
|
||||
|
||||
10. Set the loss criteria. For this example, Cross Entropy Loss [5] is used.
|
||||
10. Set the loss criteria. For this example, Cross Entropy Loss[^cross_entropy] is used.
|
||||
|
||||
```py
|
||||
criterion = nn.CrossEntropyLoss()
|
||||
@@ -1164,7 +1164,7 @@ To prepare the data for training, follow these steps:
|
||||
---
|
||||
```
|
||||
|
||||
8. A model needs a loss function and an optimizer for training. Since this is a binary classification problem and the model outputs a probability (a single-unit layer with a sigmoid activation), use [losses.BinaryCrossentropy](https://www.tensorflow.org/api_docs/python/tf/keras/losses/BinaryCrossentropy) loss function.
|
||||
8. A model needs a loss function and an optimizer for training. Since this is a binary classification problem and the model outputs a probability (a single-unit layer with a sigmoid activation), use [`losses.BinaryCrossentropy`](https://www.tensorflow.org/api_docs/python/tf/keras/losses/BinaryCrossentropy) loss function.
|
||||
|
||||
```py
|
||||
model.compile(loss=losses.BinaryCrossentropy(from_logits=True),
|
||||
@@ -1272,422 +1272,14 @@ To prepare the data for training, follow these steps:
|
||||
export_model.predict(examples)
|
||||
```
|
||||
|
||||
## Optimization
|
||||
|
||||
The following sections cover inferencing and introduces MIGraphX.
|
||||
|
||||
### Inferencing
|
||||
|
||||
The inference is where capabilities learned during Deep Learning training are put to work. It refers to using a fully trained neural network to make conclusions (predictions) on unseen data that the model has never interacted with before. Deep Learning inferencing is achieved by feeding new data, such as new images, to the network, giving the Deep Neural Network a chance to classify the image.
|
||||
|
||||
Taking our previous example of MNIST, the DNN can be fed new images of handwritten digit images, allowing the neural network to classify digits. A fully trained DNN should make accurate predictions about what an image represents, and inference cannot happen without training.
|
||||
|
||||
### MIGraphX Introduction
|
||||
|
||||
MIGraphX is a graph compiler focused on accelerating the Machine Learning inference that can target AMD GPUs and CPUs. MIGraphX accelerates the Machine Learning models by leveraging several graph-level transformations and optimizations. These optimizations include:
|
||||
|
||||
- Operator fusion
|
||||
|
||||
- Arithmetic simplifications
|
||||
|
||||
- Dead-code elimination
|
||||
|
||||
- Common subexpression elimination (CSE)
|
||||
|
||||
- Constant propagation
|
||||
|
||||
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:
|
||||
|
||||
- Number of arguments
|
||||
|
||||
- Type of arguments
|
||||
|
||||
- Shape of arguments
|
||||
|
||||
After optimization passes, all these operators get mapped to different kernels on GPUs or CPUs.
|
||||
|
||||
After importing a model into MIGraphX, the model is represented as `migraphx::program`. `migraphx::program` is made up of `migraphx::module`. The program can consist of several modules, but it always has one main_module. Modules are made up of `migraphx::instruction_ref`. Instructions contain the `migraphx::op` and arguments to the operator.
|
||||
|
||||
### MIGraphX Installation
|
||||
|
||||
There are three options to get started with MIGraphX installation. MIGraphX depends on ROCm libraries; assume that the machine has ROCm installed.
|
||||
|
||||
#### Option 1: Installing Binaries
|
||||
|
||||
To install MIGraphX on Debian-based systems like Ubuntu, use the following command:
|
||||
|
||||
```bash
|
||||
sudo apt update && sudo apt install -y migraphx
|
||||
```
|
||||
|
||||
The header files and libraries are installed under `/opt/rocm-\<version\>`, where \<version\> is the ROCm version.
|
||||
|
||||
#### Option 2: Building from Source
|
||||
|
||||
There are two ways to build the MIGraphX sources.
|
||||
|
||||
- [Use the ROCm build tool](https://github.com/ROCmSoftwarePlatform/AMDMIGraphX#use-the-rocm-build-tool-rbuild) - This approach uses [rbuild](https://github.com/RadeonOpenCompute/rbuild) to install the prerequisites and build the libraries with just one command.
|
||||
|
||||
or
|
||||
|
||||
- [Use CMake](https://github.com/ROCmSoftwarePlatform/AMDMIGraphX#use-cmake-to-build-migraphx) - This approach uses a script to install the prerequisites, then uses CMake to build the source.
|
||||
|
||||
For detailed steps on building from source and installing dependencies, refer to the following `README` file:
|
||||
|
||||
[https://github.com/ROCmSoftwarePlatform/AMDMIGraphX#building-from-source](https://github.com/ROCmSoftwarePlatform/AMDMIGraphX#building-from-source)
|
||||
|
||||
#### Option 3: Use Docker
|
||||
|
||||
To use Docker, follow these steps:
|
||||
|
||||
1. The easiest way to set up the development environment is to use Docker. To build Docker from scratch, first clone the MIGraphX repository by running:
|
||||
|
||||
```bash
|
||||
git clone --recursive https://github.com/ROCmSoftwarePlatform/AMDMIGraphX
|
||||
```
|
||||
|
||||
2. The repository contains a Dockerfile from which you can build a Docker image as:
|
||||
|
||||
```bash
|
||||
docker build -t migraphx .
|
||||
```
|
||||
|
||||
3. Then to enter the development environment, use Docker run:
|
||||
|
||||
```bash
|
||||
docker run --device='/dev/kfd' --device='/dev/dri' -v=`pwd`:/code/AMDMIGraphX -w /code/AMDMIGraphX --group-add video -it migraphx
|
||||
```
|
||||
|
||||
The Docker image contains all the prerequisites required for the installation, so users can go to the folder /code/AMDMIGraphX and follow the steps mentioned in [Option 2: Building from Source](#option-2-building-from-source).
|
||||
|
||||
### MIGraphX Example
|
||||
|
||||
MIGraphX provides both C++ and Python APIs. The following sections show examples of both using the Inception v3 model. To walk through the examples, fetch the Inception v3 ONNX model by running the following:
|
||||
|
||||
```py
|
||||
import torch
|
||||
import torchvision.models as models
|
||||
inception = models.inception_v3(pretrained=True)
|
||||
torch.onnx.export(inception,torch.randn(1,3,299,299), "inceptioni1.onnx")
|
||||
```
|
||||
|
||||
This will create `inceptioni1.onnx`, which can be imported in MIGraphX using C++ or Python API.
|
||||
|
||||
### MIGraphX Python API
|
||||
|
||||
Follow these steps:
|
||||
|
||||
1. To import the MIGraphX module in Python script, set `PYTHONPATH` to the MIGraphX libraries installation. If binaries are installed using steps mentioned in [Option 1: Installing Binaries](#option-1-installing-binaries), perform the following action:
|
||||
|
||||
```py
|
||||
export PYTHONPATH=$PYTHONPATH:/opt/rocm/
|
||||
```
|
||||
|
||||
2. The following script shows the usage of Python API to import the ONNX model, compile it, and run inference on it. Set `LD_LIBRARY_PATH` to `/opt/rocm/` if required.
|
||||
|
||||
```py
|
||||
# import migraphx and numpy
|
||||
import migraphx
|
||||
import numpy as np
|
||||
# import and parse inception model
|
||||
model = migraphx.parse_onnx("inceptioni1.onnx")
|
||||
# compile model for the GPU target
|
||||
model.compile(migraphx.get_target("gpu"))
|
||||
# optionally print compiled model
|
||||
model.print()
|
||||
# create random input image
|
||||
input_image = np.random.rand(1, 3, 299, 299).astype('float32')
|
||||
# feed image to model, 'x.1` is the input param name
|
||||
results = model.run({'x.1': input_image})
|
||||
# get the results back
|
||||
result_np = np.array(results[0])
|
||||
# print the inferred class of the input image
|
||||
print(np.argmax(result_np))
|
||||
```
|
||||
|
||||
Find additional examples of Python API in the /examples directory of the MIGraphX repository.
|
||||
|
||||
### MIGraphX C++ API
|
||||
|
||||
Follow these steps:
|
||||
|
||||
1. The following is a minimalist example that shows the usage of MIGraphX C++ API to load ONNX file, compile it for the GPU, and run inference on it. To use MIGraphX C++ API, you only need to load the `migraphx.hpp` file. This example runs inference on the Inception v3 model.
|
||||
|
||||
```c++
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <algorithm>
|
||||
#include <ctime>
|
||||
#include <random>
|
||||
#include <migraphx/migraphx.hpp>
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
migraphx::program prog;
|
||||
migraphx::onnx_options onnx_opts;
|
||||
// import and parse onnx file into migraphx::program
|
||||
prog = parse_onnx("inceptioni1.onnx", onnx_opts);
|
||||
// print imported model
|
||||
prog.print();
|
||||
migraphx::target targ = migraphx::target("gpu");
|
||||
migraphx::compile_options comp_opts;
|
||||
comp_opts.set_offload_copy();
|
||||
// compile for the GPU
|
||||
prog.compile(targ, comp_opts);
|
||||
// print the compiled program
|
||||
prog.print();
|
||||
// randomly generate input image
|
||||
// of shape (1, 3, 299, 299)
|
||||
std::srand(unsigned(std::time(nullptr)));
|
||||
std::vector<float> input_image(1*299*299*3);
|
||||
std::generate(input_image.begin(), input_image.end(), std::rand);
|
||||
// users need to provide data for the input
|
||||
// parameters in order to run inference
|
||||
// you can query into migraph program for the parameters
|
||||
migraphx::program_parameters prog_params;
|
||||
auto param_shapes = prog.get_parameter_shapes();
|
||||
auto input = param_shapes.names().front();
|
||||
// create argument for the parameter
|
||||
prog_params.add(input, migraphx::argument(param_shapes[input], input_image.data()));
|
||||
// run inference
|
||||
auto outputs = prog.eval(prog_params);
|
||||
// read back the output
|
||||
float* results = reinterpret_cast<float*>(outputs[0].data());
|
||||
float* max = std::max_element(results, results + 1000);
|
||||
int answer = max - results;
|
||||
std::cout << "answer: " << answer << std::endl;
|
||||
}
|
||||
```
|
||||
|
||||
2. To compile this program, you can use CMake and you only need to link the `migraphx::c` library to use MIGraphX's C++ API. The following is the `CMakeLists.txt` file that can build the earlier example:
|
||||
|
||||
```py
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project (CAI)
|
||||
|
||||
set (CMAKE_CXX_STANDARD 14)
|
||||
set (EXAMPLE inception_inference)
|
||||
|
||||
list (APPEND CMAKE_PREFIX_PATH /opt/rocm/hip /opt/rocm)
|
||||
find_package (migraphx)
|
||||
|
||||
message("source file: " ${EXAMPLE}.cpp " ---> bin: " ${EXAMPLE})
|
||||
add_executable(${EXAMPLE} ${EXAMPLE}.cpp)
|
||||
|
||||
target_link_libraries(${EXAMPLE} migraphx::c)
|
||||
```
|
||||
|
||||
3. To build the executable file, run the following from the directory containing the `inception_inference.cpp` file:
|
||||
|
||||
```py
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make -j$(nproc)
|
||||
./inception_inference
|
||||
```
|
||||
|
||||
:::{note}
|
||||
Set `LD_LIBRARY_PATH` to `/opt/rocm/lib` if required during the build. Additional examples can be found in the MIGraphX repository under the `/examples/` directory.
|
||||
:::
|
||||
|
||||
### Tuning MIGraphX
|
||||
|
||||
MIGraphX uses MIOpen kernels to target AMD GPU. For the model compiled with MIGraphX, tune MIOpen to pick the best possible kernel implementation. The MIOpen tuning results in a significant performance boost. Tuning can be done by setting the environment variable MIOPEN_FIND_ENFORCE=3.
|
||||
|
||||
:::{note}
|
||||
The tuning process can take a long time to finish.
|
||||
:::
|
||||
|
||||
**Example:** The average inference time of the inception model example shown previously over 100 iterations using untuned kernels is 0.01383ms. After tuning, it reduces to 0.00459ms, which is a 3x improvement. This result is from ROCm v4.5 on a MI100 GPU.
|
||||
|
||||
:::{note}
|
||||
The results may vary depending on the system configurations.
|
||||
:::
|
||||
|
||||
For reference, the following code snippet shows inference runs for only the first 10 iterations for both tuned and untuned kernels:
|
||||
|
||||
```py
|
||||
### UNTUNED ###
|
||||
iterator : 0
|
||||
Inference complete
|
||||
Inference time: 0.063ms
|
||||
iterator : 1
|
||||
Inference complete
|
||||
Inference time: 0.008ms
|
||||
iterator : 2
|
||||
Inference complete
|
||||
Inference time: 0.007ms
|
||||
iterator : 3
|
||||
Inference complete
|
||||
Inference time: 0.007ms
|
||||
iterator : 4
|
||||
Inference complete
|
||||
Inference time: 0.007ms
|
||||
iterator : 5
|
||||
Inference complete
|
||||
Inference time: 0.008ms
|
||||
iterator : 6
|
||||
Inference complete
|
||||
Inference time: 0.007ms
|
||||
iterator : 7
|
||||
Inference complete
|
||||
Inference time: 0.028ms
|
||||
iterator : 8
|
||||
Inference complete
|
||||
Inference time: 0.029ms
|
||||
iterator : 9
|
||||
Inference complete
|
||||
Inference time: 0.029ms
|
||||
|
||||
### TUNED ###
|
||||
iterator : 0
|
||||
Inference complete
|
||||
Inference time: 0.063ms
|
||||
iterator : 1
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 2
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 3
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 4
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 5
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 6
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 7
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 8
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
iterator : 9
|
||||
Inference complete
|
||||
Inference time: 0.004ms
|
||||
```
|
||||
|
||||
#### YModel
|
||||
|
||||
The best inference performance through MIGraphX is conditioned upon having tuned kernel configurations stored in a /home local User Database (DB). If a user were to move their model to a different server or allow a different user to use it, they would have to run through the MIOpen tuning process again to populate the next User DB with the best kernel configurations and corresponding solvers.
|
||||
|
||||
Tuning is time consuming, and if the users have not performed tuning, they would see discrepancies between expected or claimed inference performance and actual inference performance. This has led to repetitive and time-consuming tuning tasks for each user.
|
||||
|
||||
MIGraphX introduces a feature, known as YModel, that stores the kernel config parameters found during tuning into a `.mxr` file. This ensures the same level of expected performance, even when a model is copied to a different user/system.
|
||||
|
||||
The YModel feature is available starting from ROCm 5.4.1 and UIF 1.1.
|
||||
|
||||
##### YModel Example
|
||||
|
||||
Through the `migraphx-driver` functionality, you can generate `.mxr` files with tuning information stored inside it by passing additional `--binary --output model.mxr` to `migraphx-driver` along with the rest of the necessary flags.
|
||||
|
||||
For example, to generate `.mxr` file from the ONNX model, use the following:
|
||||
|
||||
```bash
|
||||
./path/to/migraphx-driver compile --onnx resnet50.onnx --enable-offload-copy --binary --output resnet50.mxr
|
||||
```
|
||||
|
||||
To run generated `.mxr` files through `migraphx-driver`, use the following:
|
||||
|
||||
```bash
|
||||
./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. Refer to {numref}`image018` for an example.
|
||||
|
||||
```{figure} ../../data/understand/deep_learning/image.018.png
|
||||
:name: image018
|
||||
---
|
||||
align: center
|
||||
---
|
||||
Generating a `.mxr` File
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**Q: What do I do if I get this error when trying to run PyTorch:**
|
||||
|
||||
```bash
|
||||
hipErrorNoBinaryForGPU: Unable to find code object for all current devices!
|
||||
```
|
||||
|
||||
Ans: The error denotes that the installation of PyTorch and/or other dependencies or libraries do not support the current GPU.
|
||||
|
||||
**Workaround:**
|
||||
|
||||
To implement a workaround, follow these steps:
|
||||
|
||||
1. Confirm that the hardware supports the ROCm stack. Refer to the Hardware and Software Support document at [https://docs.amd.com](https://docs.amd.com).
|
||||
|
||||
2. Determine the gfx target.
|
||||
|
||||
```py
|
||||
rocminfo | grep gfx
|
||||
```
|
||||
|
||||
3. Check if PyTorch is compiled with the correct gfx target.
|
||||
|
||||
```py
|
||||
TORCHDIR=$( dirname $( python3 -c 'import torch; print(torch.__file__)' ) )
|
||||
roc-obj-ls -v $TORCHDIR/lib/libtorch_hip.so # check for gfx target
|
||||
```
|
||||
|
||||
:::{note}
|
||||
Recompile PyTorch with the right gfx target if compiling from the source if the hardware is not supported. For wheels or Docker installation, contact ROCm support [6].
|
||||
:::
|
||||
|
||||
**Q: Why am I unable to access Docker or GPU in user accounts?**
|
||||
|
||||
Ans: Ensure that the user is added to docker, video, and render Linux groups as described in the ROCm Installation Guide at [https://docs.amd.com](https://docs.amd.com).
|
||||
|
||||
**Q: Which consumer GPUs does ROCm support?**
|
||||
|
||||
Ans: ROCm supports gfx1030, which is the Navi 21 series.
|
||||
|
||||
**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 in the section [Installing PyTorch](/ROCm/docs/how_to/pytorch_install/pytorch_install) of this guide for more information.
|
||||
|
||||
**Q: How do I profile PyTorch workloads?**
|
||||
|
||||
Ans: Use the PyTorch Profiler \[6\] to profile GPU kernels on ROCm.
|
||||
|
||||
**Q: Can I run ROCm on Windows?**
|
||||
|
||||
Ans: ROCm is not supported on Windows.
|
||||
|
||||
## References
|
||||
|
||||
C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens and Z. Wojna, "Rethinking the Inception Architecture for Computer Vision," CoRR, p. abs/1512.00567, 2015
|
||||
[^inception_arch]: C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens and Z. Wojna, "Rethinking the Inception Architecture for Computer Vision," CoRR, p. abs/1512.00567, 2015
|
||||
|
||||
PyTorch, \[Online\]. Available: [https://pytorch.org/vision/stable/index.html](https://pytorch.org/vision/stable/index.html)
|
||||
[^torch_vision]: PyTorch, \[Online\]. Available: [https://pytorch.org/vision/stable/index.html](https://pytorch.org/vision/stable/index.html)
|
||||
|
||||
PyTorch, \[Online\]. Available: [https://pytorch.org/hub/pytorch_vision_inception_v3/](https://pytorch.org/hub/pytorch_vision_inception_v3/)
|
||||
[^torch_vision_inception]: PyTorch, \[Online\]. Available: [https://pytorch.org/hub/pytorch_vision_inception_v3/](https://pytorch.org/hub/pytorch_vision_inception_v3/)
|
||||
|
||||
Stanford, \[Online\]. Available: [http://cs231n.stanford.edu/](http://cs231n.stanford.edu/)
|
||||
[^Stanford_deep_learning]: Stanford, \[Online\]. Available: [http://cs231n.stanford.edu/](http://cs231n.stanford.edu/)
|
||||
|
||||
Wikipedia, \[Online\]. Available: [https://en.wikipedia.org/wiki/Cross_entropy](https://en.wikipedia.org/wiki/Cross_entropy)
|
||||
|
||||
AMD, "ROCm issues," \[Online\]. Available: [https://github.com/RadeonOpenCompute/ROCm/issues](https://github.com/RadeonOpenCompute/ROCm/issues)
|
||||
|
||||
PyTorch, \[Online image\]. [https://pytorch.org/assets/brand-guidelines/PyTorch-Brand-Guidelines.pdf](https://pytorch.org/assets/brand-guidelines/PyTorch-Brand-Guidelines.pdf)
|
||||
|
||||
TensorFlow, \[Online image\]. [https://www.tensorflow.org/extras/tensorflow_brand_guidelines.pdf](https://www.tensorflow.org/extras/tensorflow_brand_guidelines.pdf)
|
||||
|
||||
MAGMA, \[Online image\]. [https://bitbucket.org/icl/magma/src/master/docs/](https://bitbucket.org/icl/magma/src/master/docs/)
|
||||
|
||||
Advanced Micro Devices, Inc., \[Online\]. Available: [https://rocmsoftwareplatform.github.io/AMDMIGraphX/doc/html/](https://rocmsoftwareplatform.github.io/AMDMIGraphX/doc/html/)
|
||||
|
||||
Advanced Micro Devices, Inc., \[Online\]. Available: [https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/wiki](https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/wiki)
|
||||
|
||||
Docker, \[Online\]. [https://docs.docker.com/get-started/overview/](https://docs.docker.com/get-started/overview/)
|
||||
|
||||
Torchvision, \[Online\]. Available [https://pytorch.org/vision/master/index.html?highlight=torchvision#module-torchvision](https://pytorch.org/vision/master/index.html?highlight=torchvision#module-torchvision)
|
||||
[^cross_entropy]: Wikipedia, \[Online\]. Available: [https://en.wikipedia.org/wiki/Cross_entropy](https://en.wikipedia.org/wiki/Cross_entropy)
|
||||
56
docs/examples/troubleshooting.md
Normal file
@@ -0,0 +1,56 @@
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
**Q: What do I do if I get this error when trying to run PyTorch:**
|
||||
|
||||
```bash
|
||||
hipErrorNoBinaryForGPU: Unable to find code object for all current devices!
|
||||
```
|
||||
|
||||
Ans: The error denotes that the installation of PyTorch and/or other
|
||||
dependencies or libraries do not support the current GPU.
|
||||
|
||||
**Workaround:**
|
||||
|
||||
To implement a workaround, follow these steps:
|
||||
|
||||
1. Confirm that the hardware supports the ROCm stack. Refer to
|
||||
{ref}`supported_gpus`.
|
||||
|
||||
2. Determine the gfx target.
|
||||
|
||||
```bash
|
||||
rocminfo | grep gfx
|
||||
```
|
||||
|
||||
3. Check if PyTorch is compiled with the correct gfx target.
|
||||
|
||||
```bash
|
||||
TORCHDIR=$( dirname $( python3 -c 'import torch; print(torch.__file__)' ) )
|
||||
roc-obj-ls -v $TORCHDIR/lib/libtorch_hip.so # check for gfx target
|
||||
```
|
||||
|
||||
:::{note}
|
||||
Recompile PyTorch with the right gfx target if compiling from the source if
|
||||
the hardware is not supported. For wheels or Docker installation, contact
|
||||
ROCm support [^ROCm_issues].
|
||||
:::
|
||||
|
||||
**Q: Why am I unable to access Docker or GPU in user accounts?**
|
||||
|
||||
Ans: Ensure that the user is added to docker, video, and render Linux groups as
|
||||
described in the ROCm Installation Guide at {ref}`setting_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 in the section
|
||||
{ref}`install_pytorch_using_wheels` of this guide for more information.
|
||||
|
||||
**Q: How do I profile PyTorch workloads?**
|
||||
|
||||
Ans: Use the PyTorch Profiler to profile GPU kernels on ROCm.
|
||||
|
||||
------
|
||||
|
||||
[^ROCm_issues]: AMD, "ROCm issues," \[Online\]. Available: [https://github.com/RadeonOpenCompute/ROCm/issues](https://github.com/RadeonOpenCompute/ROCm/issues)
|
||||
34
docs/how_to/all.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# All How-To Material
|
||||
|
||||
:::::{grid} 1 1 2 2
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} Tuning Guides
|
||||
:link: tuning_guides/index
|
||||
:link-type: doc
|
||||
Use case-specific system setup and tuning guides.
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} Deep Learning Guide
|
||||
:link: deep_learning_rocm
|
||||
:link-type: doc
|
||||
Installation of various Deep Learning frameworks and applications.
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} GPU-Enabled MPI
|
||||
:link: gpu_aware_mpi
|
||||
:link-type: doc
|
||||
This chapter exemplifies how to set up Open MPI with the ROCm platform.
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} System Debugging Guide
|
||||
:link: system_debugging
|
||||
:link-type: doc
|
||||
Useful commands to debug misbehaving ROCm installations.
|
||||
|
||||
:::
|
||||
|
||||
:::::
|
||||
@@ -1,7 +1,10 @@
|
||||
# Deep Learning Guide
|
||||
|
||||
The following sections cover the different framework installations for ROCm and
|
||||
Deep Learning applications. {numref}`Rocm-Compat-Frameworks-Flowchart` provides 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 [Framework Release Notes](https://docs.amd.com/bundle/ROCm-Compatible-Frameworks-Release-Notes/page/Framework_Release_Notes.html).
|
||||
Deep Learning applications. {numref}`Rocm-Compat-Frameworks-Flowchart` provides
|
||||
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
|
||||
{ref}`ml_framework_compat_matrix`.
|
||||
|
||||
```{figure} ../data/how_to/magma_install/image.005.png
|
||||
:name: Rocm-Compat-Frameworks-Flowchart
|
||||
@@ -14,5 +17,5 @@ ROCm Compatible Frameworks Flowchart
|
||||
## Frameworks Installation
|
||||
|
||||
- [How to Install PyTorch?](pytorch_install/pytorch_install)
|
||||
- [How to Install Tensorflow?](tensorflow_install/tensorflow_install)
|
||||
- [How to Install Magma?](magma_install/magma_install)
|
||||
- [How to Install Magma?](tensorflow_install/tensorflow_install)
|
||||
|
||||
@@ -22,7 +22,7 @@ MPI project is an open source implementation of the Message Passing Interface
|
||||
and industry partners.
|
||||
|
||||
Several MPI implementations can be made ROCm-aware by compiling them with
|
||||
[Unified Communication Framework](http://www.openucx.org/) (UCX) support. One
|
||||
[Unified Communication Framework](https://www.openucx.org/) (UCX) support. One
|
||||
notable exception is MVAPICH2: It directly supports AMD GPUs without using UCX,
|
||||
and you can download it [here](http://mvapich.cse.ohio-state.edu/downloads/).
|
||||
Use the latest version of the MVAPICH2-GDR package.
|
||||
@@ -32,7 +32,7 @@ whose goal is to provide a common set of communication interfaces that targets a
|
||||
broad set of network programming models and interfaces. UCX is ROCm-aware, and
|
||||
ROCm technologies are used directly to implement various network operation
|
||||
primitives. For more details on the UCX design, refer to it's
|
||||
[documentation](http://www.openucx.org/documentation).
|
||||
[documentation](https://www.openucx.org/documentation).
|
||||
|
||||
## Building UCX
|
||||
|
||||
@@ -61,7 +61,7 @@ The next step is to set up UCX by compiling its source code and install it:
|
||||
```shell
|
||||
export UCX_DIR=$INSTALL_DIR/ucx
|
||||
cd $BUILD_DIR
|
||||
git clone https://github.com/openucx/ucx.git -b v1.13.0
|
||||
git clone https://github.com/openucx/ucx.git -b v1.14.1
|
||||
cd ucx
|
||||
./autogen.sh
|
||||
mkdir build
|
||||
@@ -75,6 +75,10 @@ make -j $(nproc)
|
||||
make -j $(nproc) install
|
||||
```
|
||||
|
||||
The following
|
||||
[table](../release/3rd_party_support_matrix.md#communication-libraries)
|
||||
documents the compatibility of UCX versions with ROCm versions.
|
||||
|
||||
## Install Open MPI
|
||||
|
||||
These are the steps to build Open MPI:
|
||||
@@ -89,6 +93,7 @@ cd ompi
|
||||
mkdir build
|
||||
cd build
|
||||
../configure --prefix=$OMPI_DIR --with-ucx=$UCX_DIR \
|
||||
--with-rocm=/opt/rocm \
|
||||
--enable-mca-no-build=btl-uct --enable-mpi1-compatibility \
|
||||
CC=clang CXX=clang++ FC=flang
|
||||
make -j $(nproc)
|
||||
@@ -97,7 +102,7 @@ make -j $(nproc) install
|
||||
|
||||
## ROCm-enabled OSU
|
||||
|
||||
he OSU Micro Benchmarks v5.9 (OMB) can be used to evaluate the performance of
|
||||
The OSU Micro Benchmarks v5.9 (OMB) can be used to evaluate the performance of
|
||||
various primitives with an AMD GPU device and ROCm support. This functionality
|
||||
is exposed when configured with `--enable-rocm` option. We can use the following
|
||||
steps to compile OMB:
|
||||
@@ -118,13 +123,21 @@ make -j $(nproc)
|
||||
|
||||
## Intra-node Run
|
||||
|
||||
Before running an Open MPI job, it is essential to set some environment variables to
|
||||
ensure that the correct version of Open MPI and UCX is being used.
|
||||
|
||||
```shell
|
||||
export LD_LIBRARY_PATH=$OMPI_DIR/lib:$UCX_DIR/lib:/opt/rocm/lib
|
||||
export PATH=$OMPI_DIR/bin:$PATH
|
||||
```
|
||||
|
||||
The following command runs the OSU bandwidth benchmark between the first two GPU
|
||||
devices (i.e., GPU 0 and GPU 1, same OAM) by default inside the same node. It
|
||||
measures the unidirectional bandwidth from the first device to the other.
|
||||
|
||||
```shell
|
||||
$OMPI_DIR/bin/mpirun -np 2 --mca btl '^openib' \
|
||||
-x UCX_TLS=sm,self,rocm_copy,rocm_ipc \
|
||||
$OMPI_DIR/bin/mpirun -np 2 \
|
||||
-x UCX_TLS=sm,self,rocm \
|
||||
--mca pml ucx mpi/pt2pt/osu_bw -d rocm D D
|
||||
```
|
||||
|
||||
@@ -146,3 +159,37 @@ connection:
|
||||
:alt: OSU execution showing transfer bandwidth increasing alongside payload inc.
|
||||
Inter-GPU bandwidth with various payload sizes.
|
||||
:::
|
||||
|
||||
## Collective Operations
|
||||
|
||||
Collective Operations on GPU buffers are best handled through the
|
||||
Unified Collective Communication Library (UCC) component in Open MPI.
|
||||
For this, the UCC library has to be configured and compiled with ROCm
|
||||
support. An example for configuring UCC and Open MPI with ROCm support
|
||||
is shown below:
|
||||
|
||||
```shell
|
||||
export UCC_DIR=$INSTALL_DIR/ucc
|
||||
git clone https://github.com/openucx/ucc.git
|
||||
cd ucc
|
||||
./configure --with-rocm=/opt/rocm \
|
||||
--with-ucx=$UCX_DIR \
|
||||
--prefix=$UCC_DIR
|
||||
make -j && make install
|
||||
|
||||
# Configure and compile Open MPI with UCX, UCC, and ROCm support
|
||||
cd ompi
|
||||
./configure --with-rocm=/opt/rocm \
|
||||
--with-ucx=$UCX_DIR \
|
||||
--with-ucc=$UCC_DIR
|
||||
--prefix=$OMPI_DIR
|
||||
```
|
||||
|
||||
To use the UCC component with an MPI application requires setting some
|
||||
additional parameters:
|
||||
|
||||
```shell
|
||||
mpirun --mca pml ucx --mca osc ucx \
|
||||
--mca coll_ucc_enable 1 \
|
||||
--mca coll_ucc_priority 100 -np 64 ./my_mpi_app
|
||||
```
|
||||
|
||||
@@ -14,10 +14,12 @@ automatic differentiation. Other advanced features include:
|
||||
|
||||
### Installing PyTorch
|
||||
|
||||
To install ROCm on bare metal, refer to the section
|
||||
[ROCm Installation](https://docs.amd.com/bundle/ROCm-Deep-Learning-Guide-v5.4-/page/Prerequisites.html#d2999e60).
|
||||
The recommended option to get a PyTorch environment is through Docker. However,
|
||||
installing the PyTorch wheels package on bare metal is also supported.
|
||||
To install ROCm on bare metal, refer to the sections
|
||||
[GPU and OS Support (Linux)](../../release/gpu_os_support.md) and
|
||||
[Compatibility](../../release/compatibility.md) for hardware, software and
|
||||
3rd-party framework compatibility between ROCm and PyTorch. The recommended
|
||||
option to get a PyTorch environment is through Docker. However, installing the
|
||||
PyTorch wheels package on bare metal is also supported.
|
||||
|
||||
#### Option 1 (Recommended): Use Docker Image with PyTorch Pre-Installed
|
||||
|
||||
@@ -51,12 +53,14 @@ Follow these steps:
|
||||
onto the container.
|
||||
:::
|
||||
|
||||
(install_pytorch_using_wheels)=
|
||||
|
||||
#### Option 2: Install PyTorch Using Wheels Package
|
||||
|
||||
PyTorch supports the ROCm platform by providing tested wheels packages. To
|
||||
access this feature, refer to
|
||||
[https://pytorch.org/get-started/locally/](https://pytorch.org/get-started/locally/)
|
||||
and choose the "ROCm" compute platform. {numref}`Installation-Matrix-from-Pytorch` is a matrix from <http://pytorch.org/> that illustrates the installation compatibility between ROCm and the PyTorch build.
|
||||
and choose the "ROCm" compute platform. {numref}`Installation-Matrix-from-Pytorch` is a matrix from <https://pytorch.org/> that illustrates the installation compatibility between ROCm and the PyTorch build.
|
||||
|
||||
```{figure} ../../data/how_to/magma_install/image.006.png
|
||||
:name: Installation-Matrix-from-Pytorch
|
||||
@@ -77,9 +81,9 @@ To install PyTorch using the wheels package, follow these installation steps:
|
||||
|
||||
b. Download a base OS Docker image and install ROCm following the
|
||||
installation directions in the section
|
||||
[Installation](https://docs.amd.com/bundle/ROCm-Deep-Learning-Guide-v5.4-/page/Prerequisites.html#d2999e60).
|
||||
ROCm 5.2 is installed in this example, as supported by the installation
|
||||
matrix from <http://pytorch.org/>.
|
||||
[Installation](../../deploy/linux/install.md). ROCm 5.2 is installed in
|
||||
this example, as supported by the installation matrix from
|
||||
<https://pytorch.org/>.
|
||||
|
||||
or
|
||||
|
||||
@@ -152,7 +156,7 @@ Follow these steps:
|
||||
cd ~
|
||||
git clone https://github.com/pytorch/pytorch.git
|
||||
cd pytorch
|
||||
git submodule update --init –recursive
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
4. Build PyTorch for ROCm.
|
||||
@@ -194,7 +198,7 @@ Follow these steps:
|
||||
|
||||
```bash
|
||||
python3 tools/amd_build/build_amd.py
|
||||
USE_ROCM=1 MAX_JOBS=4 python3 setup.py install ––user
|
||||
USE_ROCM=1 MAX_JOBS=4 python3 setup.py install --user
|
||||
```
|
||||
|
||||
#### Option 4: Install Using PyTorch Upstream Docker File
|
||||
@@ -217,7 +221,7 @@ Follow these steps:
|
||||
cd ~
|
||||
git clone https://github.com/pytorch/pytorch.git
|
||||
cd pytorch
|
||||
git submodule update --init –recursive
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
2. Build the PyTorch Docker image.
|
||||
@@ -401,6 +405,22 @@ Follow these steps:
|
||||
python3 main.py
|
||||
```
|
||||
|
||||
## Using MIOpen kdb files with ROCm PyTorch wheels
|
||||
|
||||
PyTorch uses MIOpen for machine learning primitives. These primitives are compiled into kernels at runtime. Runtime compilation causes a small warm-up phase when starting PyTorch. MIOpen kdb files contain precompiled kernels that can speed up the warm-up phase of an application. More information is available in the {doc}`MIOpeninstallation page <miopen:install>`.
|
||||
|
||||
MIOpen kdb files can be used with ROCm PyTorch wheels. However, the kdb files need to be placed in a specific location with respect to the PyTorch installation path. A helper script simplifies this task for the user. The script takes in the ROCm version and user's GPU architecture as inputs, and works for Ubuntu and CentOS.
|
||||
|
||||
Helper script: [install_kdb_files_for_pytorch_wheels.sh](https://raw.githubusercontent.com/wiki/ROCmSoftwarePlatform/pytorch/files/install_kdb_files_for_pytorch_wheels.sh)
|
||||
|
||||
Usage:
|
||||
|
||||
After installing ROCm PyTorch wheels:
|
||||
|
||||
1. [Optional] `export GFX_ARCH=gfx90a`
|
||||
2. [Optional] `export ROCM_VERSION=5.5`
|
||||
3. `./install_kdb_files_for_pytorch_wheels.sh`
|
||||
|
||||
## References
|
||||
|
||||
C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens and Z. Wojna, "Rethinking the Inception Architecture for Computer Vision," CoRR, p. abs/1512.00567, 2015
|
||||
|
||||
@@ -52,7 +52,7 @@ Debug messages when developing/debugging base ROCm driver. You could enable the
|
||||
|
||||
## Turn Off Page Retry on GFX9/Vega Devices
|
||||
|
||||
`sudo –s`
|
||||
`sudo -s`
|
||||
|
||||
`echo 1 > /sys/module/amdkfd/parameters/noretry`
|
||||
|
||||
@@ -65,4 +65,4 @@ Debug messages when developing/debugging base ROCm driver. You could enable the
|
||||
## PCIe-Debug
|
||||
|
||||
Refer to ROCm PCIe Debug, <a href="https://rocmdocs.amd.com/en/latest/Other_Solutions/PCIe-Debug.html#pcie-debug" target="_blank">https://rocmdocs.amd.com/en/latest/Other_Solutions/PCIe-Debug.html#pcie-debug</a>.
|
||||
For information on how to debug and profile HIP applications, see <a href="https://rocmdocs.amd.com/projects/HIP/en/latest/how_to_guides/debugging.html" target="_blank">https://rocmdocs.amd.com/projects/HIP/en/latest/how_to_guides/debugging.html</a>
|
||||
For information on how to debug and profile HIP applications, see {doc}`hip:how_to_guides/debugging`
|
||||
|
||||
@@ -16,8 +16,8 @@ The following sections contain options for installing TensorFlow.
|
||||
#### Option 1: Install TensorFlow Using Docker Image
|
||||
|
||||
To install ROCm on bare metal, follow the section
|
||||
[ROCm Installation](https://docs.amd.com/bundle/ROCm-Deep-Learning-Guide-v5.4-/page/Prerequisites.html#d2999e60).
|
||||
The recommended option to get a TensorFlow environment is through Docker.
|
||||
[Installation (Linux)](../../deploy/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
|
||||
has been rigorously tested within AMD. This might also save compilation time and
|
||||
@@ -33,8 +33,8 @@ Follow these steps:
|
||||
2. Once you have pulled the image, run it by using the command below:
|
||||
|
||||
```bash
|
||||
docker run -it --network=host --device=/dev/kfd --device=/dev/dri
|
||||
--ipc=host --shm-size 16G --group-add video --cap-add=SYS_PTRACE
|
||||
docker run -it --network=host --device=/dev/kfd --device=/dev/dri \
|
||||
--ipc=host --shm-size 16G --group-add video --cap-add=SYS_PTRACE \
|
||||
--security-opt seccomp=unconfined rocm/tensorflow:latest
|
||||
```
|
||||
|
||||
@@ -45,7 +45,7 @@ To install TensorFlow using the wheels package, follow these steps:
|
||||
1. Check the Python version.
|
||||
|
||||
```bash
|
||||
python3 –version
|
||||
python3 --version
|
||||
```
|
||||
|
||||
| If: | Then: |
|
||||
@@ -105,7 +105,7 @@ To install TensorFlow using the wheels package, follow these steps:
|
||||
5. Install TensorFlow for the Python version as indicated in Step 2.
|
||||
|
||||
```bash
|
||||
/usr/bin/python[version] -m pip install --user tensorflow-rocm==[wheel-version] –upgrade
|
||||
/usr/bin/python[version] -m pip install --user tensorflow-rocm==[wheel-version] --upgrade
|
||||
```
|
||||
|
||||
For a valid wheel version for a ROCm release, refer to the instruction below:
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# Tuning Guides
|
||||
|
||||
Use case-specific system setup and tuning guides.
|
||||
|
||||
## High Performance Computing
|
||||
|
||||
High Performance Computing (HPC) workloads have unique requirements. The default
|
||||
|
||||
@@ -83,78 +83,97 @@ available as listed in {numref}`mi100-bios`.
|
||||
- AMD CBS / NBIO Common Options
|
||||
- IOMMU
|
||||
- Disable
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options
|
||||
- PCIe Ten Bit Tag Support
|
||||
- Enable
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options
|
||||
- Preferred IO
|
||||
- Manual
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options
|
||||
- Preferred IO Bus
|
||||
- "Use lspci to find pci device id"
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options
|
||||
- Enhanced Preferred IO Mode
|
||||
- Enable
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- Determinism Control
|
||||
- Manual
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- Determinism Slider
|
||||
- Power
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- cTDP Control
|
||||
- Manual
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- cTDP
|
||||
- 240
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- Package Power Limit Control
|
||||
- Manual
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- Package Power Limit
|
||||
- 240
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- xGMI Link Width Control
|
||||
- Manual
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- xGMI Force Link Width
|
||||
- 2
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- xGMI Force Link Width Control
|
||||
- Force
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- APBDIS
|
||||
- 1
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- DF C-states
|
||||
- Auto
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- Fixed SOC P-state
|
||||
- P0
|
||||
-
|
||||
*
|
||||
- AMD CBS / UMC Common Options / DDR4 Common Options
|
||||
- Enforce POR
|
||||
- Accept
|
||||
-
|
||||
*
|
||||
- AMD CBS / UMC Common Options / DDR4 Common Options / Enforce POR
|
||||
- Overclock
|
||||
- Enabled
|
||||
-
|
||||
*
|
||||
- AMD CBS / UMC Common Options / DDR4 Common Options / Enforce POR
|
||||
- Memory Clock Speed
|
||||
@@ -256,7 +275,7 @@ sudo yum install cpupowerutils
|
||||
|
||||
:::
|
||||
|
||||
:::{tab-item} SUSE Linux Enterprise Server 15
|
||||
:::{tab-item} SUSE Linux Enterprise Server
|
||||
:sync: SLES
|
||||
|
||||
```shell
|
||||
@@ -434,7 +453,7 @@ sudo yum install rocm-bandwidth-test
|
||||
|
||||
:::
|
||||
|
||||
:::{tab-item} SUSE Linux Enterprise Server 15
|
||||
:::{tab-item} SUSE Linux Enterprise Server
|
||||
:sync: SLES
|
||||
|
||||
```shell
|
||||
|
||||
@@ -27,8 +27,6 @@ Analogous settings for other non-AMI System BIOS providers could be set
|
||||
similarly. For systems with Intel processors, some settings may not apply or be
|
||||
available as listed in {numref}`mi200-bios`.
|
||||
|
||||
Table 2: Recommended settings for the system BIOS in a GIGABYTE platform.
|
||||
|
||||
```{list-table} Recommended settings for the system BIOS in a GIGABYTE platform.
|
||||
:header-rows: 1
|
||||
:name: mi200-bios
|
||||
@@ -82,30 +80,37 @@ Table 2: Recommended settings for the system BIOS in a GIGABYTE platform.
|
||||
- AMD CBS / NBIO Common Options
|
||||
- IOMMU
|
||||
- Disable
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options
|
||||
- PCIe Ten Bit Tag Support
|
||||
- Auto
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options
|
||||
- Preferred IO
|
||||
- Bus
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options
|
||||
- Preferred IO Bus
|
||||
- "Use lspci to find pci device id"
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options
|
||||
- Enhanced Preferred IO Mode
|
||||
- Enable
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- Determinism Control
|
||||
- Manual
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- Determinism Slider
|
||||
- Power
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- cTDP Control
|
||||
@@ -115,6 +120,7 @@ Table 2: Recommended settings for the system BIOS in a GIGABYTE platform.
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- cTDP
|
||||
- 280
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- Package Power Limit Control
|
||||
@@ -124,6 +130,7 @@ Table 2: Recommended settings for the system BIOS in a GIGABYTE platform.
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- Package Power Limit
|
||||
- 280
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- xGMI Link Width Control
|
||||
@@ -133,30 +140,37 @@ Table 2: Recommended settings for the system BIOS in a GIGABYTE platform.
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- xGMI Force Link Width
|
||||
- 2
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- xGMI Force Link Width Control
|
||||
- Force
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- APBDIS
|
||||
- 1
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- DF C-states
|
||||
- Enabled
|
||||
-
|
||||
*
|
||||
- AMD CBS / NBIO Common Options / SMU Common Options
|
||||
- Fixed SOC P-state
|
||||
- P0
|
||||
-
|
||||
*
|
||||
- AMD CBS / UMC Common Options / DDR4 Common Options
|
||||
- Enforce POR
|
||||
- Accept
|
||||
-
|
||||
*
|
||||
- AMD CBS / UMC Common Options / DDR4 Common Options / Enforce POR
|
||||
- Overclock
|
||||
- Enabled
|
||||
-
|
||||
*
|
||||
- AMD CBS / UMC Common Options / DDR4 Common Options / Enforce POR
|
||||
- Memory Clock Speed
|
||||
@@ -244,7 +258,7 @@ sudo yum install cpupowerutils
|
||||
|
||||
:::
|
||||
|
||||
:::{tab-item} SUSE Linux Enterprise Server 15
|
||||
:::{tab-item} SUSE Linux Enterprise Server
|
||||
:sync: SLES
|
||||
|
||||
```shell
|
||||
@@ -422,7 +436,7 @@ sudo yum install rocm-bandwidth-test
|
||||
|
||||
:::
|
||||
|
||||
:::{tab-item} SUSE Linux Enterprise Server 15
|
||||
:::{tab-item} SUSE Linux Enterprise Server
|
||||
:sync: SLES
|
||||
|
||||
```shell
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
# Inference Optimization Using MIGraphX
|
||||
|
||||
Pull content from
|
||||
<https://docs.amd.com/bundle/ROCm-Deep-Learning-Guide-v5.4.1/page/Optimization.html>
|
||||
@@ -1,4 +1,4 @@
|
||||
# AMD ROCm™ Platform - Powering Your GPU Computational Needs
|
||||
# AMD ROCm™ Documentation
|
||||
|
||||
:::::{grid} 1 1 3 3
|
||||
:gutter: 1
|
||||
@@ -14,7 +14,7 @@ agile, flexible, rapid and secure manner. [more...](rocm)
|
||||
::::
|
||||
|
||||
::::{grid-item}
|
||||
:::{dropdown} [Deploy ROCm](deploy)
|
||||
:::{dropdown} Deploy ROCm
|
||||
|
||||
- {doc}`/deploy/linux/index`
|
||||
- {doc}`/deploy/docker`
|
||||
@@ -44,14 +44,14 @@ agile, flexible, rapid and secure manner. [more...](rocm)
|
||||
[APIs and Reference](reference/all)
|
||||
^^^
|
||||
|
||||
- [Compilers and Development Tools](reference/compilers)
|
||||
- [HIP](reference/hip)
|
||||
- [OpenMP](reference/openmp/openmp)
|
||||
- [Math Libraries](reference/gpu_libraries/math)
|
||||
- [C++ Primitives Libraries](reference/gpu_libraries/c++_primitives)
|
||||
- [Communication Libraries](reference/gpu_libraries/communication)
|
||||
- [AI Libraries](reference/ai_tools)
|
||||
- [Computer Vision](reference/computer_vision)
|
||||
- [OpenMP](reference/openmp/openmp)
|
||||
- [Compilers and Tools](reference/compilers)
|
||||
- [Management Tools](reference/management_tools)
|
||||
- [Validation Tools](reference/validation_tools)
|
||||
|
||||
@@ -59,23 +59,24 @@ agile, flexible, rapid and secure manner. [more...](rocm)
|
||||
|
||||
:::{grid-item-card}
|
||||
:padding: 2
|
||||
Understand ROCm
|
||||
[Understand ROCm](understand/all)
|
||||
^^^
|
||||
|
||||
- [Compiler Disambiguation](understand/compiler_disambiguation)
|
||||
- [Using CMake](understand/cmake_packages)
|
||||
- [ROCm File Reorganization White Paper](understand/file_reorg)
|
||||
- [GPU Architecture](understand/gpu_arch)
|
||||
- [Linux Folder Structure Reorganization](understand/file_reorg)
|
||||
- [GPU Isolation Techniques](understand/gpu_isolation)
|
||||
- [GPU Architecture](understand/gpu_arch)
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card}
|
||||
:padding: 2
|
||||
How to Guides
|
||||
[How to Guides](how_to/all)
|
||||
^^^
|
||||
|
||||
- [System Tuning for Various Architectures](how_to/tuning_guides/index)
|
||||
- [GPU Aware MPI](how_to/gpu_aware_mpi)
|
||||
- [Setting up for Deep Learning with ROCm](how_to/deep_learning_rocm)
|
||||
- [Magma Installation](how_to/magma_install/magma_install)
|
||||
- [PyTorch Installation](how_to/pytorch_install/pytorch_install)
|
||||
@@ -86,12 +87,13 @@ How to Guides
|
||||
|
||||
:::{grid-item-card}
|
||||
:padding: 2
|
||||
Examples
|
||||
[Tutorials & Examples](examples/all)
|
||||
^^^
|
||||
|
||||
- [ROCm Examples](https://github.com/amd/rocm-examples)
|
||||
- [AI/ML/Inferencing](examples/ai_ml_inferencing)
|
||||
- [Inception V3 with PyTorch](examples/inception_casestudy/inception_casestudy)
|
||||
- [Examples](https://github.com/amd/rocm-examples)
|
||||
- [ML, DL, and AI](examples/machine_learning/all)
|
||||
- [](examples/machine_learning/pytorch_inception)
|
||||
- [](examples/machine_learning/migraphx_optimization)
|
||||
|
||||
:::
|
||||
::::
|
||||
|
||||
@@ -3,24 +3,30 @@
|
||||
::::{grid} 1 1 2 2
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} [MIOpen](https://rocmdocs.amd.com/projects/MIOpen/en/latest/)
|
||||
:::{grid-item-card} {doc}`MIOpen <miopen:index>`
|
||||
AMD's library for high performance machine learning primitives.
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/MIOpen/en/latest/)
|
||||
- {doc}`Documentation <miopen:index>`
|
||||
- [GitHub](https://github.com/ROCmSoftwarePlatform/MIOpen)
|
||||
- [Changelog](https://github.com/ROCmSoftwarePlatform/MIOpen/blob/develop/CHANGELOG.md)
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} [Composable Kernel](https://rocmdocs.amd.com/projects/composable_kernel/en/latest/)
|
||||
:::{grid-item-card} {doc}`Composable Kernel <composable_kernel:index>`
|
||||
Composable Kernel: Performance Portable Programming Model for Machine Learning Tensor Operators
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/composable_kernel/en/latest/)
|
||||
- {doc}`Documentation <composable_kernel:index>`
|
||||
- [GitHub](https://github.com/ROCmSoftwarePlatform/composable_kernel)
|
||||
- [Changelog](https://github.com/ROCmSoftwarePlatform/composable_kernel/blob/develop/CHANGELOG.md)
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} [MIGraphX](https://rocmdocs.amd.com/projects/MIGraphX/en/latest/)
|
||||
:::{grid-item-card} {doc}`MIGraphX <amdmigraphx:index>`
|
||||
AMD MIGraphX is AMD's graph inference engine that accelerates machine learning model inference.
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/MIGraphX/en/latest/)
|
||||
- {doc}`Documentation <amdmigraphx:index>`
|
||||
- [GitHub](https://github.com/ROCmSoftwarePlatform/AMDMIGraphX)
|
||||
- [Changelog](https://github.com/ROCmSoftwarePlatform/AMDMIGraphX/blob/develop/CHANGELOG.md)
|
||||
|
||||
:::
|
||||
|
||||
|
||||
@@ -8,8 +8,9 @@
|
||||
:::{grid-item-card} [HIP](./hip)
|
||||
HIP is both AMD's GPU programming language extension and the GPU runtime.
|
||||
|
||||
- [HIP Runtime API Manual](https://rocmdocs.amd.com/projects/hipBLAS/en/latest/)
|
||||
- [Examples](https://github.com/amd/rocm-examples/tree/develop/HIP-Basic)
|
||||
- {doc}`HIP <hip:index>`
|
||||
- [HIP Examples](https://github.com/amd/rocm-examples/tree/develop/HIP-Basic)
|
||||
- {doc}`HIPIFY <hipify:index>`
|
||||
|
||||
:::
|
||||
|
||||
@@ -25,33 +26,33 @@ HIP Math Libraries support the following domains:
|
||||
:::{grid-item-card} [C++ Primitive Libraries](./gpu_libraries/c++_primitives)
|
||||
ROCm template libraries for C++ primitives and algorithms are as follows:
|
||||
|
||||
- [rocPRIM](https://rocprim.readthedocs.io/en/latest/)
|
||||
- [rocThrust](https://rocthrust.readthedocs.io/en/latest/)
|
||||
- [hipCUB](https://hipcub.readthedocs.io/en/latest/)
|
||||
- {doc}`rocPRIM <rocprim:index>`
|
||||
- {doc}`rocThrust <rocthrust:index>`
|
||||
- {doc}`hipCUB <hipcub:index>`
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} [Communication Libraries](gpu_libraries/communication)
|
||||
Inter and intra-node communication is supported by the following projects:
|
||||
|
||||
- [RCCL](https://rocmdocs.amd.com/projects/rccl/en/latest/)
|
||||
- {doc}`RCCL <rccl:index>`
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} [AI Libraries](./ai_tools)
|
||||
Libraries related to AI.
|
||||
|
||||
- [MIOpen](https://rocmdocs.amd.com/projects/MIOpen/en/latest/)
|
||||
- [Composable Kernel](https://rocmdocs.amd.com/projects/composable_kernel/en/latest/)
|
||||
- [MIGraphX](https://rocmdocs.amd.com/projects/MIGraphX/en/latest/)
|
||||
- {doc}`MIOpen <miopen:index>`
|
||||
- {doc}`Composable Kernel <composable_kernel:index>`
|
||||
- {doc}`MIGraphX <amdmigraphx:index>`
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} [Computer Vision](./computer_vision)
|
||||
Computer vision related projects.
|
||||
|
||||
- [MIVisionX](https://rocmdocs.amd.com/projects/MIVisionX/en/latest)
|
||||
- [rocAL](https://rocmdocs.amd.com/projects/rocAL/en/latest)
|
||||
- {doc}`MIVisionX <mivisionx:README>`
|
||||
- {doc}`rocAL <rocal:README>`
|
||||
|
||||
:::
|
||||
|
||||
@@ -63,25 +64,26 @@ Computer vision related projects.
|
||||
|
||||
:::{grid-item-card} [Compilers and Tools](compilers)
|
||||
|
||||
- [ROCmCC](https://rocmdocs.amd.com/projects/ROCmCC/en/latest/)
|
||||
- [ROCgdb](https://rocmdocs.amd.com/projects/ROCgdb/en/latest/)
|
||||
- [ROCProfiler](https://rocmdocs.amd.com/projects/rocprofiler/en/latest/)
|
||||
- [ROCTracer](https://rocmdocs.amd.com/projects/roctracer/en/latest/)
|
||||
- [ROCmCC](/reference/rocmcc/rocmcc)
|
||||
- {doc}`ROCdbgapi <rocdbgapi:index>`
|
||||
- {doc}`ROCgdb <rocgdb:index>`
|
||||
- {doc}`ROCProfiler <rocprofiler:rocprof>`
|
||||
- {doc}`ROCTracer <roctracer:index>`
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} [Management Tools](management_tools)
|
||||
|
||||
- [AMD SMI](https://rocmdocs.amd.com/projects/amdsmi/en/latest/)
|
||||
- [ROCm SMI](https://rocmdocs.amd.com/projects/rocmsmi/en/latest/)
|
||||
- [ROCm Datacenter Tool](https://rocmdocs.amd.com/projects/rdc/en/latest/)
|
||||
- {doc}`AMD SMI <amdsmi:index>`
|
||||
- {doc}`ROCm SMI <rocm_smi_lib:index>`
|
||||
- {doc}`ROCm Data Center Tool <rdc:index>`
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} [Validation Tools](validation_tools)
|
||||
|
||||
- [ROCm Validation Suite](https://rocm.docs.amd.com/projects/ROCmValidationSuite/en/latest/)
|
||||
- [TransferBench](https://rocmdocs.amd.com/projects/TransferBench/en/latest/)
|
||||
- {doc}`ROCm Validation Suite <rocmvalidationsuite:index>`
|
||||
- {doc}`TransferBench <transferbench:index>`
|
||||
|
||||
:::
|
||||
|
||||
|
||||
@@ -3,32 +3,51 @@
|
||||
:::::{grid} 1 1 2 2
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} [ROCmCC](https://rocmdocs.amd.com/projects/ROCmCC/en/latest/)
|
||||
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}`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.
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/ROCmCC/en/latest/)
|
||||
- {doc}`Documentation <rocdbgapi:index>`
|
||||
- [GitHub](https://github.com/ROCm-Developer-Tools/ROCdbgapi/)
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} [ROCgdb](https://rocmdocs.amd.com/projects/ROCgdb/en/latest/)
|
||||
:::{grid-item-card} [ROCmCC](./rocmcc/rocmcc)
|
||||
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.
|
||||
|
||||
- [Documentation](./rocmcc/rocmcc)
|
||||
|
||||
:::
|
||||
|
||||
:::{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.
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/ROCgdb/en/latest/)
|
||||
- {doc}`Documentation <rocgdb:index>`
|
||||
- [GitHub](https://github.com/ROCm-Developer-Tools/ROCgdb/)
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} [ROCProfiler](https://rocmdocs.amd.com/projects/rocprofiler/en/latest/)
|
||||
:::{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.
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/rocprofiler/en/latest/)
|
||||
- {doc}`Documentation <rocprofiler:rocprof>`
|
||||
- [GitHub](https://github.com/ROCm-Developer-Tools/rocprofiler/)
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} [ROCTracer](https://rocmdocs.amd.com/projects/roctracer/en/latest/)
|
||||
Callback/Activity Library for Performance tracing AMD GPU's
|
||||
:::{grid-item-card} {doc}`ROCTracer <roctracer:index>`
|
||||
Callback/Activity Library for Performance tracing AMD GPUs
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/roctracer/en/latest/)
|
||||
- {doc}`Documentation <roctracer:index>`
|
||||
- [GitHub](https://github.com/ROCm-Developer-Tools/roctracer)
|
||||
|
||||
:::
|
||||
|
||||
:::::
|
||||
|
||||
## See Also
|
||||
|
||||
- [Compiler Disambiguation](../understand/compiler_disambiguation.md)
|
||||
|
||||
@@ -3,17 +3,19 @@
|
||||
::::{grid} 1 1 2 2
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} [MIVisionX](https://rocmdocs.amd.com/projects/MIVisionX/en/latest/)
|
||||
:::{grid-item-card} {doc}`MIVisionX <mivisionx:README>`
|
||||
MIVisionX toolkit is a set of comprehensive computer vision and machine intelligence libraries, utilities, and applications bundled into a single toolkit. AMD MIVisionX also delivers a highly optimized open-source implementation of the Khronos OpenVX™ and OpenVX™ Extensions.
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/MIVisionX/en/latest/)
|
||||
- {doc}`Documentation <mivisionx:README>`
|
||||
- [GitHub](https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/)
|
||||
- [Changelog](https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/blob/master/CHANGELOG.md)
|
||||
|
||||
:::
|
||||
|
||||
:::{grid-item-card} [rocAL](https://rocmdocs.amd.com/projects/rocAL/en/latest/)
|
||||
:::{grid-item-card} {doc}`rocAL <rocal:README>`
|
||||
The AMD ROCm Augmentation Library (rocAL) is designed to efficiently decode and process images and videos from a variety of storage formats and modify them through a processing graph programmable by the user. rocAL currently provides C API.
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/rocAL/en/latest/)
|
||||
- {doc}`Documentation <rocal:README>`
|
||||
|
||||
:::
|
||||
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
# Framework Compatibility
|
||||
|
||||
The ROCm release supports the most recent and two prior releases of PyTorch and TensorFlow.
|
||||
|
||||
Legends:
|
||||
|
||||
Blue: Shows compatibility tested versions
|
||||
|
||||
Gray: Not tested
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Supported Frameworks
|
||||
|
||||
This section contains the latest release notes for each framework compatible with ROCm™ and Deep Learning (DL) applications.
|
||||
|
||||
The ROCm 5.4 platform supports the following frameworks:
|
||||
|
||||
- PyTorch v1.12.1
|
||||
|
||||
- MAGMA v2.5.4
|
||||
|
||||
- TensorFlow v2.10.0
|
||||
|
||||
### PyTorch
|
||||
|
||||
For the latest release of PyTorch, refer to <a href="https://github.com/pytorch/pytorch/releases/" target="_blank">https://github.com/pytorch/pytorch/releases/</a>
|
||||
|
||||
### MAGMA
|
||||
|
||||
For the latest release of MAGMA, refer to <a href="https://icl.utk.edu/magma/index.html" target="_blank">https://icl.utk.edu/magma/index.html</a>
|
||||
|
||||
### TensorFlow
|
||||
|
||||
For the latest release of TensorFlow, refer to <a href="https://github.com/tensorflow/tensorflow/releases/" target="_blank">https://github.com/tensorflow/tensorflow/releases</a>
|
||||
@@ -5,33 +5,36 @@ ROCm template libraries for algorithms are as follows:
|
||||
:::::{grid} 1 1 3 3
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} [rocPRIM](https://rocmdocs.amd.com/projects/rocPRIM/en/latest/)
|
||||
:::{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.
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/rocPRIM/en/latest/)
|
||||
- {doc}`Documentation <rocprim:index>`
|
||||
- [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} [rocThrust](https://rocmdocs.amd.com/projects/rocThrust/en/latest/)
|
||||
:::{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.
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/rocThrust/en/latest/)
|
||||
- {doc}`Documentation <rocthrust:index>`
|
||||
- [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} [hipCUB](https://rocmdocs.amd.com/projects/hipCUB/en/latest/)
|
||||
:::{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.
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/hipCUB/en/latest/)
|
||||
- {doc}`Documentation <hipcub:index>`
|
||||
- [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)
|
||||
|
||||
|
||||
@@ -3,13 +3,14 @@
|
||||
:::::{grid} 1 1 1 1
|
||||
:gutter: 1
|
||||
|
||||
:::{grid-item-card} [RCCL](https://rocmdocs.amd.com/projects/rccl/en/latest/)
|
||||
:::{grid-item-card} {doc}`RCCL <rccl:index>`
|
||||
RCCL (pronounced "Rickle") is a stand-alone 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.
|
||||
|
||||
- [Documentation](https://rocmdocs.amd.com/projects/rccl/en/latest/)
|
||||
- {doc}`Documentation <rccl:index>`
|
||||
- [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)
|
||||
|
||||
|
||||