option(GGML_PERF "ggml: enable perf timings" OFF)
option(GGML_NO_ACCELERATE "ggml: disable Accelerate framework" OFF)
+option(GGML_OPENBLAS "ggml: use OpenBLAS" OFF)
+option(GGML_CUBLAS "ggml: use cuBLAS" OFF)
# sanitizers
| GPT-J | 6B | 125 ms |
For more information, checkout the corresponding programs in the [examples](examples) folder.
+
+## Using cuBLAS
+
+```bash
+# fix the path to point to your CUDA compiler
+cmake -DGGML_CUBLAS=ON -DCMAKE_CUDA_COMPILER=/usr/local/cuda-12.1/bin/nvcc ..
+```
endif()
endif()
+if (GGML_CUBLAS)
+ cmake_minimum_required(VERSION 3.17)
+
+ find_package(CUDAToolkit)
+ if (CUDAToolkit_FOUND)
+ message(STATUS "cuBLAS found")
+
+ enable_language(CUDA)
+
+ set(GGML_CUDA_SOURCES ggml-cuda.cu ggml-cuda.h)
+
+ add_compile_definitions(GGML_USE_CUBLAS)
+
+ if (GGML_STATIC)
+ set(GGML_EXTRA_LIBS ${GGML_EXTRA_LIBS} CUDA::cudart_static CUDA::cublas_static CUDA::cublasLt_static)
+ else()
+ set(GGML_EXTRA_LIBS ${GGML_EXTRA_LIBS} CUDA::cudart CUDA::cublas CUDA::cublasLt)
+ endif()
+
+ else()
+ message(WARNING "cuBLAS not found")
+ endif()
+endif()
+
+
if (GGML_PERF)
set(GGML_EXTRA_FLAGS ${GGML_EXTRA_FLAGS} -DGGML_PERF)
endif()
add_library(${TARGET}
ggml.c
- )
+ ../include/ggml/ggml.h
+ ${GGML_CUDA_SOURCES})
target_include_directories(${TARGET} PUBLIC
.
)
endif()
+if (GGML_CUDA_SOURCES)
+ message(STATUS "GGML CUDA sources found, configuring CUDA architecture")
+ set_property(TARGET ggml PROPERTY CUDA_ARCHITECTURES OFF)
+ set_property(TARGET ggml PROPERTY CUDA_SELECT_NVCC_ARCH_FLAGS "Auto")
+ target_link_libraries(ggml PUBLIC stdc++)
+endif()
+
install(TARGETS ${TARGET}
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib/static