@@ -103,6 +103,8 @@ set(LLAMA_CUDA_KQUANTS_ITER "2" CACHE STRING "llama: iters./thread per block for
103
103
set (LLAMA_CUDA_PEER_MAX_BATCH_SIZE "128" CACHE STRING
104
104
"llama: max. batch size for using peer access" )
105
105
option (LLAMA_CUDA_NO_PEER_COPY "llama: do not use peer to peer copies" OFF )
106
+ option (LLAMA_CUDA_NO_VMM "llama: do not try to use CUDA VMM" OFF )
107
+
106
108
option (LLAMA_CURL "llama: use libcurl to download model from an URL" OFF )
107
109
option (LLAMA_HIPBLAS "llama: use hipBLAS" OFF )
108
110
option (LLAMA_HIP_UMA "llama: use HIP unified memory architecture" OFF )
@@ -409,6 +411,9 @@ if (LLAMA_CUDA)
409
411
if (LLAMA_CUDA_FORCE_MMQ)
410
412
add_compile_definitions (GGML_CUDA_FORCE_MMQ)
411
413
endif ()
414
+ if (LLAMA_CUDA_NO_VMM)
415
+ add_compile_definitions (GGML_CUDA_NO_VMM)
416
+ endif ()
412
417
add_compile_definitions (GGML_CUDA_DMMV_X=${LLAMA_CUDA_DMMV_X} )
413
418
add_compile_definitions (GGML_CUDA_MMV_Y=${LLAMA_CUDA_MMV_Y} )
414
419
if (DEFINED LLAMA_CUDA_DMMV_Y)
@@ -434,7 +439,11 @@ if (LLAMA_CUDA)
434
439
set (LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} CUDA::cudart CUDA::cublas CUDA::cublasLt)
435
440
endif ()
436
441
437
- set (LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} CUDA::cuda_driver)
442
+ if (LLAMA_CUDA_NO_VMM)
443
+ # No VMM requested, no need to link directly with the cuda driver lib (libcuda.so)
444
+ else ()
445
+ set (LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} CUDA::cuda_driver) # required by cuDeviceGetAttribute(), cuMemGetAllocationGranularity(...), ...
446
+ endif ()
438
447
439
448
if (NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
440
449
# 52 == lowest CUDA 12 standard
0 commit comments