"src/diffusers/schedulers/scheduling_karras_ve_flax.py" did not exist on "da990633a9558c3e30c640d341507849161c3633"
Dockerfile 10.7 KB
Newer Older
1
ARG GOLANG_VERSION=1.22.5
2
ARG CMAKE_VERSION=3.22.1
3
ARG CUDA_VERSION_11=11.3.1
Daniel Hiltgen's avatar
Daniel Hiltgen committed
4
ARG CUDA_V11_ARCHITECTURES="50;52;53;60;61;62;70;72;75;80;86"
5
ARG CUDA_VERSION_12=12.4.0
Daniel Hiltgen's avatar
Daniel Hiltgen committed
6
ARG CUDA_V12_ARCHITECTURES="60;61;62;70;72;75;80;86;87;89;90;90a"
Daniel Hiltgen's avatar
Daniel Hiltgen committed
7
ARG ROCM_VERSION=6.1.2
8
9
10
ARG JETPACK_6=r36.2.0
ARG JETPACK_5=r35.4.1
ARG JETPACK_4=r32.7.1
Michael Yang's avatar
Michael Yang committed
11

12
13
14
15
16
# Copy the minimal context we need to run the generate scripts
FROM scratch AS llm-code
COPY .git .git
COPY .gitmodules .gitmodules
COPY llm llm
Michael Yang's avatar
Michael Yang committed
17

18
FROM --platform=linux/amd64 nvidia/cuda:$CUDA_VERSION_11-devel-centos7 AS cuda-11-build-amd64
19
20
21
22
ARG CMAKE_VERSION
COPY ./scripts/rh_linux_deps.sh /
RUN CMAKE_VERSION=${CMAKE_VERSION} sh /rh_linux_deps.sh
ENV PATH /opt/rh/devtoolset-10/root/usr/bin:$PATH
23
24
COPY --from=llm-code / /go/src/github.com/ollama/ollama/
WORKDIR /go/src/github.com/ollama/ollama/llm/generate
25
ARG CGO_CFLAGS
Daniel Hiltgen's avatar
Daniel Hiltgen committed
26
ARG CUDA_V11_ARCHITECTURES
Daniel Hiltgen's avatar
Daniel Hiltgen committed
27
ENV GOARCH amd64 
28
RUN --mount=type=cache,target=/root/.ccache \
29
30
    OLLAMA_SKIP_STATIC_GENERATE=1 \
    OLLAMA_SKIP_CPU_GENERATE=1 \
Daniel Hiltgen's avatar
Daniel Hiltgen committed
31
    CMAKE_CUDA_ARCHITECTURES="${CUDA_V11_ARCHITECTURES}" \
32
33
    CUDA_VARIANT="_v11" \
    bash gen_linux.sh
34

35
36
37
38
39
40
41
42
FROM --platform=linux/amd64 nvidia/cuda:$CUDA_VERSION_12-devel-centos7 AS cuda-12-build-amd64
ARG CMAKE_VERSION
COPY ./scripts/rh_linux_deps.sh /
RUN CMAKE_VERSION=${CMAKE_VERSION} sh /rh_linux_deps.sh
ENV PATH /opt/rh/devtoolset-10/root/usr/bin:$PATH
COPY --from=llm-code / /go/src/github.com/ollama/ollama/
WORKDIR /go/src/github.com/ollama/ollama/llm/generate
ARG CGO_CFLAGS
Daniel Hiltgen's avatar
Daniel Hiltgen committed
43
ARG CUDA_V12_ARCHITECTURES
44
45
46
47
ENV GOARCH amd64 
RUN --mount=type=cache,target=/root/.ccache \
    OLLAMA_SKIP_STATIC_GENERATE=1 \
    OLLAMA_SKIP_CPU_GENERATE=1 \
Daniel Hiltgen's avatar
Daniel Hiltgen committed
48
    CMAKE_CUDA_ARCHITECTURES="${CUDA_V12_ARCHITECTURES}" \
49
    CUDA_VARIANT="_v12" \
Daniel Hiltgen's avatar
Daniel Hiltgen committed
50
    OLLAMA_CUSTOM_CUDA_DEFS="-DGGML_CUDA_USE_GRAPHS=on" \
51
52
53
    bash gen_linux.sh

FROM --platform=linux/arm64 nvidia/cuda:$CUDA_VERSION_11-devel-rockylinux8 AS cuda-11-build-server-arm64
54
55
56
ARG CMAKE_VERSION
COPY ./scripts/rh_linux_deps.sh /
RUN CMAKE_VERSION=${CMAKE_VERSION} sh /rh_linux_deps.sh
57
ENV PATH /opt/rh/gcc-toolset-10/root/usr/bin:$PATH
58
59
COPY --from=llm-code / /go/src/github.com/ollama/ollama/
WORKDIR /go/src/github.com/ollama/ollama/llm/generate
60
ARG CGO_CFLAGS
Daniel Hiltgen's avatar
Daniel Hiltgen committed
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
ARG CUDA_V11_ARCHITECTURES
ENV GOARCH arm64 
RUN OLLAMA_SKIP_STATIC_GENERATE=1 \
    OLLAMA_SKIP_CPU_GENERATE=1 \
    CMAKE_CUDA_ARCHITECTURES="${CUDA_V11_ARCHITECTURES}" \
    CUDA_VARIANT="_v11" \
    bash gen_linux.sh

FROM --platform=linux/arm64 nvidia/cuda:$CUDA_VERSION_12-devel-rockylinux8 AS cuda-12-build-server-arm64
ARG CMAKE_VERSION
COPY ./scripts/rh_linux_deps.sh /
RUN CMAKE_VERSION=${CMAKE_VERSION} sh /rh_linux_deps.sh
ENV PATH /opt/rh/gcc-toolset-10/root/usr/bin:$PATH
COPY --from=llm-code / /go/src/github.com/ollama/ollama/
WORKDIR /go/src/github.com/ollama/ollama/llm/generate
ARG CGO_CFLAGS
ARG CUDA_V12_ARCHITECTURES
Daniel Hiltgen's avatar
Daniel Hiltgen committed
78
ENV GOARCH arm64 
79
RUN --mount=type=cache,target=/root/.ccache \
Daniel Hiltgen's avatar
Daniel Hiltgen committed
80
81
82
83
84
85
    OLLAMA_SKIP_STATIC_GENERATE=1 \
    OLLAMA_SKIP_CPU_GENERATE=1 \
    CMAKE_CUDA_ARCHITECTURES="${CUDA_V12_ARCHITECTURES}" \
    CUDA_VARIANT="_v12" \
    OLLAMA_CUSTOM_CUDA_DEFS="-DGGML_CUDA_USE_GRAPHS=on" \
    bash gen_linux.sh
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112

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
113
114
115
RUN --mount=type=cache,target=/root/.ccache \
    OLLAMA_SKIP_STATIC_GENERATE=1 \
    OLLAMA_SKIP_CPU_GENERATE=1 \
116
117
118
    CUDA_VARIANT="_jetpack5" \
    CUDA_DIST_DIR="/go/src/github.com/ollama/ollama/dist/linux-arm64/ollama_libs/cuda_jetpack5" \
    CMAKE_CUDA_ARCHITECTURES="72;87" \
119
    bash gen_linux.sh
120

Daniel Hiltgen's avatar
Daniel Hiltgen committed
121
FROM --platform=linux/amd64 rocm/dev-centos-7:${ROCM_VERSION}-complete AS rocm-build-amd64
122
123
124
125
126
ARG CMAKE_VERSION
COPY ./scripts/rh_linux_deps.sh /
RUN CMAKE_VERSION=${CMAKE_VERSION} sh /rh_linux_deps.sh
ENV PATH /opt/rh/devtoolset-10/root/usr/bin:$PATH
ENV LIBRARY_PATH /opt/amdgpu/lib64
127
128
COPY --from=llm-code / /go/src/github.com/ollama/ollama/
WORKDIR /go/src/github.com/ollama/ollama/llm/generate
129
130
ARG CGO_CFLAGS
ARG AMDGPU_TARGETS
Daniel Hiltgen's avatar
Daniel Hiltgen committed
131
ENV GOARCH amd64 
132
133
RUN --mount=type=cache,target=/root/.ccache \
    OLLAMA_SKIP_STATIC_GENERATE=1 OLLAMA_SKIP_CPU_GENERATE=1 bash gen_linux.sh
Daniel Hiltgen's avatar
Daniel Hiltgen committed
134
135
RUN mkdir -p ../../dist/linux-amd64/ollama_libs && \
    (cd /opt/rocm/lib && tar cf - rocblas/library) | (cd ../../dist/linux-amd64/ollama_libs && tar xf - )
136

137
FROM --platform=linux/amd64 centos:7 AS cpu-builder-amd64
138
139
140
141
142
ARG CMAKE_VERSION
ARG GOLANG_VERSION
COPY ./scripts/rh_linux_deps.sh /
RUN CMAKE_VERSION=${CMAKE_VERSION} GOLANG_VERSION=${GOLANG_VERSION} sh /rh_linux_deps.sh
ENV PATH /opt/rh/devtoolset-10/root/usr/bin:$PATH
143
COPY --from=llm-code / /go/src/github.com/ollama/ollama/
144
145
ARG OLLAMA_CUSTOM_CPU_DEFS
ARG CGO_CFLAGS
Daniel Hiltgen's avatar
Daniel Hiltgen committed
146
ENV GOARCH amd64 
147
WORKDIR /go/src/github.com/ollama/ollama/llm/generate
148

149
FROM --platform=linux/amd64 cpu-builder-amd64 AS static-build-amd64
150
151
RUN --mount=type=cache,target=/root/.ccache \
    OLLAMA_CPU_TARGET="static" bash gen_linux.sh
152
FROM --platform=linux/amd64 cpu-builder-amd64 AS cpu-build-amd64
153
154
RUN --mount=type=cache,target=/root/.ccache \
    OLLAMA_SKIP_STATIC_GENERATE=1 OLLAMA_CPU_TARGET="cpu" bash gen_linux.sh
155
FROM --platform=linux/amd64 cpu-builder-amd64 AS cpu_avx-build-amd64
156
157
RUN --mount=type=cache,target=/root/.ccache \
    OLLAMA_SKIP_STATIC_GENERATE=1 OLLAMA_CPU_TARGET="cpu_avx" bash gen_linux.sh
158
FROM --platform=linux/amd64 cpu-builder-amd64 AS cpu_avx2-build-amd64
159
160
RUN --mount=type=cache,target=/root/.ccache \
    OLLAMA_SKIP_STATIC_GENERATE=1 OLLAMA_CPU_TARGET="cpu_avx2" bash gen_linux.sh
161

162
FROM --platform=linux/arm64 rockylinux:8 AS cpu-builder-arm64
163
164
165
166
ARG CMAKE_VERSION
ARG GOLANG_VERSION
COPY ./scripts/rh_linux_deps.sh /
RUN CMAKE_VERSION=${CMAKE_VERSION} GOLANG_VERSION=${GOLANG_VERSION} sh /rh_linux_deps.sh
167
ENV PATH /opt/rh/gcc-toolset-10/root/usr/bin:$PATH
168
COPY --from=llm-code / /go/src/github.com/ollama/ollama/
169
170
ARG OLLAMA_CUSTOM_CPU_DEFS
ARG CGO_CFLAGS
Daniel Hiltgen's avatar
Daniel Hiltgen committed
171
ENV GOARCH arm64
172
173
174
WORKDIR /go/src/github.com/ollama/ollama/llm/generate

FROM --platform=linux/arm64 cpu-builder-arm64 AS static-build-arm64
175
176
RUN --mount=type=cache,target=/root/.ccache \
    OLLAMA_CPU_TARGET="static" bash gen_linux.sh
177
FROM --platform=linux/arm64 cpu-builder-arm64 AS cpu-build-arm64
178
179
RUN --mount=type=cache,target=/root/.ccache \
    OLLAMA_SKIP_STATIC_GENERATE=1 OLLAMA_CPU_TARGET="cpu" bash gen_linux.sh
180

181

182
183
184
# Intermediate stage used for ./scripts/build_linux.sh
FROM --platform=linux/amd64 cpu-build-amd64 AS build-amd64
ENV CGO_ENABLED 1
185
WORKDIR /go/src/github.com/ollama/ollama
186
COPY . .
187
188
189
COPY --from=static-build-amd64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
COPY --from=cpu_avx-build-amd64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
COPY --from=cpu_avx2-build-amd64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
190
191
192
193
COPY --from=cuda-11-build-amd64 /go/src/github.com/ollama/ollama/dist/ dist/
COPY --from=cuda-11-build-amd64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
COPY --from=cuda-12-build-amd64 /go/src/github.com/ollama/ollama/dist/ dist/
COPY --from=cuda-12-build-amd64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
Daniel Hiltgen's avatar
Daniel Hiltgen committed
194
COPY --from=rocm-build-amd64 /go/src/github.com/ollama/ollama/dist/ dist/
195
COPY --from=rocm-build-amd64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
196
197
ARG GOFLAGS
ARG CGO_CFLAGS
198
199
RUN --mount=type=cache,target=/root/.ccache \
    go build -trimpath -o dist/linux-amd64/ollama .
Michael Yang's avatar
Michael Yang committed
200

201
202
203
204
# Intermediate stage used for ./scripts/build_linux.sh
FROM --platform=linux/arm64 cpu-build-arm64 AS build-arm64
ENV CGO_ENABLED 1
ARG GOLANG_VERSION
205
WORKDIR /go/src/github.com/ollama/ollama
Jeffrey Morgan's avatar
Jeffrey Morgan committed
206
COPY . .
207
COPY --from=static-build-arm64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
208
209
COPY --from=cuda-11-build-server-arm64 /go/src/github.com/ollama/ollama/dist/ dist/
COPY --from=cuda-11-build-server-arm64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
Daniel Hiltgen's avatar
Daniel Hiltgen committed
210
211
COPY --from=cuda-12-build-server-arm64 /go/src/github.com/ollama/ollama/dist/ dist/
COPY --from=cuda-12-build-server-arm64 /go/src/github.com/ollama/ollama/llm/build/linux/ llm/build/linux/
212
213
214
215
216
217
## 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/
218
219
ARG GOFLAGS
ARG CGO_CFLAGS
220
221
RUN --mount=type=cache,target=/root/.ccache \
    go build -trimpath -o dist/linux-arm64/ollama .
Jeffrey Morgan's avatar
Jeffrey Morgan committed
222

223
# Runtime stages
Daniel Hiltgen's avatar
Daniel Hiltgen committed
224
225
FROM --platform=linux/amd64 ubuntu:22.04 as runtime-amd64
RUN apt-get update && apt-get install -y ca-certificates
Daniel Hiltgen's avatar
Daniel Hiltgen committed
226
COPY --from=build-amd64 /go/src/github.com/ollama/ollama/dist/linux-amd64/ollama /bin/ollama
227
FROM --platform=linux/arm64 ubuntu:22.04 as runtime-arm64
Michael Yang's avatar
Michael Yang committed
228
RUN apt-get update && apt-get install -y ca-certificates
Daniel Hiltgen's avatar
Daniel Hiltgen committed
229
COPY --from=build-arm64 /go/src/github.com/ollama/ollama/dist/linux-arm64/ollama /bin/ollama
230

231
# Radeon images are much larger so we keep it distinct from the CPU/CUDA image
Daniel Hiltgen's avatar
Daniel Hiltgen committed
232
FROM --platform=linux/amd64 rocm/dev-centos-7:${ROCM_VERSION}-complete as runtime-rocm
233
RUN update-pciids
Daniel Hiltgen's avatar
Daniel Hiltgen committed
234
COPY --from=build-amd64 /go/src/github.com/ollama/ollama/dist/linux-amd64/ollama /bin/ollama
235
236
237
238
239
240
EXPOSE 11434
ENV OLLAMA_HOST 0.0.0.0

ENTRYPOINT ["/bin/ollama"]
CMD ["serve"]

241
FROM runtime-$TARGETARCH
242
243
EXPOSE 11434
ENV OLLAMA_HOST 0.0.0.0
244
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
245
ENV LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64
246
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility
247
ENV NVIDIA_VISIBLE_DEVICES=all
248

Jeffrey Morgan's avatar
Jeffrey Morgan committed
249
ENTRYPOINT ["/bin/ollama"]
Jeffrey Morgan's avatar
Jeffrey Morgan committed
250
CMD ["serve"]