From 0c7968fcb839ca44481033bfe892aea600d9bfc9 Mon Sep 17 00:00:00 2001 From: misaka00251 <liuxin@iscas.ac.cn> Date: Thu, 10 Oct 2024 13:12:49 +0800 Subject: [PATCH] Fix build on riscv64 & Fix macro --- Fix-build-on-riscv64.patch | 70 ++++++++++++++++++++++++++++++++++++++ rocblas.spec | 6 ++-- 2 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 Fix-build-on-riscv64.patch diff --git a/Fix-build-on-riscv64.patch b/Fix-build-on-riscv64.patch new file mode 100644 index 0000000..1b21849 --- /dev/null +++ b/Fix-build-on-riscv64.patch @@ -0,0 +1,70 @@ +From 713dbf3170b290cc0aa4f8b3e3b7511d0ae2a4e0 Mon Sep 17 00:00:00 2001 +From: misaka00251 <liuxin@iscas.ac.cn> +Date: Thu, 10 Oct 2024 13:11:53 +0800 +Subject: [PATCH] Fix build on riscv64 + + +diff --git a/clients/benchmarks/CMakeLists.txt b/clients/benchmarks/CMakeLists.txt +index 0bfd30a..e953a97 100644 +--- a/clients/benchmarks/CMakeLists.txt ++++ b/clients/benchmarks/CMakeLists.txt +@@ -97,14 +97,6 @@ if( BUILD_WITH_TENSILE ) + target_link_libraries( rocblas-gemm-tune PRIVATE ${COMMON_LINK_LIBS} ) + endif() + +-if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") +- # GCC or hip-clang needs specific flags to turn on f16c intrinsics +- target_compile_options( rocblas-bench PRIVATE -mf16c ) +- if( BUILD_WITH_TENSILE ) +- target_compile_options( rocblas-gemm-tune PRIVATE -mf16c ) +- endif() +-endif() +- + target_compile_options(rocblas-bench PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${COMMON_CXX_OPTIONS}>) + if( BUILD_WITH_TENSILE ) + target_compile_options(rocblas-gemm-tune PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${COMMON_CXX_OPTIONS}>) +diff --git a/clients/gtest/CMakeLists.txt b/clients/gtest/CMakeLists.txt +index 8352276..3a3f003 100644 +--- a/clients/gtest/CMakeLists.txt ++++ b/clients/gtest/CMakeLists.txt +@@ -165,10 +165,6 @@ else() + endif() + target_link_libraries( rocblas-test PRIVATE ${COMMON_LINK_LIBS} ) + +-if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") +- # GCC or hip-clang needs specific flag to turn on f16c intrinsics +- target_compile_options( rocblas-test PRIVATE -mf16c ) +-endif( ) + target_compile_options(rocblas-test PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${COMMON_CXX_OPTIONS}>) + + target_compile_definitions( rocblas-test PRIVATE ROCM_USE_FLOAT16 ROCBLAS_INTERNAL_API ROCBLAS_NO_DEPRECATED_WARNINGS ) +diff --git a/clients/samples/CMakeLists.txt b/clients/samples/CMakeLists.txt +index 2f6caea..8d09dc9 100644 +--- a/clients/samples/CMakeLists.txt ++++ b/clients/samples/CMakeLists.txt +@@ -115,8 +115,6 @@ foreach( exe ${sample_list_all} ) + ) + + if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") +- # GCC or hip-clang needs specific flags to turn on f16c intrinsics +- target_compile_options( ${exe} PRIVATE -mf16c ) + target_compile_definitions( ${exe} PRIVATE ROCBLAS_INTERNAL_API ) + endif( ) + +diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt +index 90a75dd..cf9a3a5 100755 +--- a/library/CMakeLists.txt ++++ b/library/CMakeLists.txt +@@ -60,9 +60,6 @@ function( rocblas_library_settings lib_target_ ) + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> + ) + +- # GCC or hip-clang needs specific flags to turn on f16c intrinsics +- target_compile_options( ${lib_target_} PRIVATE -mf16c ) +- + # Do not allow Variable Length Arrays (use unique_ptr instead) + target_compile_options( ${lib_target_} PRIVATE -Werror=vla ) + +-- +2.46.2 + diff --git a/rocblas.spec b/rocblas.spec index 8bfc333..d8c9653 100644 --- a/rocblas.spec +++ b/rocblas.spec @@ -33,6 +33,8 @@ Source0: %{url}/archive/refs/tags/rocm-%{rocm_version}.tar.gz#/%{upstream Patch0: 0001-fixup-install-of-tensile-output.patch Patch1: 0001-add-gfx1103-support-for-rocBLAS.patch +Patch1000: Fix-build-on-riscv64.patch + BuildRequires: cmake BuildRequires: git BuildRequires: ninja-build @@ -167,14 +169,14 @@ do -DBUILD_WITH_TENSILE=OFF %endif - %cmake_build + %make_build module purge done %install for gpu in %{rocm_gpu_list} do - %cmake_install + %make_install done %files -- GitLab