Skip to content

ROCm/rocm-core

Repository files navigation

ROCM-CORE Introduction

ROCM-CORE is a package which can be used to get ROCm release version, get ROCm install path information etc. It is also important to note that ROCM-CORE takes the role as a base component on which all of ROCm can depend, to make it easy to remove all of ROCm with a package manager.

getROCmVersion function provides the ROCm version.

It also provides an example Lmod modules files for the ROCm release.

Lmod module files can be loaded with the following commands.

module load rocm/x.y or 
module load rocm

You can find sources and binaries in our GitHub repository.

Note

As with all ROCm projects, the documentation is open source. For more information, see Contribute to ROCm documentation.

Installing ROCM-CORE

Before we proceed with how to install, take a look on references given below to understand System requirements, ROCm Installation prerequisites, ROCm package repository set up etc.

Prerequisite References

Installing with pre-built packages

You can install ROCM-CORE on Ubuntu using

apt-get install rocm-core

Building ROCM-CORE from source

You can build ROCM-CORE form source

First, get the sources from repository.

  git clone https://github.com/ROCm/rocm-core.git

Go to Root Directory, create a build directory:

  cd rocm-core; mkdir build; cd build

Next, configure CMake. Invoke cmake with the following variables define as deemed fit

cmake -S $PWD/../ -B . \
    -DCMAKE_VERBOSE_MAKEFILE=1 \
    -DCMAKE_INSTALL_PREFIX=./ \
    -DROCM_VERSION="6.4.0" \
    ..

Note

When specifying the path for the CMAKE_PREFIX_PATH variable, do not use the tilde (~) shorthand to represent the home directory.

Setting up install locations

By default, the install location is set to /opt/rocm. You can change this using CMAKE_INSTALL_PREFIX:

cmake -DCMAKE_INSTALL_PREFIX=<rocm-core-install-path> ..

where rocm-core-install-path is "./" in the cmake configure command shared above.

Install

Once cmake configuration successfully completed, from the same build directory run build, install targets

cmake --build . --
cmake --build . -- install

Package Generated

Once cmake configuration and build successfully completed from the same build directory trigger package generation

cmake --build . -- package

Once successfull execution of above command "rocm-core" RPM/DEBIAN packages will be generated (ex:rocm-core_6.4.0.60400-22.04_amd64.deb, rocm-core-6.4.0.60400-x86_64.rpm). The contents of the "rocm-core" package will include the following files:

Debian Package Sample:
$ dpkg -I rocm-core_6.4.0.60400-crdnnh.15158~22.04_amd64.deb
 new debian package, version 2.0.
 size 13986 bytes: control archive=2083 bytes.
     305 bytes,    10 lines      control
     917 bytes,    11 lines      md5sums
    2871 bytes,    75 lines   *  postinst             #!/bin/bash
     873 bytes,    32 lines   *  prerm                #!/bin/bash
 Architecture: amd64
 Description: Radeon Open Compute (ROCm) Runtime software stack
 Homepage: https://github.com/RadeonOpenCompute/ROCm
 Maintainer: ROCm Dev Support <[email protected]>
 Package: rocm-core
 Priority: optional
 Section: devel
 Version: 6.4.0.60400-crdnnh.15158~22.04
 Installed-Size: 125

$ dpkg -c rocm-core_6.4.0.60400-crdnnh.15158~22.04_amd64.deb
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/.info/
-rw-r--r-- root/root        12 2024-11-22 10:37 ./opt/rocm-6.4.0/.info/version
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/include/
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/include/rocm-core/
-rw-r--r-- root/root      2801 2024-11-22 10:37 ./opt/rocm-6.4.0/include/rocm-core/rocm_getpath.h
-rw-r--r-- root/root      2440 2024-11-22 10:37 ./opt/rocm-6.4.0/include/rocm-core/rocm_version.h
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/lib/
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/lib/cmake/
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/lib/cmake/rocm-core/
-rw-r--r-- root/root      2878 2024-11-22 10:37 ./opt/rocm-6.4.0/lib/cmake/rocm-core/rocm-core-config-version.cmake
-rw-r--r-- root/root      1590 2024-11-22 10:37 ./opt/rocm-6.4.0/lib/cmake/rocm-core/rocm-core-config.cmake
-rw-r--r-- root/root       842 2024-11-22 10:37 ./opt/rocm-6.4.0/lib/cmake/rocm-core/rocmCoreTargets-release.cmake
-rw-r--r-- root/root      3774 2024-11-22 10:37 ./opt/rocm-6.4.0/lib/cmake/rocm-core/rocmCoreTargets.cmake
lrwxrwxrwx root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/lib/librocm-core.so -> librocm-core.so.1
lrwxrwxrwx root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/lib/librocm-core.so.1 -> librocm-core.so.1.0.60400
-rw-r--r-- root/root     16640 2024-11-22 10:37 ./opt/rocm-6.4.0/lib/librocm-core.so.1.0.60400
-rw-r--r-- root/root       550 2024-11-22 10:37 ./opt/rocm-6.4.0/lib/rocmmod
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/libexec/
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/libexec/rocm-core/
-rw-r--r-- root/root      8208 2024-11-22 10:34 ./opt/rocm-6.4.0/libexec/rocm-core/runpath_to_rpath.py
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/share/
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/share/doc/
drwxr-xr-x root/root         0 2024-11-22 10:37 ./opt/rocm-6.4.0/share/doc/rocm-core/
-rw-r--r-- root/root      1113 2024-11-22 10:34 ./opt/rocm-6.4.0/share/doc/rocm-core/LICENSE.txt

RPM Package Sample:
$ rpm -qip rocm-core-6.4.0.60400-crdnnh.15158.el8.x86_64.rpm
Name        : rocm-core
Version     : 6.4.0.60400
Release     : crdnnh.15158.el8
Architecture: x86_64
Install Date: (not installed)
Group       : unknown
Size        : 37096
License     : MIT
Signature   : (none)
Source RPM  : rocm-core-6.4.0.60400-crdnnh.15158.el8.src.rpm
Build Date  : Fri 22 Nov 2024 10:41:01 AM PST
Build Host  : 514dbdf6c195
Relocations : /opt/rocm-6.4.0
Vendor      : Advanced Micro Devices, Inc.
Summary     : Radeon Open Compute (ROCm) Runtime software stack
Description :
DESCRIPTION
===========

This is an installer created using CPack (https://cmake.org). No additional installation instructions provided.
$ rpm -qlp rocm-core-6.4.0.60400-crdnnh.15158.el8.x86_64.rpm
/opt/rocm-6.4.0
/opt/rocm-6.4.0/.info
/opt/rocm-6.4.0/.info/version
/opt/rocm-6.4.0/include
/opt/rocm-6.4.0/include/rocm-core
/opt/rocm-6.4.0/include/rocm-core/rocm_getpath.h
/opt/rocm-6.4.0/include/rocm-core/rocm_version.h
/opt/rocm-6.4.0/lib
/opt/rocm-6.4.0/lib/cmake
/opt/rocm-6.4.0/lib/cmake/rocm-core
/opt/rocm-6.4.0/lib/cmake/rocm-core/rocm-core-config-version.cmake
/opt/rocm-6.4.0/lib/cmake/rocm-core/rocm-core-config.cmake
/opt/rocm-6.4.0/lib/cmake/rocm-core/rocmCoreTargets-release.cmake
/opt/rocm-6.4.0/lib/cmake/rocm-core/rocmCoreTargets.cmake
/opt/rocm-6.4.0/lib/librocm-core.so
/opt/rocm-6.4.0/lib/librocm-core.so.1
/opt/rocm-6.4.0/lib/librocm-core.so.1.0.60400
/opt/rocm-6.4.0/lib/rocmmod
/opt/rocm-6.4.0/libexec
/opt/rocm-6.4.0/libexec/rocm-core
/opt/rocm-6.4.0/libexec/rocm-core/runpath_to_rpath.py
/opt/rocm-6.4.0/share
/opt/rocm-6.4.0/share/doc
/opt/rocm-6.4.0/share/doc/rocm-core
/opt/rocm-6.4.0/share/doc/rocm-core/LICENSE.txt

ROCM-CORE Library

ROCM-CORE Library generated will be found in lib directory of the rocm-core package generated.

find . -name "librocm-core.so.*"

Sample Usage of APIs provided by rocm-core Library

Get ROCm Version

For getting ROCm Version make use of getROCMVersion() API. Sample Usage Example as shown below.

//  Usage :
 int mj=0,mn=0,p=0,ret=0;
 ret=getROCMVersion(&mj,&mn,&p);
 if(ret !=VerSuccess )  // error occured