1. Prerequisites
- Install ROCm
2. Download Sources
$ git clone --recursive git@github.com:ROCm/rocBLAS.git
# Alternative: git clone --recursive https://github.com/ROCm/rocBLAS.git
cd rocBLAS
git checkout rocm-6.0.2

3. Build Debug Version
$ conda deactivate
$ conda deactivate
$ conda deactivate
Enable CMake variables to show build command details:
export CXX=/opt/rocm/bin/hipcc \
&& cmake -DCMAKE_INSTALL_PREFIX=../../../local_d_noT_906_908_1030/rocblas/ \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_RULE_MESSAGES:BOOL=OFF \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_Fortran_COMPILER="gfortran" \
-DBUILD_CLIENTS_TESTS:BOOL=ON \
-DBUILD_CLIENTS_BENCHMARKS:BOOL=ON \
-DBUILD_CLIENTS_SAMPLES:BOOL=ON \
-DBUILD_WITH_TENSILE=OFF \
../../
$ make -j
Build result:

Simplified version (only verbose output):
export CXX=/opt/rocm/bin/hipcc \
&& cmake -DCMAKE_INSTALL_PREFIX=../../../local_d_cmake/rocblas/ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_VERBOSE_MAKEFILE=ON ../../
Sample compilation command for a single .cpp file:
/opt/rocm/bin/hipcc \
-DROCBLAS_BETA_FEATURES_API \
-DROCBLAS_INTERNAL_API \
-DROCM_USE_FLOAT16 \
-DUSE_PROF_API=1 \
-D__HIP_PLATFORM_AMD__=1 \
-D__STDC_WANT_IEC_60559_TYPES_EXT__ \
-Drocblas_EXPORTS \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/library/include \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/library/include/internal \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/library/src/include \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/build_no_ten_cmake/debug/include/rocblas/internal \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/build_no_ten_cmake/debug/include/rocblas \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/build_no_ten_cmake/debug/include \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/library/src/blas3/Tensile \
-D__HIP_HCC_COMPAT_MODE__=1 \
-O1 -g -gz -ggdb \
-std=c++17 \
-fPIC \
-fvisibility=hidden \
-fvisibility-inlines-hidden \
-Wno-unused-result \
-mf16c \
-Werror=vla \
-x hip \
--offload-arch=gfx900 \
--offload-arch=gfx906:xnack- \
--offload-arch=gfx908:xnack- \
--offload-arch=gfx90a:xnack+ \
--offload-arch=gfx90a:xnack- \
--offload-arch=gfx940 \
--offload-arch=gfx941 \
--offload-arch=gfx942 \
--offload-arch=gfx1010 \
--offload-arch=gfx1012 \
--offload-arch=gfx1030 \
--offload-arch=gfx1100 \
--offload-arch=gfx1101 \
--offload-arch=gfx1102 \
-MD -MT library/src/CMakeFiles/rocblas.dir/blas_ex/rocblas_axpy_ex.cpp.o \
-MF CMakeFiles/rocblas.dir/blas_ex/rocblas_axpy_ex.cpp.o.d \
-o CMakeFiles/rocblas.dir/blas_ex/rocblas_axpy_ex.cpp.o \
-c /home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/library/src/blas_ex/rocblas_axpy_ex.cpp
Modify CMakeLists.txt to Build Only for gfx906 and gfx941 Architectures
export CXX=/opt/rocm/bin/hipcc \
&& cmake -DCMAKE_INSTALL_PREFIX=../../../local_d_notensile_906_941/rocblas/ \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_RULE_MESSAGES:BOOL=OFF \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
../../
4. Build Release Version
export CXX=/opt/rocm/bin/hipcc \
&& cmake -DCMAKE_INSTALL_PREFIX=../../../local_d_cmake/rocblas/ -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON ../../
Sample compilation command for a release build:
/opt/rocm/bin/hipcc \
-DROCBLAS_BETA_FEATURES_API \
-DROCBLAS_INTERNAL_API \
-DROCM_USE_FLOAT16 \
-DUSE_PROF_API=1 \
-D__HIP_PLATFORM_AMD__=1 \
-D__STDC_WANT_IEC_60559_TYPES_EXT__ \
-Drocblas_EXPORTS \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/library/include \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/library/include/internal \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/library/src/include \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/build_no_ten_cmake/release/include/rocblas/internal \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/build_no_ten_cmake/release/include/rocblas \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/build_no_ten_cmake/release/include \
-I/home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/library/src/blas3/Tensile \
-D__HIP_HCC_COMPAT_MODE__=1 \
-O3 \
-DNDEBUG \
-std=c++17 \
-fPIC \
-fvisibility=hidden \
-fvisibility-inlines-hidden \
-Wno-unused-result \
-mf16c \
-Werror=vla \
-x hip \
--offload-arch=gfx900 \
--offload-arch=gfx906:xnack- \
--offload-arch=gfx908:xnack- \
--offload-arch=gfx90a:xnack+ \
--offload-arch=gfx90a:xnack- \
--offload-arch=gfx940 \
--offload-arch=gfx941 \
--offload-arch=gfx942 \
--offload-arch=gfx1010 \
--offload-arch=gfx1012 \
--offload-arch=gfx1030 \
--offload-arch=gfx1100 \
--offload-arch=gfx1101 \
--offload-arch=gfx1102 \
-MD -MT library/src/CMakeFiles/rocblas.dir/blas_ex/rocblas_nrm2_batched_ex.cpp.o \
-MF CMakeFiles/rocblas.dir/blas_ex/rocblas_nrm2_batched_ex.cpp.o.d \
-o CMakeFiles/rocblas.dir/blas_ex/rocblas_nrm2_batched_ex.cpp.o \
-c /home/hipper/rocsolver_on_nv_ex/icla_blas/rocBLAS/library/src/blas_ex/rocblas_nrm2_batched_ex.cpp