@@ -542,16 +542,26 @@ if (LLAMA_VULKAN)
542
542
endif ()
543
543
544
544
if (LLAMA_HIPBLAS )
545
- list ( APPEND CMAKE_PREFIX_PATH /opt/rocm )
546
-
547
- if ( NOT ${CMAKE_C_COMPILER_ID} MATCHES "Clang" )
548
- message ( WARNING "Only LLVM is supported for HIP, hint: CC= /opt/rocm/llvm/bin/clang" )
545
+ if ( $ENV{ROCM_PATH} )
546
+ set ( ROCM_PATH $ENV{ROCM_PATH} )
547
+ else ( )
548
+ set ( ROCM_PATH /opt/rocm )
549
549
endif ()
550
+ list (APPEND CMAKE_PREFIX_PATH ${ROCM_PATH} )
550
551
551
- if (NOT ${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" )
552
- message (WARNING "Only LLVM is supported for HIP, hint: CXX=/opt/rocm/llvm/bin/clang++" )
553
- endif ()
552
+ string (REGEX MATCH "hipcc(\. bat)?$" CXX_IS_HIPCC "${CMAKE_CXX_COMPILER} " )
554
553
554
+ if (CXX_IS_HIPCC AND UNIX )
555
+ message (WARNING "Setting hipcc as the C++ compiler is legacy behavior."
556
+ " Prefer setting the HIP compiler directly. See README for details." )
557
+ else ()
558
+ # Forward AMDGPU_TARGETS to CMAKE_HIP_ARCHITECTURES.
559
+ if (AMDGPU_TARGETS AND NOT CMAKE_HIP_ARCHITECTURES )
560
+ set (CMAKE_HIP_ARCHITECTURES ${AMDGPU_ARGETS} )
561
+ endif ()
562
+ cmake_minimum_required (VERSION 3.21 )
563
+ enable_language (HIP )
564
+ endif ()
555
565
find_package (hip REQUIRED )
556
566
find_package (hipblas REQUIRED )
557
567
find_package (rocblas REQUIRED )
@@ -585,13 +595,18 @@ if (LLAMA_HIPBLAS)
585
595
add_compile_definitions (GGML_CUDA_MMV_Y=${LLAMA_CUDA_MMV_Y} )
586
596
add_compile_definitions (K_QUANTS_PER_ITERATION=${LLAMA_CUDA_KQUANTS_ITER} )
587
597
588
- set_source_files_properties (${GGML_SOURCES_ROCM} PROPERTIES LANGUAGE CXX )
598
+ if (CXX_IS_HIPCC )
599
+ set_source_files_properties (${GGML_SOURCES_ROCM} PROPERTIES LANGUAGE CXX )
600
+ set (LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} hip::device )
601
+ else ()
602
+ set_source_files_properties (${GGML_SOURCES_ROCM} PROPERTIES LANGUAGE HIP )
603
+ endif ()
589
604
590
605
if (LLAMA_STATIC )
591
606
message (FATAL_ERROR "Static linking not supported for HIP/ROCm" )
592
607
endif ()
593
608
594
- set (LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} hip::device PUBLIC hip::host roc::rocblas roc::hipblas )
609
+ set (LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} PUBLIC hip::host roc::rocblas roc::hipblas )
595
610
endif ()
596
611
597
612
if (LLAMA_SYCL )
0 commit comments