diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1b42846fb..393559cac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -207,6 +207,7 @@ jobs: UBUNTU_VERSION=24.04 CUDA_ARCHITECTURES=121 GGML_CUDA_FA_ALL_QUANTS=ON + GGML_CUDA_ENABLE_DYNAMIC_CPU_BACKENDS=OFF env: REGISTRY: ghcr.io diff --git a/Dockerfile.cuda b/Dockerfile.cuda index 33e66426f..3e51bda60 100644 --- a/Dockerfile.cuda +++ b/Dockerfile.cuda @@ -23,18 +23,27 @@ COPY . . ARG CUDACXX=/usr/local/cuda/bin/nvcc ARG CUDA_ARCHITECTURES="" ARG GGML_CUDA_FA_ALL_QUANTS="" - -RUN cmake . -B ./build \ - -DSD_CUDA=ON \ - -DSD_BUILD_SHARED_LIBS=ON \ - -DGGML_NATIVE=OFF \ - -DSD_BUILD_SHARED_GGML_LIB=ON \ - -DGGML_BACKEND_DL=ON \ - -DGGML_CPU_ALL_VARIANTS=ON \ - -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ - -DCMAKE_INSTALL_RPATH='$ORIGIN' \ - ${CUDA_ARCHITECTURES:+-DCMAKE_CUDA_ARCHITECTURES="${CUDA_ARCHITECTURES}"} \ - ${GGML_CUDA_FA_ALL_QUANTS:+-DGGML_CUDA_FA_ALL_QUANTS=${GGML_CUDA_FA_ALL_QUANTS}} +ARG GGML_CUDA_ENABLE_DYNAMIC_CPU_BACKENDS=ON + +RUN set -- \ + -DSD_CUDA=ON; \ + if [ "${GGML_CUDA_ENABLE_DYNAMIC_CPU_BACKENDS}" = "ON" ]; then \ + set -- "$@" \ + -DSD_BUILD_SHARED_LIBS=ON \ + -DGGML_NATIVE=OFF \ + -DSD_BUILD_SHARED_GGML_LIB=ON \ + -DGGML_BACKEND_DL=ON \ + -DGGML_CPU_ALL_VARIANTS=ON \ + -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ + "-DCMAKE_INSTALL_RPATH=\$ORIGIN"; \ + fi; \ + if [ -n "${CUDA_ARCHITECTURES}" ]; then \ + set -- "$@" "-DCMAKE_CUDA_ARCHITECTURES=${CUDA_ARCHITECTURES}"; \ + fi; \ + if [ -n "${GGML_CUDA_FA_ALL_QUANTS}" ]; then \ + set -- "$@" "-DGGML_CUDA_FA_ALL_QUANTS=${GGML_CUDA_FA_ALL_QUANTS}"; \ + fi; \ + cmake . -B ./build "$@" RUN cmake --build ./build --config Release -j$(nproc) FROM nvidia/cuda:${CUDA_VERSION}-cudnn-runtime-ubuntu${UBUNTU_VERSION} AS runtime diff --git a/Dockerfile.vulkan b/Dockerfile.vulkan index 2a832976e..518482602 100644 --- a/Dockerfile.vulkan +++ b/Dockerfile.vulkan @@ -28,7 +28,7 @@ RUN cmake . -B ./build \ -DGGML_CPU_ALL_VARIANTS=ON \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ -DCMAKE_INSTALL_RPATH='$ORIGIN' -RUN cmake --build ./build --config Release --parallel +RUN cmake --build ./build --config Release -j$(nproc) FROM ubuntu:$UBUNTU_VERSION AS runtime