Skip to content

Commit ec44f4b

Browse files
committed
cuda 3
1 parent bc3bf49 commit ec44f4b

File tree

1 file changed

+14
-17
lines changed

1 file changed

+14
-17
lines changed

.github/workflows/build-linux.yml

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
if ls build/bin/*.spv >/dev/null 2>&1; then
5656
cp build/bin/*.spv package/
5757
fi
58-
# иногда проект кладёт вспом. so — заберём, если есть
58+
# если проект кладёт свои so — заберём
5959
if ls build/bin/libstable-diffusion*.so >/dev/null 2>&1; then
6060
cp build/bin/libstable-diffusion*.so package/
6161
fi
@@ -72,7 +72,7 @@ jobs:
7272
container:
7373
image: nvidia/cuda:12.4.1-devel-ubuntu22.04
7474

75-
# В КОНТЕЙНЕРЕ по умолчанию run-скрипты идут под /bin/sh → принудительно bash
75+
# В контейнере по умолчанию /bin/sh — фиксируем bash
7676
defaults:
7777
run:
7878
shell: bash
@@ -97,7 +97,6 @@ jobs:
9797

9898
- name: Configure (CUDA, mostly-static libstdc++ + rpath=$ORIGIN)
9999
env:
100-
# подбирай архитектуры под свои целевые GPU
101100
CMAKE_CUDA_ARCHS: "61;75;86;89"
102101
run: |
103102
set -euo pipefail
@@ -116,14 +115,12 @@ jobs:
116115
cmake --build build --parallel
117116
cmake --build build --parallel --target sd-server
118117
119-
- name: Collect package (bundle CUDA runtime .so next to binaries)
118+
- name: Collect package (bundle only needed CUDA SONAMEs)
120119
run: |
121120
set -euo pipefail
122121
mkdir -p package
123-
# бинарники
124122
cp build/bin/sd package/
125123
cp build/bin/sd-server package/
126-
# если проект кладёт свои so — заберём
127124
if ls build/bin/libstable-diffusion*.so >/dev/null 2>&1; then
128125
cp -a build/bin/libstable-diffusion*.so package/
129126
fi
@@ -134,25 +131,25 @@ jobs:
134131
CUDA_LIBDIR="/usr/local/cuda/targets/x86_64-linux/lib"
135132
fi
136133
137-
# минимально нужные рантайм-библиотеки CUDA (сохраняем symlink-и)
134+
# Копируем только SONAME (*.so.12*) + их target'ы (сохраняем symlink-и).
135+
# Безверсные *.so НЕ нужны для рантайма.
138136
rsync -a --info=NAME \
139-
"$CUDA_LIBDIR/libcudart.so"* \
140-
"$CUDA_LIBDIR/libcublas.so"* \
141-
"$CUDA_LIBDIR/libcublasLt.so"* \
142-
"$CUDA_LIBDIR/libcurand.so"* \
143-
"$CUDA_LIBDIR/libcusparse.so"* \
144-
"$CUDA_LIBDIR/libnvrtc.so"* \
145-
"$CUDA_LIBDIR/libnvJitLink.so"* \
137+
"$CUDA_LIBDIR/libcudart.so.12"* \
138+
"$CUDA_LIBDIR/libcublas.so.12"* \
139+
"$CUDA_LIBDIR/libcublasLt.so.12"* \
140+
"$CUDA_LIBDIR/libcurand.so.10"* \
141+
"$CUDA_LIBDIR/libcusparse.so.12"* \
142+
"$CUDA_LIBDIR/libnvrtc.so.12"* \
143+
"$CUDA_LIBDIR/libnvJitLink.so.12"* \
146144
package/ || true
147145
148-
# облегчить бинарники (не обязательно)
146+
# облегчить бинарники (не критично)
149147
strip -s package/sd package/sd-server || true
150148
151-
# гарантируем rpath -> $ORIGIN (на случай, если линкер проигнорил флаг)
149+
# гарантируем rpath -> $ORIGIN
152150
patchelf --set-rpath '$ORIGIN' package/sd || true
153151
patchelf --set-rpath '$ORIGIN' package/sd-server || true
154152
155-
# быстрая проверка зависимостей (не фейлим job)
156153
echo "ldd sd:" && (cd package && ldd ./sd || true)
157154
echo "ldd sd-server:" && (cd package && ldd ./sd-server || true)
158155

0 commit comments

Comments
 (0)