v2: stage CUDA runtime libs into bin/ (fix silent CPU fallback)
Browse files
build.sh
CHANGED
|
@@ -40,6 +40,21 @@ if ! cmake -B build "${CMAKE_FLAGS[@]}"; then
|
|
| 40 |
-DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=120 -DGGML_NATIVE=OFF
|
| 41 |
fi
|
| 42 |
cmake --build build -j"$(nproc)" --target llama-server
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
ls -la build/bin
|
| 44 |
|
| 45 |
tar -C build -czf /tmp/llama-ricursive-cuda128-sm120.tar.gz bin
|
|
|
|
| 40 |
-DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=120 -DGGML_NATIVE=OFF
|
| 41 |
fi
|
| 42 |
cmake --build build -j"$(nproc)" --target llama-server
|
| 43 |
+
|
| 44 |
+
# Stage CUDA runtime libs next to the binaries: the ZeroGPU image has no CUDA toolkit,
|
| 45 |
+
# and libggml-cuda.so silently fails to dlopen without them (CPU fallback).
|
| 46 |
+
echo "=== ldd before staging ==="
|
| 47 |
+
ldd build/bin/llama-server || true
|
| 48 |
+
ldd build/bin/libggml-cuda.so || true
|
| 49 |
+
for lib in $(ldd build/bin/*.so build/bin/llama-server 2>/dev/null | grep -oP '/usr/local/cuda/lib64/\S+' | sort -u); do
|
| 50 |
+
base=$(basename "$lib")
|
| 51 |
+
case "$base" in
|
| 52 |
+
libcuda.so*) echo "skip driver lib $base (provided by the GPU host)";;
|
| 53 |
+
*) cp -L "$lib" build/bin/ && echo "staged $base";;
|
| 54 |
+
esac
|
| 55 |
+
done
|
| 56 |
+
echo "=== ldd after staging (LD_LIBRARY_PATH=build/bin) ==="
|
| 57 |
+
LD_LIBRARY_PATH=build/bin ldd build/bin/libggml-cuda.so | grep -E "not found|cuda" || true
|
| 58 |
ls -la build/bin
|
| 59 |
|
| 60 |
tar -C build -czf /tmp/llama-ricursive-cuda128-sm120.tar.gz bin
|