|
|
@@ -103,6 +103,8 @@ set(LLAMA_CUDA_KQUANTS_ITER "2" CACHE STRING "llama: iters./thread per block for
|
|
|
set(LLAMA_CUDA_PEER_MAX_BATCH_SIZE "128" CACHE STRING
|
|
|
"llama: max. batch size for using peer access")
|
|
|
option(LLAMA_CUDA_NO_PEER_COPY "llama: do not use peer to peer copies" OFF)
|
|
|
+option(LLAMA_CUDA_NO_VMM "llama: do not try to use CUDA VMM" OFF)
|
|
|
+
|
|
|
option(LLAMA_CURL "llama: use libcurl to download model from an URL" OFF)
|
|
|
option(LLAMA_HIPBLAS "llama: use hipBLAS" OFF)
|
|
|
option(LLAMA_HIP_UMA "llama: use HIP unified memory architecture" OFF)
|
|
|
@@ -409,6 +411,9 @@ if (LLAMA_CUDA)
|
|
|
if (LLAMA_CUDA_FORCE_MMQ)
|
|
|
add_compile_definitions(GGML_CUDA_FORCE_MMQ)
|
|
|
endif()
|
|
|
+ if (LLAMA_CUDA_NO_VMM)
|
|
|
+ add_compile_definitions(GGML_CUDA_NO_VMM)
|
|
|
+ endif()
|
|
|
add_compile_definitions(GGML_CUDA_DMMV_X=${LLAMA_CUDA_DMMV_X})
|
|
|
add_compile_definitions(GGML_CUDA_MMV_Y=${LLAMA_CUDA_MMV_Y})
|
|
|
if (DEFINED LLAMA_CUDA_DMMV_Y)
|
|
|
@@ -434,7 +439,11 @@ if (LLAMA_CUDA)
|
|
|
set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} CUDA::cudart CUDA::cublas CUDA::cublasLt)
|
|
|
endif()
|
|
|
|
|
|
- set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} CUDA::cuda_driver)
|
|
|
+ if (LLAMA_CUDA_NO_VMM)
|
|
|
+ # No VMM requested, no need to link directly with the cuda driver lib (libcuda.so)
|
|
|
+ else()
|
|
|
+ set(LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} CUDA::cuda_driver) # required by cuDeviceGetAttribute(), cuMemGetAllocationGranularity(...), ...
|
|
|
+ endif()
|
|
|
|
|
|
if (NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
|
|
|
# 52 == lowest CUDA 12 standard
|