32 lines
829 B
Bash
Executable File
32 lines
829 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
BASE_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
mkdir -p "$BASE_DIR/generated"
|
|
|
|
THREADS="$(nproc)"
|
|
RAM_GB="$(free -g | awk '/^Mem:/{print $2}')"
|
|
CPU_MODEL="$(lscpu | awk -F: '/Model name/{gsub(/^[ \t]+/, "", $2); print $2; exit}')"
|
|
|
|
GPU_VENDOR="none"
|
|
GPU_VRAM_GB="0"
|
|
|
|
if command -v nvidia-smi >/dev/null 2>&1; then
|
|
GPU_VENDOR="nvidia"
|
|
GPU_VRAM_GB="$(nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits | head -n1 | awk '{printf "%.0f", $1/1024}')"
|
|
elif command -v rocm-smi >/dev/null 2>&1; then
|
|
GPU_VENDOR="amd"
|
|
fi
|
|
|
|
cat > "$BASE_DIR/generated/machine-profile.json" <<JSON
|
|
{
|
|
"cpu_model": "${CPU_MODEL}",
|
|
"threads": ${THREADS},
|
|
"ram_gb": ${RAM_GB},
|
|
"gpu_vendor": "${GPU_VENDOR}",
|
|
"gpu_vram_gb": ${GPU_VRAM_GB}
|
|
}
|
|
JSON
|
|
|
|
cat "$BASE_DIR/generated/machine-profile.json"
|