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
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
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