mirror of
https://github.com/ROCm/ROCm.git
synced 2026-01-09 22:58:17 -05:00
Compare commits
40 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6376df8799 | ||
|
|
93301e03e2 | ||
|
|
7f15331a67 | ||
|
|
3f4e60c4d0 | ||
|
|
f558960c7e | ||
|
|
c1e71f0dcc | ||
|
|
08257cbca7 | ||
|
|
88d4832e84 | ||
|
|
4a77b8ec63 | ||
|
|
47cb66122f | ||
|
|
cb75f9faeb | ||
|
|
8c1d89e69f | ||
|
|
1a315e093f | ||
|
|
42e58efc65 | ||
|
|
04628c0e85 | ||
|
|
883df8b9f5 | ||
|
|
d46888fe1e | ||
|
|
5dd391eb49 | ||
|
|
04534f7b52 | ||
|
|
3e82c69b04 | ||
|
|
39c0ecbbda | ||
|
|
95c6ddd586 | ||
|
|
3b73215554 | ||
|
|
39ebe697ba | ||
|
|
b6c6392ee4 | ||
|
|
6e5b253e67 | ||
|
|
a93a3fe488 | ||
|
|
dfff4e0f40 | ||
|
|
8bd9db4e8e | ||
|
|
bb158e9d7f | ||
|
|
3387f5b9d8 | ||
|
|
42ed737183 | ||
|
|
eab9718cb8 | ||
|
|
4c7d3cdd4c | ||
|
|
2a0d469a95 | ||
|
|
67197a8232 | ||
|
|
38a3c6dbcf | ||
|
|
a0e3f8b827 | ||
|
|
274fe660e7 | ||
|
|
47b44a6256 |
246
README.md
246
README.md
@@ -2,27 +2,6 @@
|
||||
The ROCm Platform brings a rich foundation to advanced computing by seamlessly
|
||||
integrating the CPU and GPU with the goal of solving real-world problems.
|
||||
|
||||
On April 25th, 2016, we delivered ROCm 1.0 built around three pillars:
|
||||
|
||||
1) Open Heterogeneous Computing Platform (Linux Driver and Runtime Stack),
|
||||
optimized for HPC & Ultra-scale class computing;
|
||||
|
||||
2) Heterogeneous C and C++ Single Source Compiler, to approach computation
|
||||
holistically, on a system level, rather than as a discrete GPU artifact;
|
||||
|
||||
3) HIP, acknowledging the need for freedom of choice when it comes to platforms
|
||||
and APIs for GPU computing.
|
||||
|
||||
Using our knowledge of the HSA Standards and, more importantly, the HSA
|
||||
Runtime, we have been able to successfully extended support to the dGPU with
|
||||
critical features for accelerating NUMA computation. As a result, the ROCK
|
||||
driver is composed of several components based on our efforts to develop the
|
||||
Heterogeneous System Architecture for APUs, including the new AMDGPU driver,
|
||||
the Kernel Fusion Driver (KFD), the HSA+ Runtime and an LLVM based compilation
|
||||
stack which provides support for key languages. This support starts with AMD’s
|
||||
Fiji family of dGPUs, and has expanded to include the Hawaii dGPU family in ROCm
|
||||
1.2. ROCm 1.3 further extends support to include the Polaris family of ASICs.
|
||||
|
||||
#### Supported CPUs
|
||||
The ROCm Platform leverages PCIe Atomics (Fetch ADD, Compare and SWAP,
|
||||
Unconditional SWAP, AtomicsOpCompletion).
|
||||
@@ -38,19 +17,19 @@ Southbridge PCIe I/O controller. If you motherboard is part of this category,
|
||||
please do not use this connector for your GPUs, if you intend to exploit ROCm.
|
||||
|
||||
|
||||
Our GFX8 GPU's (Fiji & Polaris Family) use PCIe Gen 3 and PCIe Atomics.
|
||||
Our GFX8 GPU's (Fiji & Polaris Family) and GFX9 (Vega) use PCIe Gen 3 and PCIe Atomics.
|
||||
|
||||
Current CPUs which support PCIe Gen3 + PCIe Atomics are:
|
||||
* Intel Xeon E5 v3 or newer CPUs;
|
||||
* Intel Xeon E3 v3 or newer CPUs;
|
||||
* Intel Core i7 v3, Core i5 v3, Core i3 v3 or newer CPUs (i.e. Haswell family or newer).
|
||||
* Intel Core i7 v4, Core i5 v4, Core i3 v4 or newer CPUs (i.e. Haswell family or newer).
|
||||
* AMD Ryzen CPUs;
|
||||
|
||||
Upcoming CPUs which will support PCIe Gen3 + PCIe Atomics are:
|
||||
* AMD Naples Server CPUs;
|
||||
* Cavium Thunder X Server Processor.
|
||||
|
||||
Our GFX7 GPUs Radeon R9 290, R9 390, AMD FirePro S9150, S9170 do not support or
|
||||
Experimental support for our GFX7 GPUs Radeon R9 290, R9 390, AMD FirePro S9150, S9170 note they do not support or
|
||||
take advantage of PCIe Atomics. However, we still recommend that you use a CPU
|
||||
from the list provided above.
|
||||
|
||||
@@ -71,17 +50,16 @@ option for enabling IOMMUv2. If this is the case, the final requirement is
|
||||
associated with correct CRAT table support - please inquire with the OEM about
|
||||
the latter.
|
||||
* AMD Merlin/Falcon Embedded System is also not currently supported by the public Repo.
|
||||
* AMD Raven Ridge APU are currently not supported
|
||||
|
||||
#### Support for future APUs
|
||||
We are well aware of the excitement and anticipation built around using ROCm
|
||||
with an APU system which fully exposes Shared Virtual Memory alongside and cache
|
||||
coherency between the CPU and GPU. To this end, in mid 2017 we plan on testing
|
||||
commercial AM4 motherboards for the Bristol Ridge and Raven Ridge families of
|
||||
APUs. Just like you, we still waiting for access to them! Once we have the first
|
||||
boards in the lab we will detail our experiences via our blog, as well as build
|
||||
a list of motherboard that are qualified for use with ROCm.
|
||||
### New Features to ROCm 1.7
|
||||
|
||||
### New Features to ROCm
|
||||
#### DKMS driver installation
|
||||
|
||||
* New driver installation uses Dynamic Kernel Module Support (DKMS)
|
||||
* Only amdkfd and amdgpu kernel modules are installed to support AMD hardware
|
||||
* Currently only Debian packages are provided for DKMS (no Fedora suport available)
|
||||
* See the [ROCT-Thunk-Interface](https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface/tree/roc-1.7.x) and [ROCK-Kernel-Driver](https://github.com/RadeonOpenCompute/ROCK-Kernel-Driver/tree/roc-1.7.x) for additional documentation on driver setup
|
||||
|
||||
#### Developer preview of the new OpenCL 1.2 compatible language runtime and compiler
|
||||
|
||||
@@ -89,76 +67,109 @@ a list of motherboard that are qualified for use with ROCm.
|
||||
runtime
|
||||
* Supports offline ahead of time compilation today;
|
||||
during the Beta phase we will add in-process/in-memory compilation.
|
||||
* Binary Package support for Ubuntu 16.04 and Fedora 24
|
||||
* Dropping binary package support for Ubuntu 14.04 and Fedora 23
|
||||
* Binary Package support for Ubuntu 16.04
|
||||
* Binary Package support for Fedora 24 is not currently available
|
||||
* Dropping binary package support for Ubuntu 14.04, Fedora 23
|
||||
|
||||
#### IPC support
|
||||
|
||||
### The latest ROCm platform - ROCm 1.5
|
||||
### The latest ROCm platform - ROCm 1.7
|
||||
The latest tested version of the drivers, tools, libraries and source code for
|
||||
the ROCm platform have been released and are available under the roc-1.5.0 or rocm-1.5.0 tag
|
||||
the ROCm platform have been released and are available under the roc-1.7.x or rocm-1.7.x tag
|
||||
of the following GitHub repositories:
|
||||
|
||||
* [ROCK-Kernel-Driver](https://github.com/RadeonOpenCompute/ROCK-Kernel-Driver/tree/roc-1.5.0)
|
||||
* [ROCR-Runtime](https://github.com/RadeonOpenCompute/ROCR-Runtime/tree/roc-1.5.0)
|
||||
* [ROCT-Thunk-Interface](https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface/tree/roc-1.5.0)
|
||||
* [ROC-smi](https://github.com/RadeonOpenCompute/ROC-smi/tree/roc-1.5.0)
|
||||
* [HCC compiler](https://github.com/RadeonOpenCompute/hcc/tree/rocm-1.5.0)
|
||||
* [compiler-runtime](https://github.com/RadeonOpenCompute/compiler-rt/tree/rocm-1.5.0)
|
||||
* [HIP](https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP/tree/roc-1.5.0)
|
||||
* [HIP-Examples](https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP-Examples/tree/roc-1.5.0)
|
||||
* [ROCK-Kernel-Driver](https://github.com/RadeonOpenCompute/ROCK-Kernel-Driver/tree/roc-1.7.x)
|
||||
* [ROCR-Runtime](https://github.com/RadeonOpenCompute/ROCR-Runtime/tree/roc-1.7.x)
|
||||
* [ROCT-Thunk-Interface](https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface/tree/roc-1.7.x)
|
||||
* [ROC-smi](https://github.com/RadeonOpenCompute/ROC-smi/tree/roc-1.7.x)
|
||||
* [HCC compiler](https://github.com/RadeonOpenCompute/hcc/tree/roc-1.7.x)
|
||||
* [compiler-runtime](https://github.com/RadeonOpenCompute/compiler-rt/tree/roc-1.7.x)
|
||||
* [HIP](https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP/tree/roc-1.7.x)
|
||||
* [HIP-Examples](https://github.com/GPUOpen-ProfessionalCompute-Tools/HIP-Examples/tree/roc-1.7.x)
|
||||
* [atmi](https://github.com/RadeonOpenCompute/atmi/tree/0.3.7)
|
||||
|
||||
Additionally, the following mirror repositories that support the HCC compiler
|
||||
are also available on GitHub, and frozen for the rocm-1.5.0 release:
|
||||
are also available on GitHub, and frozen for the rocm-1.7.2 release:
|
||||
|
||||
* [llvm](https://github.com/RadeonOpenCompute/llvm/tree/rocm-1.5.0)
|
||||
* [lld](https://github.com/RadeonOpenCompute/lld/tree/rocm-1.5.0)
|
||||
* [hcc-clang-upgrade](https://github.com/RadeonOpenCompute/hcc-clang-upgrade/tree/rocm-1.5.0)
|
||||
* [ROCm-Device-Libs](https://github.com/RadeonOpenCompute/ROCm-Device-Libs/tree/rocm-1.5.0)
|
||||
* [llvm](https://github.com/RadeonOpenCompute/llvm/tree/roc-1.7.x)
|
||||
* [ldd](https://github.com/RadeonOpenCompute/lld/tree/roc-1.7.x)
|
||||
* [hcc-clang-upgrade](https://github.com/RadeonOpenCompute/hcc-clang-upgrade/tree/roc-1.7.x)
|
||||
* [ROCm-Device-Libs](https://github.com/RadeonOpenCompute/ROCm-Device-Libs/tree/roc-1.7.x)
|
||||
|
||||
#### Supported Operating Systems
|
||||
|
||||
The ROCm platform has been tested on the following operating systems:
|
||||
The ROCm 1.7 platform has been tested on the following operating systems:
|
||||
* Ubuntu 16.04
|
||||
* Fedora 24 (Hawaii based GPUs, i.e. Radeon R9 290, R9 390, AMD FirePro S9150, S9170, are not supported)
|
||||
|
||||
### Installing from AMD ROCm repositories
|
||||
AMD is hosting both debian and rpm repositories for the ROCm 1.5 packages. The
|
||||
packages in the Debian repository have been signed to ensure package integrity.
|
||||
AMD is hosting only debian repositories for the ROCm 1.7 packages at this time. It is expected
|
||||
that an rpm repository will be available in the next point release.
|
||||
|
||||
The packages in the Debian repository have been signed to ensure package integrity.
|
||||
Directions for each repository are given below:
|
||||
|
||||
#### Debian repository - apt-get
|
||||
##### First make sure your system is up to date
|
||||
|
||||
```shell
|
||||
sudo apt update
|
||||
sudo apt dist-upgrade
|
||||
sudo apt install libnuma-dev
|
||||
sudo reboot
|
||||
```
|
||||
#### Optional: Upgrade to 4.13 kernel
|
||||
Although not required, it is recommended as of ROCm 1.7.2 that the system's kernel is upgraded to the latest 4.13 version available:
|
||||
|
||||
```shell
|
||||
sudo apt install linux-headers-4.13.0-32-generic linux-image-4.13.0-32-generic linux-image-extra-4.13.0-32-generic linux-signed-image-4.13.0-32-generic
|
||||
sudo reboot
|
||||
```
|
||||
#### Packaging server update
|
||||
The packaging server has been changed from the old http://packages.amd.com
|
||||
to the new repository site http://repo.radeon.com.
|
||||
|
||||
#### Debian repository - apt
|
||||
|
||||
##### Add the ROCm apt repository
|
||||
For Debian based systems, like Ubuntu, configure the Debian ROCm repository as
|
||||
follows:
|
||||
|
||||
```shell
|
||||
wget -qO - http://packages.amd.com/rocm/apt/debian/rocm.gpg.key | sudo apt-key add -
|
||||
sudo sh -c 'echo deb [arch=amd64] http://packages.amd.com/rocm/apt/debian/ xenial main > /etc/apt/sources.list.d/rocm.list'
|
||||
wget -qO - http://repo.radeon.com/rocm/apt/debian/rocm.gpg.key | sudo apt-key add -
|
||||
sudo sh -c 'echo deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main > /etc/apt/sources.list.d/rocm.list'
|
||||
```
|
||||
The gpg key might change, so it may need to be updated when installing a new
|
||||
release.
|
||||
release. The current rocm.gpg.key is not avialable in a standard key ring distribution,
|
||||
but has the following sha1sum hash:
|
||||
|
||||
f0d739836a9094004b0a39058d046349aacc1178 rocm.gpg.key
|
||||
|
||||
##### Install or Update
|
||||
Next, update the apt-get repository list and install/update the rocm package:
|
||||
Next, update the apt repository list and install/update the rocm package:
|
||||
|
||||
>**Warning**: Before proceeding, make sure to completely
|
||||
>[uninstall any pre-release ROCm packages](https://github.com/RadeonOpenCompute/ROCm#removing-pre-release-packages):
|
||||
>[uninstall any previous ROCm package](https://github.com/RadeonOpenCompute/ROCm#removing-pre-release-packages):
|
||||
|
||||
```shell
|
||||
sudo apt-get update
|
||||
sudo apt-get install rocm
|
||||
sudo apt update
|
||||
sudo apt install rocm-dkms
|
||||
```
|
||||
Then, make the ROCm kernel your default kernel. If using grub2 as your
|
||||
bootloader, you can edit the `GRUB_DEFAULT` variable in the following file:
|
||||
|
||||
###### Next set your permsions
|
||||
With move to upstreaming the KFD driver and the support of DKMS, for all Console aka headless user, you will need to add all your users to the 'video" group by setting the Unix permissions
|
||||
|
||||
Configure
|
||||
Ensure that your user account is a member of the "video" group prior to using the ROCm driver. You can find which groups you are a member of with the following command:
|
||||
|
||||
```shell
|
||||
sudo vi /etc/default/grub
|
||||
sudo update-grub
|
||||
groups
|
||||
```
|
||||
|
||||
To add yourself to the video group you will need the sudo password and can use the following command:
|
||||
|
||||
```shell
|
||||
sudo usermod -a -G video $LOGNAME
|
||||
```
|
||||
|
||||
Once complete, reboot your system.
|
||||
|
||||
We recommend you [verify your installation](https://github.com/RadeonOpenCompute/ROCm#verify-installation) to make sure everything completed successfully.
|
||||
@@ -167,19 +178,8 @@ We recommend you [verify your installation](https://github.com/RadeonOpenCompute
|
||||
|
||||
##### Start by following the instruction of installing ROCm with Debian repository:
|
||||
|
||||
at the step "sudo apt-get install rocm" replace it with:
|
||||
No additional steps are required. The rocm-opencl package is now installed with rocm-dkms as a dependency. This includes the development package, rocm-opencl-dev.
|
||||
|
||||
```shell
|
||||
sudo apt-get install rocm opencl-rocm
|
||||
```
|
||||
|
||||
To install the development kit for OpenCL, which includes the OpenCL header files, execute this installation command instead:
|
||||
|
||||
```shell
|
||||
sudo apt-get install rocm opencl-rocm-dev
|
||||
```
|
||||
|
||||
Then follow the direction for Debian Repository
|
||||
|
||||
###### Upon restart, To test your OpenCL instance
|
||||
|
||||
@@ -205,7 +205,7 @@ g++ -I /opt/rocm/opencl/include/ ./HelloWorld.cpp -o HelloWorld -L/opt/rocm/open
|
||||
To un-install the entire rocm development package execute:
|
||||
|
||||
```shell
|
||||
sudo apt-get autoremove rocm
|
||||
sudo apt autoremove rocm-dkms
|
||||
```
|
||||
|
||||
##### Installing development packages for cross compilation
|
||||
@@ -215,75 +215,49 @@ you may prefer to avoid installing the ROCm Kernel to your development system.
|
||||
In this case, install the development subset of packages:
|
||||
|
||||
```shell
|
||||
sudo apt-get update
|
||||
sudo apt-get install rocm-dev
|
||||
sudo apt update
|
||||
sudo apt install rocm-dev
|
||||
```
|
||||
|
||||
>**Note:** To execute ROCm enabled apps you will require a system with the full
|
||||
>ROCm driver stack installed
|
||||
|
||||
##### Known Issues / Workarounds
|
||||
|
||||
######## If you Plan to Run with X11 - we are seeing X freezes under load
|
||||
|
||||
ROCm 1.7.2 a kernel parameter noretry has been set to 1 to improve overall system performance. However it has been proven to bring instability to graphics driver shipped with Ubuntu. This is an ongoing issue and we are looking into it.
|
||||
|
||||
Before that, please try apply this change by changing noretry bit to 0.
|
||||
|
||||
```shell
|
||||
echo 0 | sudo tee /sys/module/amdkfd/parameters/noretry
|
||||
```
|
||||
|
||||
Files under /sys won't be preserved after reboot so you'll need to do it every time.
|
||||
|
||||
One way to keep noretry=0 is to change /etc/modprobe.d/amdkfd.conf and make it be:
|
||||
|
||||
options amdkfd noretry=0
|
||||
|
||||
Once it's done, run sudo update-initramfs -u. Reboot and verify /sys/module/amdkfd/parameters/noretry stays as 0.
|
||||
|
||||
|
||||
##### Removing pre-release packages
|
||||
If you installed any of the ROCm pre-release packages from github, they will
|
||||
need to be manually un-installed:
|
||||
|
||||
```shell
|
||||
sudo apt-get purge libhsakmt
|
||||
sudo apt-get purge radeon-firmware
|
||||
sudo apt-get purge $(dpkg -l | grep 'kfd\|rocm' | grep linux | grep -v libc | awk '{print $2}')
|
||||
sudo apt purge libhsakmt
|
||||
sudo apt purge compute-firmware
|
||||
sudo apt purge $(dpkg -l | grep 'kfd\|rocm' | grep linux | grep -v libc | awk '{print $2}')
|
||||
```
|
||||
|
||||
If possible, we would recommend starting with a fresh OS install.
|
||||
|
||||
#### RPM repository - dnf (yum)
|
||||
|
||||
A dnf (yum) repository is also available for installation of rpm packages.
|
||||
To configure a system to use the ROCm rpm directory create the file
|
||||
/etc/yum.repos.d/rocm.repo with the following contents:
|
||||
|
||||
```shell
|
||||
[remote]
|
||||
|
||||
name=ROCm Repo
|
||||
|
||||
baseurl=http://packages.amd.com/rocm/yum/rpm/
|
||||
|
||||
enabled=1
|
||||
|
||||
gpgcheck=0
|
||||
```
|
||||
Execute the following commands:
|
||||
|
||||
```shell
|
||||
sudo dnf clean all
|
||||
sudo dnf install rocm
|
||||
```
|
||||
|
||||
As with the debian packages, it is possible to install rocm-dev individually.
|
||||
To uninstall the packages execute:
|
||||
|
||||
```shell
|
||||
sudo dnf remove rocm
|
||||
```
|
||||
|
||||
Just like Ubuntu installs, the ROCm kernel must be the default kernel used at boot time.
|
||||
|
||||
#### Manual installation steps for Fedora
|
||||
|
||||
A fully functional Fedora installation requires a few manual steps to properly
|
||||
setup, including:
|
||||
* [Building compatible libc++ and libc++abi libraries for Fedora](https://github.com/RadeonOpenCompute/hcc/wiki#fedora)
|
||||
|
||||
#### Verify installation
|
||||
|
||||
To verify that the ROCm stack completed successfully you can execute to HSA
|
||||
vectory\_copy sample application (we do recommend that you copy it to a
|
||||
separate folder and invoke make therein):
|
||||
|
||||
```shell
|
||||
cd /opt/rocm/hsa/sample
|
||||
make
|
||||
./vector_copy
|
||||
```
|
||||
A repository containing rpm packages is currently not available for the ROCm 1.7 release.
|
||||
|
||||
#### Closed source components
|
||||
The ROCm platform relies on a few closed source components to provide legacy
|
||||
@@ -295,10 +269,10 @@ made available in the following packages:
|
||||
* hsa-ext-rocr-dev
|
||||
|
||||
### Getting ROCm source code
|
||||
Modifications can be made to the ROCm 1.5 components by modifying the open
|
||||
Modifications can be made to the ROCm 1.7 components by modifying the open
|
||||
source code base and rebuilding the components. Source code can be cloned from
|
||||
each of the GitHub repositories using git, or users can use the repo command
|
||||
and the ROCm 1.5 manifest file to download the entire ROCm 1.5 source code.
|
||||
and the ROCm 1.7 manifest file to download the entire ROCm 1.7 source code.
|
||||
|
||||
#### Installing repo
|
||||
Google's repo tool allows you to manage multiple git repositories
|
||||
@@ -313,11 +287,11 @@ Note: make sure ~/bin exists and it is part of your PATH
|
||||
#### Cloning the code
|
||||
```shell
|
||||
mkdir ROCm && cd ROCm
|
||||
repo init -u https://github.com/RadeonOpenCompute/ROCm.git -b roc-1.5.0
|
||||
repo init -u https://github.com/RadeonOpenCompute/ROCm.git -b roc-1.7.2
|
||||
repo sync
|
||||
```
|
||||
These series of commands will pull all of the open source code associated with
|
||||
the ROCm 1.5 release. Please ensure that ssh-keys are configured for the
|
||||
the ROCm 1.7 release. Please ensure that ssh-keys are configured for the
|
||||
target machine on GitHub for your GitHub ID.
|
||||
|
||||
* OpenCL Runtime and Compiler will be submitted to the Khronos Group, prior to
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
<manifest>
|
||||
|
||||
<remote name="roc-github"
|
||||
fetch="ssh://git@github.com/RadeonOpenCompute/" />
|
||||
fetch="http://git@github.com/RadeonOpenCompute/" />
|
||||
<remote name="pctools-github"
|
||||
fetch="ssh://git@github.com/GPUOpen-ProfessionalCompute-Tools/" />
|
||||
fetch="http://git@github.com/GPUOpen-ProfessionalCompute-Tools/" />
|
||||
|
||||
<default revision="roc-1.5.x"
|
||||
<default revision="roc-1.7.x"
|
||||
remote="roc-github"
|
||||
sync-j="4" />
|
||||
|
||||
|
||||
Reference in New Issue
Block a user