Why this build

The Tesla P4 is a 75 W, passively cooled, half-height data-center card that is very cheap used. A small-form-factor PC has no PCIe slot, but the HP ProDesk 600 G5 Mini does have two M.2 slots, and OCuLink turns each one into an external PCIe x4 link. Pascal (compute capability 6.1) still runs current CUDA drivers, and the P4 has no artificial NVENC concurrent-session cap. The result is a compact, low-power box for local LLM inference, speech-to-text, transcoding and training experiments, with 16 GB of GPU memory for about $600.

How it fits together

Bill of materials (about $600 total, mostly used parts)

ItemQtyNotes
HP ProDesk 600 G5 Mini, barebones1Bought on eBay. Both M.2 slots used for the GPU links. Case modded to carry three fans
NVIDIA Tesla P4 8 GB2Used data-center pulls, bought on eBay
M.2 to OCuLink adapter2One per M.2 slot
JHH OCuLink PCIe 4.0 x4 dock2One per GPU. DIP switches for power-on and reset delay
120 W Pico PSU (24-pin ATX)2One per dock
12 V 300 W power supply1Feeds both Pico PSUs
90 W universal laptop power brick1Powers the ProDesk
PNY 2 TB 2.5 inch SATA SSD1Boot drive
KingSpec NX 512 GB NVMe SSD1External data drive
ORICO 40 Gbps NVMe enclosure, with fan1USB-C. Negotiated 10 Gbps on the ProDesk when checked
Thermalright 60 x 60 x 25 mm fans, black9Three per GPU, plus three on the modded ProDesk case
Copper-fin heatsink2Replaces the stock P4 heatsink
XIAO microcontroller1Polls GPU temperature and sets fan speed
Thermalright 12-port fan hub1Distributes the PWM signal to all fans
Digital fan-speed readout1Shows speed as a percentage

PCIe link (measured)

Both cards link at x4, the most an M.2 slot can offer. The docks are PCIe 4.0 capable, but the P4 is a PCIe 3.0 card, so the link runs at Gen 3. At idle the link drops to a lower speed to save power, so check it under load for the real figure.

GPUPCI addressRoot portNegotiated link
GPU 001:00.000:1b.0x4, Gen 3 under load (Gen 1 at idle)
GPU 102:00.000:1b.4x4, Gen 3 (8 GT/s)

The two cards sit behind separate PCH root ports, so each has its own link.

Power

The Tesla P4 has a 75 W power limit, confirmed with nvidia-smi, and is powered through its dock. Idle readings: GPU 0 about 6.4 W, GPU 1 about 23.7 W (light load at the time). Under sustained LLM inference on both cards, peak GPU power was 61.6 W (GPU 0) and 64.9 W (GPU 1), below the 75 W limit.

Cooling

The P4 is built for server airflow, so the stock heatsink comes off. Each card gets a copper-fin heatsink and three 60 mm fans in a cut-out shroud. Three more fans are fitted to the modded ProDesk case. All nine fans run from one Thermalright 12-port hub, and a XIAO sets the fan speed automatically from GPU temperature. The GPU driver reports fan speed as N/A because the fans are external.

Idle temperatures: GPU 0 32 C, GPU 1 38 C. Peak under sustained inference on both cards: 61 C (GPU 0) and 59 C (GPU 1).

Software

Readings were taken while the machine ran from bench-test drives, so OS-level details may differ with the final drives.

ItemValue
OSUbuntu 26.04.1 LTS, kernel 7.0.0-42
NVIDIA driver580.178.04 (proprietary, from the Ubuntu repos), CUDA 13.0
Docker29.9.2, Compose v5.6.1, NVIDIA Container Toolkit 1.20.1
Services (Docker Compose)Ollama, Open WebUI, Meshroom, nvidia_gpu_exporter, node_exporter

Benchmarks

These are LLM inference runs through Ollama, not a synthetic burn-in, so treat them as a realistic sustained inference load and not the worst case a P4 can produce.

Single GPU: hermes3:8b (4.7 GB, 4-bit) on one P4, about 90 seconds of back-to-back 400-token generations: about 27.7 tokens/s generation (steady over 4 runs), about 600 tokens/s prompt processing (warm), peak 60.6 W and 54 C, SM clock 1113 MHz at 99% utilisation.

Both GPUs at once: hermes3:8b on one card and qwen3:4b-instruct on the other, generating continuously for about 2.5 minutes.

GPU 0GPU 1
Utilisationup to 99%up to 98%
Power (peak / mean under load)61.6 W / 59.0 W64.9 W / 62.4 W
Temperature (start to peak)46 to 61 C39 to 59 C
SM clock under load1113 MHz, steady1113 MHz, steady
PCIe linkGen 3 x4Gen 3 x4

Neither card reached its 75 W limit, because token generation is memory-bound. Temperatures fell back to about 50 C within a minute of unloading the models. The SM clock stayed flat at 1113 MHz (card maximum 1531 MHz) while temperatures were well below the limit, which points to a power-state clock for this kind of load. Throttle reasons were not captured, so that is not confirmed.

Safety

This build uses an external 12 V supply feeding ATX-style power modules, and bare GPU cards on a shelf. The cards are open to the air, so keep fingers, metal and liquids away. Do not run the GPUs without the fans, and use a power supply rated for the load. You build and run this at your own risk.

What is next

Source files and license

Everything is in the GitHub repo: github.com/SpiritualCreations42/eve-v2. Code is MIT, and documentation and photos are CC BY-SA 4.0. The Spiritual Creations name, logo and label artwork are not covered by those licenses.

Built by Spiritual Creations, a veteran-owned business.