list(APPEND GGML_SOURCES_CUDA ${SRCS})
endif()
- add_library(ggml-cuda
- ${GGML_HEADERS_CUDA}
- ${GGML_SOURCES_CUDA}
- )
-
- target_link_libraries(ggml-cuda PRIVATE ggml-base)
- target_include_directories(ggml-cuda PRIVATE . ..)
+ ggml_add_backend_library(ggml-cuda
+ ${GGML_HEADERS_CUDA}
+ ${GGML_SOURCES_CUDA}
+ )
add_compile_definitions(GGML_CUDA_PEER_MAX_BATCH_SIZE=${GGML_CUDA_PEER_MAX_BATCH_SIZE})
message("-- CUDA host compiler is ${CUDA_CCID} ${CUDA_CCVER}")
- get_flags(${CUDA_CCID} ${CUDA_CCVER})
+ ggml_get_flags(${CUDA_CCID} ${CUDA_CCVER})
list(APPEND CUDA_CXX_FLAGS ${CXX_FLAGS} ${GF_CXX_FLAGS}) # This is passed to -Xcompiler later
endif()
if (MUSAToolkit_FOUND)
message(STATUS "MUSA Toolkit found")
+ if (NOT DEFINED MUSA_ARCHITECTURES)
+ set(MUSA_ARCHITECTURES "21;22")
+ endif()
+ message(STATUS "Using MUSA architectures: ${MUSA_ARCHITECTURES}")
+
file(GLOB GGML_HEADERS_MUSA "../ggml-cuda/*.cuh")
list(APPEND GGML_HEADERS_MUSA "../../include/ggml-cuda.h")
set_source_files_properties(${GGML_SOURCES_MUSA} PROPERTIES LANGUAGE CXX)
foreach(SOURCE ${GGML_SOURCES_MUSA})
- set_property(SOURCE ${SOURCE} PROPERTY COMPILE_FLAGS "-x musa -mtgpu --cuda-gpu-arch=mp_21 --cuda-gpu-arch=mp_22")
+ set(COMPILE_FLAGS "-x musa -mtgpu")
+ foreach(ARCH ${MUSA_ARCHITECTURES})
+ set(COMPILE_FLAGS "${COMPILE_FLAGS} --cuda-gpu-arch=mp_${ARCH}")
+ endforeach()
+ set_property(SOURCE ${SOURCE} PROPERTY COMPILE_FLAGS ${COMPILE_FLAGS})
endforeach()
- add_library(ggml-musa
- ${GGML_HEADERS_MUSA}
- ${GGML_SOURCES_MUSA})
-
- target_link_libraries(ggml-musa PRIVATE ggml-base)
- target_include_directories(ggml-musa PRIVATE . ..)
+ ggml_add_backend_library(ggml-musa
+ ${GGML_HEADERS_MUSA}
+ ${GGML_SOURCES_MUSA}
+ )
# TODO: do not use CUDA definitions for MUSA
target_compile_definitions(ggml PUBLIC GGML_USE_CUDA)