Ray Shao Back to the room Desktop

Blog

12 posts, newest first.

  1. 8 min

    Homelab telemetry: Proxmox, InfluxDB, Telegraf and two GPU vendors on one dashboard

    How I built the monitoring stack for the Proxmox rack, and the three weeks it spent silently broken because Telegraf fetched its own config from the database it was supposed to feed.

    • proxmox
    • monitoring
    • influxdb
    • grafana
  2. 9 min

    Tricking Apple Silicon into native CUDA via homelab Proxmox

    How I built a transparent compiler proxy and runner stub architecture to compile and debug CUDA kernels on a remote Pascal GPU directly from macOS.

    • cuda
    • macos
    • homelab
    • systems
    • proxmox
  3. 6 min

    SSH and RDP into the homelab: a phone as my only dev machine

    I stopped syncing state across a laptop and a desktop and just moved the whole dev environment onto the H12D-8D. SSH for terminal work, RDP for anything that needs a screen, reachable from a phone.

    • homelab
    • remote-dev
    • ssh
    • rdp
    • claude-code
  4. Concurrency benchmarks across Qwen 3 8B and Gemma 4: 189 tok/s over PCIe 4.0

    The ultimate validation of my heterogeneous Instinct MI50 + Radeon RX 6900 XT cluster. I put Qwen 3 8B, Qwen 2.5 7B, and Gemma 4 through a 16-client concurrency sweep, clocking 189 tok/s with just +2.8ms of latency drift.

    • benchmarks
    • vllm
    • qwen3
    • gemma4
    • performance
    • concurrency
    • latency
  5. The 64KB LDS trap and MoE stragglers: low-level ROCm kernel surgery

    Once my heterogeneous MI50 + RX 6900 XT cluster was running, Google Gemma 4 crashed with an out-of-resources LDS fault. Here is how I diagnosed a 1,024-byte Triton attention overflow, patched the kernel, and mathematically analyzed why MoE models stall on asymmetric GPUs.

    • triton
    • kernels
    • microarchitecture
    • lds-sram
    • gemma4
    • moe
    • cuda-rocm
  6. 14 min

    Breaking artificial segmentation: heterogeneous AMD Tensor Parallelism on MI50 + RX 6900 XT

    MI50 prices spiked, so instead of buying a second datacenter card, I augmented my compute by pairing my existing MI50 with a consumer Radeon RX 6900 XT. Here is how I bypassed AMD's RCCL barriers and Blackwell SM100 traps to run vLLM TP=2 over PCIe 4.0.

    • rocm
    • rccl
    • tensor-parallelism
    • distributed-systems
    • mi50
    • rx6900xt
    • pcie-p2p
  7. 12 min

    Deploying vLLM on AMD Instinct MI50: 422 tok/s on retired enterprise silicon

    MI50 prices started spiking on the secondary market, but before buying more hardware, I wanted to see how far a single 32GB HBM2 card could go with continuous batching. Here is how I ported vLLM to GCN 5.1 in an unprivileged Proxmox container.

    • rocm
    • vllm
    • mi50
    • homelab
    • gpu
    • continuous-batching
  8. 7 min

    Outgrowing the ProArt: moving the homelab to a Huananzhi H12D-8D

    The X670E ProArt topped out at two GPU slots. Here's why I moved to a budget Huananzhi H12D-8D and an EPYC 7F52, and the four PCIe slots it opened up.

    • homelab
    • epyc
    • proxmox
    • hardware
  9. 12 min

    Building this site with Claude: design mockups to production architecture

    I used Claude to design the LCARS aesthetic, then engineered a zero-dependency Vite pipeline, custom Markdown AST parser, and static prerendering engine. Here is what the systems architecture looks like and why each decision got made.

    • web
    • react
    • vite
    • architecture
    • prerender
    • katex
  10. 12 min

    From bare-metal to cloud shuffles: what hypervisors hide in distributed data

    Why 2 vCPUs don't scale like 2 cores, how the Order Inversion pattern saves Reducers from silent OOMs, and what happened when I deployed a bare-metal Hadoop cluster from raw XMLs.

    • hadoop
    • spark
    • kubernetes
    • docker
    • aws
    • distributed-systems
    • benchmarking
    • mapreduce
  11. 9 min

    Qwen3.5 on MI50: tracking a segfault to a broken rocBLAS kernel

    Qwen3.5-35B-A3B crashed on every GPU load. Qwen-VL-30B-A3B ran fine at 75 t/s on the same card. The difference was a buggy pre-compiled kernel in rocBLAS: building it from scratch fixed it.

    • llm
    • rocm
    • gpu
    • homelab
  12. 11 min

    One node, three GPUs, ten guests: building the home Proxmox rack

    A Ryzen 7700, an MI50, a 1080 Ti, and a Raphael iGPU walk into a hypervisor. The hardware was straightforward: deciding which GPU received which virtualization path was where the engineering began.

    • proxmox
    • homelab
    • gpu
    • rocm