Update README.md
Describe the new build process, build dependencies, and usage.
Also remove some old known issues.
Change-Id: Iec85db378442e3e0ca091d551a42a40e6549ddb3
[ROCm/ROCR-Runtime commit: cd26cbbe5f]
This commit is contained in:
@@ -41,19 +41,56 @@ can be obtained from the ROCT-Thunk-Interface repository, available here:
|
|||||||
|
|
||||||
https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface
|
https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface
|
||||||
|
|
||||||
Specify the directory containing libhsakmt.so.1 and hsakmt.h using the cmake variables, HSAKMT_LIB_PATH and HSAKMT_INC_PATH. These can be specified either on the command line
|
As of ROCm release 3.7 libhsakmt development packages now include a cmake
|
||||||
or via standard cmake configuration tools such as ccmake or cmake-gui.
|
package config file. The runtime will now locate libhsakmt via find_package if
|
||||||
|
libhsakmt is installed to a standard location. For installations that do not
|
||||||
|
use ROCm standard paths set cmake variables CMAKE_PREFIX_PATH or hsakmt_DIR to
|
||||||
|
override find_package search paths.
|
||||||
|
|
||||||
For example, from the top level ROCR repository execute:
|
As of ROCm release 3.7 the runtime includes an optional image support module
|
||||||
|
(previously hsa-ext-rocr-dev). By default this module is included in builds of
|
||||||
|
the runtime. The image module may be excluded the runtime by setting
|
||||||
|
cmake variable IMAGE_SUPPORT to OFF.
|
||||||
|
|
||||||
|
When building the optional image module additional build dependencies are
|
||||||
|
required. An amdgcn compatible clang and device library must be installed
|
||||||
|
to build the image module. The latest version of these requirements can be
|
||||||
|
obtained from the ROCm package repository
|
||||||
|
(see: https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html)
|
||||||
|
The latest source for these projects may be found here:
|
||||||
|
|
||||||
|
https://github.com/RadeonOpenCompute/llvm-project
|
||||||
|
|
||||||
|
https://github.com/RadeonOpenCompute/ROCm-Device-Libs
|
||||||
|
|
||||||
|
Additionally xxd must be installed.
|
||||||
|
|
||||||
|
The runtime optionally supports use of the cmake user package registry. By
|
||||||
|
default the registry is not modified. Set cmake variable
|
||||||
|
EXPORT_TO_USER_PACKAGE_REGISTRY to ON to enable updating the package registry.
|
||||||
|
|
||||||
|
For example, to build, install, and produce packages on a system with standard
|
||||||
|
ROCm packages installed, execute the following from src/:
|
||||||
|
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
cmake -DHSAKMT_INC_PATH:STRING=<path to directory holding hsakmt.h> \
|
cmake -DCMAKE_INSTALL_PATH=/opt/rocm ..
|
||||||
-DHSAKMT_LIB_PATH:STRING=<path to directory holding libhsakmt.so.1> \
|
|
||||||
..
|
|
||||||
make
|
make
|
||||||
|
make install
|
||||||
alternately using ccmake:
|
make package
|
||||||
|
|
||||||
|
Example with a custom installation path, build dependency path, and options:
|
||||||
|
|
||||||
|
...
|
||||||
|
cmake -DIMAGE_SUPPORT=OFF \
|
||||||
|
-DEXPORT_TO_USER_PACKAGE_REGISTRY=ON \
|
||||||
|
-DCMAKE_VERBOSE_MAKEFILE=1 \
|
||||||
|
-DCMAKE_PREFIX_PATH=<alternate path(s) to build dependencies> \
|
||||||
|
-DCMAKE_INSTALL_PATH=<custom install path for this build> \
|
||||||
|
..
|
||||||
|
...
|
||||||
|
|
||||||
|
Alternately ccmake and cmake-gui are supported:
|
||||||
|
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
@@ -64,6 +101,21 @@ alternately using ccmake:
|
|||||||
press g to generate and exit
|
press g to generate and exit
|
||||||
make
|
make
|
||||||
|
|
||||||
|
#### Building against the runtime
|
||||||
|
|
||||||
|
The runtime provides a cmake package config file, installed by default to
|
||||||
|
/opt/rocm/lib/cmake/hsa-runtime64. The runtime exports cmake target
|
||||||
|
hsa-runtime64 in namespace hsa-runtime64. A cmake project (Foo) using the
|
||||||
|
runtime may locate, include, and link the runtime with the following template:
|
||||||
|
|
||||||
|
Add /opt/rocm to CMAKE_PREFIX_PATH.
|
||||||
|
|
||||||
|
find_package(hsa-runtime64::hsa-runtime64 1.0 REQUIRED)
|
||||||
|
...
|
||||||
|
add_library(Foo ...)
|
||||||
|
...
|
||||||
|
target_link_library(Foo PRIVATE hsa-runtime64::hsa-runtime64)
|
||||||
|
|
||||||
#### Specs
|
#### Specs
|
||||||
|
|
||||||
http://www.hsafoundation.com/standards/
|
http://www.hsafoundation.com/standards/
|
||||||
@@ -147,9 +199,7 @@ The device specific layer contains implementations of the C++ interface classes
|
|||||||
|
|
||||||
#### Known Issues
|
#### Known Issues
|
||||||
|
|
||||||
* Max total coarse grain region limit is 8GB.
|
|
||||||
* hsa_agent_get_exception_policies is not implemented.
|
* hsa_agent_get_exception_policies is not implemented.
|
||||||
* Image import/export/copy/fill only support image created with memory from host accessible region.
|
|
||||||
* hsa_system_get_extension_table is not implemented for HSA_EXTENSION_AMD_PROFILER.
|
* hsa_system_get_extension_table is not implemented for HSA_EXTENSION_AMD_PROFILER.
|
||||||
|
|
||||||
#### Disclaimer
|
#### Disclaimer
|
||||||
|
|||||||
Reference in New Issue
Block a user