CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
127 lines
5.4 KiB
ReStructuredText
127 lines
5.4 KiB
ReStructuredText
.. highlight:: rst
|
|
.. |project_name| replace:: rocBLAS
|
|
|
|
==============
|
|
|project_name|
|
|
==============
|
|
|
|
-----------------
|
|
Quick Start Guide
|
|
-----------------
|
|
|
|
This section describes how to configure and build the |project_name| project. We assume the user has a
|
|
ROCm installation, Python 3.8 or newer and CMake 3.25.2 or newer.
|
|
|
|
The |project_name| project consists of three components:
|
|
|
|
1. **|project_name| library**: The main library providing the rocBLAS host API and non-GEMM device kernels.
|
|
Build system files are currently located in the ``library`` subdirectory, though this location is
|
|
expected to change in the future to better reflect the library's nature.
|
|
2. **GEMM device libraries**: Generated by Tensile, these libraries contain the GEMM device kernels. Build
|
|
system files are added as a subdirectory pointing to Tensile. While ``find_package`` support is currently
|
|
enabled, it is expected to be removed in the future to allow only super-build consumption via ``add_subdirectory``.
|
|
3. **Client applications**: Provides testing, benchmarking, and sample applications. Build system files are
|
|
located in the ``client`` subdirectory.
|
|
|
|
^^^^^^^^^^^^^^^^^^^
|
|
Configure and build
|
|
^^^^^^^^^^^^^^^^^^^
|
|
|
|
|project_name| provides modern CMake support and relies on native CMake fnuctionality with exception of
|
|
some project specific options. As such, users are advised to refer to the CMake documentation for
|
|
general usage questions. Below are usage examples to get started. For details on all configuration
|
|
options see the options section.
|
|
|
|
Full build of |project_name|
|
|
-----------------------
|
|
|
|
.. code-block:: cmake
|
|
:linenos:
|
|
|
|
cd rocBLAS/next-cmake
|
|
# configure
|
|
cmake -B build \
|
|
-S . \
|
|
-D CMAKE_CXX_COMPILER=/opt/rocm/bin/amdclang++ \
|
|
-D CMAKE_C_COMPILER=/opt/rocm/bin/amdclang \
|
|
-D CMAKE_BUILD_TYPE=Release \
|
|
-D CMAKE_PREFIX_PATH=/opt/rocm \
|
|
-D GPU_TARGETS=gfx90a
|
|
# build
|
|
cmake --build build --parallel 32
|
|
|
|
Building device libraries
|
|
-------------------------
|
|
.. code-block:: cmake
|
|
:linenos:
|
|
|
|
cd rocBLAS/next-cmake
|
|
# configure
|
|
cmake -B build \
|
|
-S . \
|
|
-D CMAKE_CXX_COMPILER=/opt/rocm/bin/amdclang++ \
|
|
-D CMAKE_C_COMPILER=/opt/rocm/bin/amdclang \
|
|
-D CMAKE_BUILD_TYPE=Release \
|
|
-D CMAKE_PREFIX_PATH=/opt/rocm \
|
|
-D GPU_TARGETS=gfx90a \
|
|
-D ROCBLAS_ENABLE_TENSILE=ON \
|
|
-D ROCBLAS_ENABLE_CLIENT=OFF
|
|
# build
|
|
cmake --build build --parallel 32
|
|
|
|
.. tip::
|
|
**For Developers**
|
|
|
|
View debugging info by adding ``--log-level=VERBOSE`` to the configure command.
|
|
|
|
|
|
Options
|
|
-------
|
|
|
|
*CMake options*:
|
|
|
|
* ``CMAKE_BUILD_TYPE``: Any of Release, Debug, RelWithDebInfo, MinSizeRel
|
|
* ``CMAKE_INSTALL_PREFIX``: Base installation directory (defaults to ``/opt/rocm`` on Linux, ``C:/hipSDK`` on Windows)
|
|
* ``CMAKE_PREFIX_PATH``: Find package search path (consider setting to ``$ROCM_PATH``)
|
|
* ``CMAKE_EXPORT_COMPILE_COMMANDS``: Export compile_commands.json for clang tooling support (default: ``ON``)
|
|
|
|
*Superbuild options*:
|
|
|
|
* ``BUILD_SHARED_LIBS``: Build the rocBLAS shared or static library (default: ``ON``)
|
|
* ``BUILD_TESTING``: Build test client (default: ``ON``)
|
|
* ``BUILD_CODE_COVERAGE``: Build tests with coverage support (default: ``OFF``)
|
|
|
|
*Project wide options*:
|
|
|
|
* ``ROCBLAS_ENABLE_TENSILE``: Enables generation of device libraries (default: ``ON``)
|
|
* ``ROCBLAS_ENABLE_CLIENT``: Enables generation of client applications (default: ``ON``)
|
|
* ``ROCBLAS_ENABLE_ASAN``: Build with address sanitizer enabled (default: ``OFF``)
|
|
* ``ROCBLAS_BUILD_COVERAGE``: Build tests with coverage support (default: ``OFF``)
|
|
|
|
*rocBLAS library options*:
|
|
|
|
* ``ROCBLAS_BUILD_SHARED_LIBS``: Build the |project_name| shared or static library (default: same as ``BUILD_SHARED_LIBS``)
|
|
* ``ROCBLAS_ENABLE_TENSILE``: Build |project_name| library with Tensile backend (default: ``ON``)
|
|
* ``ROCBLAS_ENABLE_HIPBLASLT``: Build |project_name| library with hipBLASLt backend (default: ``ON``)
|
|
* ``ROCBLAS_ENABLE_BLIS``: Enable BLIS support (default: ``ON``)
|
|
* ``ROCBLAS_ENABLE_MARKER``: Enable rocTracer marker support (default: ``OFF``)
|
|
* ``ROCBLAS_CONFIG_DIR``: Path placed into ldconfig file (default: ``${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}``)
|
|
|
|
*Tensile device libraries options*:
|
|
|
|
* ``ROCBLAS_TENSILE_SUBDIR_PATH``: Path to Tensile subdirectory (default: ``${CMAKE_CURRENT_SOURCE_DIR}/../../Tensile``)
|
|
* ``ROCBLAS_TENSILE_INSTALL_DIR``: Path to tensile library (default: ``${CPACK_PACKAGING_INSTALL_PREFIX}${CMAKE_INSTALL_LIBDIR}/rocblas`` on Linux, ``${CPACK_PACKAGING_INSTALL_PREFIX}rocblas/bin`` on Windows)
|
|
|
|
*Client options*:
|
|
|
|
* ``ROCBLAS_BUILD_TESTING``: Build test client (default: same as ``BUILD_TESTING``)
|
|
* ``ROCBLAS_ENABLE_BENCHMARKS``: Build benchmark client (default: ``ON``)
|
|
* ``ROCBLAS_ENABLE_SAMPLES``: Build client samples (default: ``ON``)
|
|
* ``ROCBLAS_ENABLE_FORTRAN``: Build Fortran clients (default: ``OFF``)
|
|
* ``ROCBLAS_REQUIRE_ROCM_SMI``: Require rocm_smi (default: ``ON`` on Linux, ``OFF`` on Windows)
|
|
|
|
CMake Targets
|
|
-------------
|
|
|
|
* ``roc::rocblas``
|