|
|
@@ -46,7 +46,20 @@ if [ ! -z ${GG_BUILD_METAL} ]; then
|
|
|
fi
|
|
|
|
|
|
if [ ! -z ${GG_BUILD_CUDA} ]; then
|
|
|
- CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=native"
|
|
|
+ CMAKE_EXTRA="${CMAKE_EXTRA} -DGGML_CUDA=ON"
|
|
|
+
|
|
|
+ if command -v nvidia-smi >/dev/null 2>&1; then
|
|
|
+ CUDA_ARCH=$(nvidia-smi --query-gpu=compute_cap --format=csv,noheader,nounits 2>/dev/null | head -1 | tr -d '.')
|
|
|
+ if [[ -n "$CUDA_ARCH" && "$CUDA_ARCH" =~ ^[0-9]+$ ]]; then
|
|
|
+ CMAKE_EXTRA="${CMAKE_EXTRA} -DCMAKE_CUDA_ARCHITECTURES=${CUDA_ARCH}"
|
|
|
+ else
|
|
|
+ echo "Warning: Using fallback CUDA architectures"
|
|
|
+ CMAKE_EXTRA="${CMAKE_EXTRA} -DCMAKE_CUDA_ARCHITECTURES=61;70;75;80;86;89"
|
|
|
+ fi
|
|
|
+ else
|
|
|
+ echo "Error: nvidia-smi not found, cannot build with CUDA"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
fi
|
|
|
|
|
|
if [ ! -z ${GG_BUILD_SYCL} ]; then
|