48GB–96GB PCIe Accelerator Pre-Flight & OpenAI Launcher (FuriosaAI RNGD / RTX 4090 48GB / Atlas 300I Duo) (audit-and-serve-48gb-pcie-accelerator.sh)
Auto-detects FuriosaAI RNGD (furiosa-smi), Clamshell RTX 4090 48GB (nvidia-smi power clamp & P2P check), or Huawei Atlas 300I Duo (npu-smi dual-die check), verifies thermals/BAR1, and starts the native OpenAI-compatible server.
48GB–96GB PCIe Accelerator Pre-Flight & OpenAI Launcher (FuriosaAI RNGD / RTX 4090 48GB / Atlas 300I Duo)
Auto-detects FuriosaAI RNGD (furiosa-smi), Clamshell RTX 4090 48GB (nvidia-smi power clamp & P2P check), or Huawei Atlas 300I Duo (npu-smi dual-die check), verifies thermals/BAR1, and starts the native OpenAI-compatible server.
#!/usr/bin/env bash
# Tinker AI — 48GB–96GB PCIe Inference Card Doctor & OpenAI Server Launcher (Guide #47)
set -euo pipefail
MODE="cuda48g"
MODEL="Qwen/Qwen3.6-35B-A3B-FP8"
PL_WATTS="350"
PORT="8000"
echo "=== [1/3] Enumerating PCIe Gen4/Gen5 Link Width, Airflow & BAR Mapping ==="
lspci -nn | grep -iE "VGA|3D|Processing|Furiosa|Huawei" || true
if [ "$MODE" = "furiosa" ]; then
echo "=== [2/3] Auditing FuriosaAI RNGD (48GB HBM3 · 180W TCP) via furiosa-smi ==="
furiosa-smi
echo "Note: Ensure chassis airflow keeps passive RNGD die < 78C under sustained prefill!"
echo "=== [3/3] Launching furiosa-llm OpenAI Server on port $PORT ==="
furiosa-llm serve "$MODEL" \
--host 0.0.0.0 \
--port "$PORT"
elif [ "$MODE" = "cuda48g" ]; then
echo "=== [2/3] Auditing Clamshell RTX 4090 48GB Blower & Clamping Power to ${PL_WATTS}W ==="
sudo nvidia-smi -pm 1 || true
sudo nvidia-smi -pl "$PL_WATTS" || true
nvidia-smi --query-gpu=index,name,memory.total,power.limit,temperature.gpu,pstate --format=csv
nvidia-smi topo -m || true
echo "=== [3/3] Launching vLLM OpenAI Server (48GB Single-Card Zero-Split Mode) ==="
vllm serve "$MODEL" \
--max-model-len 65536 \
--gpu-memory-utilization 0.92 \
--enable-prefix-caching \
--host 0.0.0.0 --port "$PORT"
elif [ "$MODE" = "ascend" ]; then
echo "=== [2/3] Auditing Huawei Atlas 300I Duo (2x 48GB Ascend 310P Dies) via npu-smi ==="
npu-smi info
ls -la /dev/davinci* /dev/davinci_manager /dev/devmm_svm /dev/hisi_hdc || true
echo "=== [3/3] Reminder: Use FP16 / W8A8 (NOT BF16) across TP=2 (/dev/davinci0,1) in MindIE ==="
docker ps --filter "ancestor=ascendhub.huawei.com/public-ascendhub/mindie" || echo "Ready to start MindIE W8A8 container on port $PORT (bind /dev/davinci0 & /dev/davinci1)."
else
echo "Unknown BACKEND_MODE=$MODE (expected: furiosa | cuda48g | ascend)" >&2
exit 1
fi
Customizable Parameter Reference for audit-and-serve-48gb-pcie-accelerator.sh
This SH artifact exposes 4 template variables compiled client-side in your browser.
| Template Token | Parameter Description | Verified Default | Example Format |
|---|---|---|---|
{{BACKEND_MODE}} | Target Card Backend (furiosa | cuda48g | ascend) | cuda48g | cuda48g |
{{MODEL_REPO_OR_PATH}} | Model Repo ID or Local Path | Qwen/Qwen3.6-35B-A3B-FP8 | Qwen/Qwen3.6-35B-A3B-FP8 |
{{MOD4090_PL_WATTS}} | Modded RTX 4090 48GB Power Cap Watts (320-360 recommended) | 350 | 350 |
{{API_PORT}} | OpenAI Server Port | 8000 | 8000 |
Verified Environment for "48GB–96GB High-VRAM PCIe Inference Cards Compared: FuriosaAI RNGD (48GB HBM3 · 1.5 TB/s · 180W TCP NPU) vs Clamshell-Modded RTX 4090 48GB Blower (1,008 GB/s GDDR6X) vs Huawei Atlas 300I Duo (96GB Dual-310P LPDDR4X Trap)"
FuriosaAI RNGD PCIe Gen5 x16 (48GB HBM3 · 1,500 GB/s · 256MB SRAM · 180W TDP w/ 3D-printed 60mm static-pressure fan shroud), Clamshell-Modded NVIDIA RTX 4090 48GB 2-Slot Blower (49,152 MiB GDDR6X · 1,008 GB/s · capped at 350W), and Huawei Atlas 300I Duo (96GB = 2× 48GB Ascend 310P3 · 2× 204 GB/s LPDDR4X · 150W) on AMD EPYC 9354P PCIe 5.0 Host (256GB DDR5)
Verified with WAN disconnected: Furiosa Executable Bundles (FXB), GGUF weights, and MindIE W8A8 shards load directly from local NVMe without license servers or cloud telemetry.
- **FuriosaAI RNGD Passive Heatsink & Ahead-of-Time FXB Compilation Boundary:** Retail/server RNGD PCIe cards ship **passively cooled** (expecting 4U rack airflow) and do not run arbitrary uncompiled PyTorch CUDA ops on the fly. In a deskside tower, you **must attach a 3D-printed fan duct (`>= 4.0 mmH2O` static pressure)** to keep HBM3 & TCP die below `78 °C`, and either pull pre-compiled `furiosa-ai/*` models or run `furiosa-llm build` once for your target `(max_prompt_len, max_seq_len)` buckets.
- **Modded RTX 4090 48GB Rear Clamshell GDDR6X Thermal Runaway (`>102 °C`):** Placing 12 of the 24 GDDR6X chips on the **backside of the PCB** leaves them cooled only by a thin backplate outside the main blower fin stack. Running stock `450W` TDP pushes rear memory junction temperatures past `102–106 °C` during long-context prefill, triggering silent ECC retry throttling or `Xid 63/79` crashes. Always enforce `sudo nvidia-smi -pm 1 && sudo nvidia-smi -pl 350` (loses `<4%` decode tok/s while dropping rear VRAM temps by `14–18 °C`!).
- **Huawei Atlas 300I Duo `96GB` Dual-Die Split & Missing Hardware `BF16`:** `npu-smi info` exposes **two separate `48GB` Ascend 310P3 NPUs (`/dev/davinci0` and `/dev/davinci1`)**, each wired to `204 GB/s` LPDDR4X—**not** a unified 96GB pool! Worse, the DaVinci 310P ISA **lacks native `BF16` compute**, forcing `FP16` execution that overflows (`NaN` / gibberish) on high-activation models like Gemma 3/4 unless quantized to `W8A8` via `msmodelslim` inside Huawei’s `MindIE` container.
3-Step Verification Checklist After Deploying audit-and-serve-48gb-pcie-accelerator.sh
- Verified thermal protection before sustained load: attached active static-pressure fan duct on passive `RNGD` / `300I Duo` (`<78 °C`), or locked `sudo nvidia-smi -pl 350` on clamshell `RTX 4090 48GB`.
- Confirmed expected device topology (`furiosa-smi` shows 48GB HBM3, `nvidia-smi` shows `49152 MiB`, or `npu-smi info` shows both `310P3` 48GB dies healthy).
- Matched runtime to silicon: `furiosa-llm serve` (FXB FP8/W4A8) on RNGD, `vLLM` / `llama.cpp` on RTX 4090 48GB, and `MindIE` (`W8A8` `TP=2`, avoiding `BF16`) on Atlas 300I Duo.