Skip to content

Commit f2838f1

Browse files
committed
Updated
1 parent 9e7f5b8 commit f2838f1

File tree

4 files changed

+84
-6
lines changed

4 files changed

+84
-6
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ ifeq ($(GGML_CUDA),1)
3535
CUDA_DOCKER_ARCH ?= all
3636
CMAKE_FLAGS += -DGGML_CUDA=ON
3737
BUILD_TAG := "${BUILD_TAG}-cuda"
38-
DOCKER_FILE = etc/Dockerfile.cuda
38+
DOCKER_FILE = etc/Dockerfile.cuda-test
3939
endif
4040

4141
# If GGML_VULKAN is set, then add a vulkan tag for the go ${BUILD FLAGS}

etc/Dockerfile.cuda-test

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
ARG BASE_TAG=1.0.2
2+
ARG BASE_DEV_CONTAINER=ghcr.io/mutablelogic/cuda-dev:${BASE_TAG}
3+
ARG BASE_RUN_CONTAINER=ghcr.io/mutablelogic/cuda-rt:${BASE_TAG}
4+
ARG CUDA_DOCKER_ARCH=all
5+
ARG GGML_CUDA=1
6+
ARG GO_VERSION=1.24.3
7+
ARG ARCH
8+
ARG OS
9+
10+
#############################################################################
11+
# Setup CUDA build container
12+
13+
FROM ${BASE_DEV_CONTAINER} AS buildcuda
14+
ARG CUDA_DOCKER_ARCH
15+
ARG GGML_CUDA
16+
ARG GO_VERSION
17+
ARG ARCH
18+
ARG OS
19+
20+
RUN apt-get -y update \
21+
&& apt-get -y install ca-certificates build-essential libgomp1 cmake git pkg-config nasm curl \
22+
&& apt-get -y install libfreetype6-dev libmp3lame-dev libopus-dev libvorbis-dev libvpx-dev libx264-dev libdav1d-dev
23+
24+
# Install go
25+
RUN curl -sL https://golang.org/dl/go${GO_VERSION}.${OS}-${ARCH}.tar.gz | tar -C /usr/local -xz
26+
ENV PATH=$PATH:/usr/local/go/bin
27+
28+
# Copy source
29+
WORKDIR /app
30+
COPY . .
31+
32+
# Make whisper
33+
ENV CUDA_DOCKER_ARCH=${CUDA_DOCKER_ARCH}
34+
ENV GGML_CUDA=${GGML_CUDA}
35+
RUN make -j1
36+
37+
#############################################################################
38+
# Setup CPU build container
39+
40+
FROM ${BASE_DEV_CONTAINER} AS buildcpu
41+
ARG GO_VERSION
42+
ARG ARCH
43+
ARG OS
44+
45+
RUN apt-get -y update \
46+
&& apt-get -y install ca-certificates build-essential libgomp1 cmake git pkg-config nasm curl \
47+
&& apt-get -y install libfreetype6-dev libmp3lame-dev libopus-dev libvorbis-dev libvpx-dev libx264-dev libdav1d-dev
48+
49+
# Install go
50+
RUN curl -sL https://golang.org/dl/go${GO_VERSION}.${OS}-${ARCH}.tar.gz | tar -C /usr/local -xz
51+
ENV PATH=$PATH:/usr/local/go/bin
52+
53+
# Copy source
54+
WORKDIR /app
55+
COPY . .
56+
57+
# Make whisper
58+
RUN make -j$(nproc)
59+
60+
#############################################################################
61+
# Setup runtime container
62+
63+
FROM ${BASE_RUN_CONTAINER} AS runtime
64+
RUN apt-get -y update \
65+
&& apt-get -y install ca-certificates libgomp1 \
66+
&& apt-get -y install libfreetype6 libmp3lame0 libopus0 libvorbis0a libvpx-dev x264 dav1d
67+
68+
# Copy built whisper binary and entrypoint script
69+
COPY --from=buildcuda --chmod=755 /app/build/whisper-cuda /usr/local/bin
70+
COPY --from=buildcpu --chmod=755 /app/build/whisper-cpu /usr/local/bin
71+
COPY --chmod=755 etc/entrypoint.sh .
72+
73+
# Container environment
74+
ENV WHISPER_DIR="/data"
75+
VOLUME [ "/data" ]
76+
ENTRYPOINT [ "/entrypoint.sh" ]
77+
STOPSIGNAL SIGQUIT
78+
EXPOSE 80

sys/whisper/generate.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import "C"
1313
// Generate the whisper pkg-config files
1414
// Setting the prefix to the base of the repository
1515
//go:generate go run ../pkg-config --version "0.0.0" --prefix "${PREFIX}" --cflags "-I$DOLLAR{prefix}/include" libwhisper.pc
16-
//go:generate go run ../pkg-config --version "0.0.0" --prefix "${PREFIX}" --cflags "-fopenmp" --libs "-L$DOLLAR{prefix}/lib -lwhisper -lggml -lggml-base -lggml-cpu -lgomp -lm -lstdc++" libwhisper-linux.pc
17-
//go:generate go run ../pkg-config --version "0.0.0" --prefix "${PREFIX}" --libs "-L$DOLLAR{prefix}/lib -lwhisper -lggml -lggml-base -lggml-cpu -lggml-blas -lggml-metal -lm -lstdc++ -framework Accelerate -framework Metal -framework Foundation -framework CoreGraphics" libwhisper-darwin.pc
18-
//go:generate go run ../pkg-config --version "0.0.0" --prefix "${PREFIX}" --libs "-L$DOLLAR{prefix}/lib -lggml-cuda" libwhisper-cuda.pc
19-
//go:generate go run ../pkg-config --version "0.0.0" --prefix "${PREFIX}" --libs "-L$DOLLAR{prefix}/lib -lvulkan -lggml-vulkan" libwhisper-vulkan.pc
16+
//go:generate go run ../pkg-config --version "0.0.0" --prefix "${PREFIX}" --cflags "-fopenmp" --libs "-L$DOLLAR{prefix}/lib -L$DOLLAR{prefix}/lib64 -lwhisper -lggml -lggml-base -lggml-cpu -lgomp -lm -lstdc++" libwhisper-linux.pc
17+
//go:generate go run ../pkg-config --version "0.0.0" --prefix "${PREFIX}" --libs "-L$DOLLAR{prefix}/lib -L$DOLLAR{prefix}/lib64 -lwhisper -lggml -lggml-base -lggml-cpu -lggml-blas -lggml-metal -lm -lstdc++ -framework Accelerate -framework Metal -framework Foundation -framework CoreGraphics" libwhisper-darwin.pc
18+
//go:generate go run ../pkg-config --version "0.0.0" --prefix "${PREFIX}" --libs "-L$DOLLAR{prefix}/lib -L$DOLLAR{prefix}/lib64 -lggml-cuda" libwhisper-cuda.pc
19+
//go:generate go run ../pkg-config --version "0.0.0" --prefix "${PREFIX}" --libs "-L$DOLLAR{prefix}/lib -L$DOLLAR{prefix}/lib64 -lvulkan -lggml-vulkan" libwhisper-vulkan.pc

third_party/whisper.cpp

0 commit comments

Comments
 (0)