Split rocm back out of bundle (#6432)
We're over budget for github's maximum release artifact size with rocm + 2 cuda versions. This splits rocm back out as a discrete artifact, but keeps the layout so it can be extracted into the same location as the main bundle.
This commit is contained in:
parent
19e5a890f7
commit
a017cf2fea
5 changed files with 16 additions and 3 deletions
1
.github/workflows/release.yaml
vendored
1
.github/workflows/release.yaml
vendored
|
@ -475,6 +475,7 @@ jobs:
|
||||||
(cd dist; find . -type f | xargs sha256sum > ../sha256sum.txt)
|
(cd dist; find . -type f | xargs sha256sum > ../sha256sum.txt)
|
||||||
mv sha256sum.txt dist/
|
mv sha256sum.txt dist/
|
||||||
mv dist/linux-???64 .
|
mv dist/linux-???64 .
|
||||||
|
mv dist/linux-amd64-rocm .
|
||||||
cat dist/sha256sum.txt
|
cat dist/sha256sum.txt
|
||||||
- name: Create or update Release
|
- name: Create or update Release
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -95,8 +95,8 @@ ARG AMDGPU_TARGETS
|
||||||
ENV GOARCH amd64
|
ENV GOARCH amd64
|
||||||
RUN --mount=type=cache,target=/root/.ccache \
|
RUN --mount=type=cache,target=/root/.ccache \
|
||||||
OLLAMA_SKIP_STATIC_GENERATE=1 OLLAMA_SKIP_CPU_GENERATE=1 bash gen_linux.sh
|
OLLAMA_SKIP_STATIC_GENERATE=1 OLLAMA_SKIP_CPU_GENERATE=1 bash gen_linux.sh
|
||||||
RUN mkdir -p ../../dist/linux-amd64/lib/ollama && \
|
RUN mkdir -p ../../dist/linux-amd64-rocm/lib/ollama && \
|
||||||
(cd /opt/rocm/lib && tar cf - rocblas/library) | (cd ../../dist/linux-amd64/lib/ollama && tar xf - )
|
(cd /opt/rocm/lib && tar cf - rocblas/library) | (cd ../../dist/linux-amd64-rocm/lib/ollama && tar xf - )
|
||||||
|
|
||||||
FROM --platform=linux/amd64 centos:7 AS cpu-builder-amd64
|
FROM --platform=linux/amd64 centos:7 AS cpu-builder-amd64
|
||||||
ARG CMAKE_VERSION
|
ARG CMAKE_VERSION
|
||||||
|
|
|
@ -260,7 +260,8 @@ if [ -z "${OLLAMA_SKIP_ROCM_GENERATE}" -a -d "${ROCM_PATH}" ]; then
|
||||||
echo "Building custom ROCM GPU"
|
echo "Building custom ROCM GPU"
|
||||||
fi
|
fi
|
||||||
BUILD_DIR="../build/linux/${ARCH}/rocm${ROCM_VARIANT}"
|
BUILD_DIR="../build/linux/${ARCH}/rocm${ROCM_VARIANT}"
|
||||||
ROCM_DIST_DIR="${DIST_BASE}/lib/ollama"
|
# ROCm dependencies are too large to fit into a unified bundle
|
||||||
|
ROCM_DIST_DIR="${DIST_BASE}/../linux-${GOARCH}-rocm/lib/ollama"
|
||||||
# TODO figure out how to disable runpath (rpath)
|
# TODO figure out how to disable runpath (rpath)
|
||||||
# export CMAKE_HIP_FLAGS="-fno-rtlib-add-rpath" # doesn't work
|
# export CMAKE_HIP_FLAGS="-fno-rtlib-add-rpath" # doesn't work
|
||||||
export LLAMA_SERVER_LDFLAGS="-L${ROCM_PATH}/lib -L/opt/amdgpu/lib/x86_64-linux-gnu/ -lhipblas -lrocblas -lamdhip64 -lrocsolver -lamd_comgr -lhsa-runtime64 -lrocsparse -ldrm -ldrm_amdgpu"
|
export LLAMA_SERVER_LDFLAGS="-L${ROCM_PATH}/lib -L/opt/amdgpu/lib/x86_64-linux-gnu/ -lhipblas -lrocblas -lamdhip64 -lrocsolver -lamd_comgr -lhsa-runtime64 -lrocsparse -ldrm -ldrm_amdgpu"
|
||||||
|
|
|
@ -24,8 +24,14 @@ for TARGETARCH in ${BUILD_ARCH}; do
|
||||||
docker create --platform linux/$TARGETARCH --name builder-$TARGETARCH builder:$TARGETARCH
|
docker create --platform linux/$TARGETARCH --name builder-$TARGETARCH builder:$TARGETARCH
|
||||||
rm -rf ./dist/linux-$TARGETARCH
|
rm -rf ./dist/linux-$TARGETARCH
|
||||||
docker cp builder-$TARGETARCH:/go/src/github.com/ollama/ollama/dist/linux-$TARGETARCH ./dist
|
docker cp builder-$TARGETARCH:/go/src/github.com/ollama/ollama/dist/linux-$TARGETARCH ./dist
|
||||||
|
if echo ${TARGETARCH} | grep "amd64" > /dev/null; then
|
||||||
|
docker cp builder-$TARGETARCH:/go/src/github.com/ollama/ollama/dist/linux-$TARGETARCH-rocm ./dist
|
||||||
|
fi
|
||||||
docker rm builder-$TARGETARCH
|
docker rm builder-$TARGETARCH
|
||||||
echo "Compressing final linux bundle..."
|
echo "Compressing final linux bundle..."
|
||||||
rm -f ./dist/ollama-linux-$TARGETARCH.tgz
|
rm -f ./dist/ollama-linux-$TARGETARCH.tgz
|
||||||
(cd dist/linux-$TARGETARCH && tar cf - . | ${GZIP} --best > ../ollama-linux-$TARGETARCH.tgz )
|
(cd dist/linux-$TARGETARCH && tar cf - . | ${GZIP} --best > ../ollama-linux-$TARGETARCH.tgz )
|
||||||
|
if [ -d dist/linux-$TARGETARCH-rocm ]; then
|
||||||
|
(cd dist/linux-$TARGETARCH-rocm && tar cf - . | ${GZIP} --best > ../ollama-linux-$TARGETARCH-rocm.tgz )
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
|
@ -199,6 +199,11 @@ fi
|
||||||
|
|
||||||
if check_gpu lspci amdgpu || check_gpu lshw amdgpu; then
|
if check_gpu lspci amdgpu || check_gpu lshw amdgpu; then
|
||||||
if [ $BUNDLE -ne 0 ]; then
|
if [ $BUNDLE -ne 0 ]; then
|
||||||
|
status "Downloading Linux ROCm ${ARCH} bundle"
|
||||||
|
curl --fail --show-error --location --progress-bar \
|
||||||
|
"https://ollama.com/download/ollama-linux-${ARCH}-rocm.tgz${VER_PARAM}" | \
|
||||||
|
$SUDO tar -xzf - -C "$OLLAMA_INSTALL_DIR"
|
||||||
|
|
||||||
install_success
|
install_success
|
||||||
status "AMD GPU ready."
|
status "AMD GPU ready."
|
||||||
exit 0
|
exit 0
|
||||||
|
|
Loading…
Reference in a new issue