|
@@ -3,6 +3,9 @@ ARG CMAKE_VERSION=3.22.1
|
|
|
# this CUDA_VERSION corresponds with the one specified in docs/gpu.md
|
|
|
ARG CUDA_VERSION=11.3.1
|
|
|
ARG ROCM_VERSION=6.1.2
|
|
|
+ARG JETPACK_6=r36.2.0
|
|
|
+ARG JETPACK_5=r35.4.1
|
|
|
+ARG JETPACK_4=r32.7.1
|
|
|
|
|
|
# Copy the minimal context we need to run the generate scripts
|
|
|
FROM scratch AS llm-code
|
|
@@ -22,7 +25,7 @@ ENV GOARCH amd64
|
|
|
RUN --mount=type=cache,target=/root/.ccache \
|
|
|
OLLAMA_SKIP_STATIC_GENERATE=1 OLLAMA_SKIP_CPU_GENERATE=1 bash gen_linux.sh
|
|
|
|
|
|
-FROM --platform=linux/arm64 nvidia/cuda:$CUDA_VERSION-devel-rockylinux8 AS cuda-build-arm64
|
|
|
+FROM --platform=linux/arm64 nvidia/cuda:$CUDA_VERSION-devel-rockylinux8 AS cuda-build-server-arm64
|
|
|
ARG CMAKE_VERSION
|
|
|
COPY ./scripts/rh_linux_deps.sh /
|
|
|
RUN CMAKE_VERSION=${CMAKE_VERSION} sh /rh_linux_deps.sh
|
|
@@ -31,11 +34,40 @@ COPY --from=llm-code / /go/src/github.com/ollama/ollama/
|
|
|
WORKDIR /go/src/github.com/ollama/ollama/llm/generate
|
|
|
ARG CGO_CFLAGS
|
|
|
ENV GOARCH arm64
|
|
|
+RUN OLLAMA_SKIP_STATIC_GENERATE=1 OLLAMA_SKIP_CPU_GENERATE=1 bash gen_linux.sh
|
|
|
+
|
|
|
+FROM --platform=linux/arm64 nvcr.io/nvidia/l4t-jetpack:${JETPACK_6} AS cuda-build-jetpack6-arm64
|
|
|
+ARG CMAKE_VERSION
|
|
|
+RUN apt-get update && apt-get install -y git curl && \
|
|
|
+ curl -s -L https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz | tar -zx -C /usr --strip-components 1
|
|
|
+COPY --from=llm-code / /go/src/github.com/ollama/ollama/
|
|
|
+WORKDIR /go/src/github.com/ollama/ollama/llm/generate
|
|
|
+ARG CGO_CFLAGS
|
|
|
+ENV GOARCH arm64
|
|
|
+ENV LIBRARY_PATH /usr/local/cuda/lib64/stubs
|
|
|
+RUN --mount=type=cache,target=/root/.ccache \
|
|
|
+ OLLAMA_SKIP_STATIC_GENERATE=1 \
|
|
|
+ OLLAMA_SKIP_CPU_GENERATE=1 \
|
|
|
+ CUDA_VARIANT="_jetpack6" \
|
|
|
+ CUDA_DIST_DIR="/go/src/github.com/ollama/ollama/dist/linux-arm64/ollama_libs/cuda_jetpack6" \
|
|
|
+ CMAKE_CUDA_ARCHITECTURES="87" \
|
|
|
+ bash gen_linux.sh
|
|
|
+
|
|
|
+FROM --platform=linux/arm64 nvcr.io/nvidia/l4t-jetpack:${JETPACK_5} AS cuda-build-jetpack5-arm64
|
|
|
+ARG CMAKE_VERSION
|
|
|
+RUN apt-get update && apt-get install -y git curl && \
|
|
|
+ curl -s -L https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz | tar -zx -C /usr --strip-components 1
|
|
|
+COPY --from=llm-code / /go/src/github.com/ollama/ollama/
|
|
|
+WORKDIR /go/src/github.com/ollama/ollama/llm/generate
|
|
|
+ARG CGO_CFLAGS
|
|
|
+ENV GOARCH arm64
|
|
|
+ENV LIBRARY_PATH /usr/local/cuda/lib64/stubs
|
|
|
RUN --mount=type=cache,target=/root/.ccache \
|
|
|
OLLAMA_SKIP_STATIC_GENERATE=1 \
|
|
|
OLLAMA_SKIP_CPU_GENERATE=1 \
|
|
|
- CMAKE_CUDA_ARCHITECTURES="${CUDA_V11_ARCHITECTURES}" \
|
|
|
- CUDA_VARIANT="_v11" \
|
|
|
+ CUDA_VARIANT="_jetpack5" \
|
|
|
+ CUDA_DIST_DIR="/go/src/github.com/ollama/ollama/dist/linux-arm64/ollama_libs/cuda_jetpack5" \
|
|
|
+ CMAKE_CUDA_ARCHITECTURES="72;87" \
|
|
|
bash gen_linux.sh
|
|
|
|
|
|
FROM --platform=linux/amd64 rocm/dev-centos-7:${ROCM_VERSION}-complete AS rocm-build-amd64
|
|
@@ -123,8 +155,14 @@ ARG GOLANG_VERSION
|
|
|
WORKDIR /go/src/github.com/ollama/ollama
|
|
|
COPY . .
|
|
|
COPY --from=static-build-arm64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
|
|
|
-COPY --from=cuda-build-arm64 /go/src/github.com/ollama/ollama/dist/ dist/
|
|
|
-COPY --from=cuda-build-arm64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
|
|
|
+COPY --from=cuda-build-server-arm64 /go/src/github.com/ollama/ollama/dist/ dist/
|
|
|
+COPY --from=cuda-build-server-arm64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
|
|
|
+## arm binary += 381M
|
|
|
+COPY --from=cuda-build-jetpack6-arm64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
|
|
|
+COPY --from=cuda-build-jetpack6-arm64 /go/src/github.com/ollama/ollama/dist/ dist/
|
|
|
+## arm binary += 330M
|
|
|
+COPY --from=cuda-build-jetpack5-arm64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
|
|
|
+COPY --from=cuda-build-jetpack5-arm64 /go/src/github.com/ollama/ollama/dist/ dist/
|
|
|
ARG GOFLAGS
|
|
|
ARG CGO_CFLAGS
|
|
|
RUN --mount=type=cache,target=/root/.ccache \
|