← Back to home

smallpieces Hardware, History, and Roadmap

Page Overview: Complete operational chronicle, physical slot mapping, Docker configuration, and upgrade roadmap for server smallpieces.

📜 1. Historical Journey (Feb 2026 – Present)

1.1 Executive Overview & Architectural Evolution

Server smallpieces originated as a budget multi-GPU prebuilt mining rig frame designed to process Folding@Home Work Units across cost-effective mid-tier graphics cards. Over time, it underwent a complete transformation from a memory-constrained Haswell system (smallpieces v1) to a high-density, 12-slot custom chassis built on Kaby Lake hardware (smallpieces v2).

smallpieces v1 Era (Feb 2026 – Jun 29, 2026) smallpieces v2 Era (Jun 30, 2026 – Present)
• GPNE Mining Rig Frame Case • Octominer X12 Ultra 12-Slot Chassis
• AX-B85M-ETH Motherboard • Intel Core i7-7700 (Kaby Lake 4C/8T)
• Intel Core i7-4790 (Upgraded from Celeron) • Intel Core i7-7700 (Kaby Lake 4C/8T)
• 8GB DDR3 SODIMM (Upgraded from 4GB) • 32GB DDR3L SODIMM (2x 16GB, Upgraded)
• Noctua NH-L9x65 Cooler • Noctua NH-L9i Cooler
• 2400W Mining Power Supply • 4x Quad Octominer HPE 750W PSUs
zswap Compression + Secondary SATA SSD • Dedicated 240V / 30A Electrical Circuit
• Mixed GPUs (GTX 1070 / 2060 / 3060 Ti) • 1x RTX 4070 + 4x RTX 5060 Ti (5 Live)

1.2 Phase 1: smallpieces v1 Era (Feb 2026 – June 2026)

  • Chassis & Motherboard: GPNE ATX Full Tower Steel Mining Rig Frame Case with integrated AX-B85M-ETH motherboard.
  • CPU & RAM Upgrades:
  • Stock prebuilt shipped with a low-tier Celeron CPU and 4GB RAM SODIMM.
  • User Upgrade: Upgraded to an Intel Core i7-4790 (Haswell 4-Core / 8-Thread, LGA 1150) paired with Noctua NH-L9x65 cooler and an 8GB DDR3-1600 SODIMM module (the absolute single-slot hard limit of the AX-B85M-ETH motherboard).
  • Power Supply & Electrical Circuit: 2400W Server Mining Power Supply operating on a standard 120V / 15A household circuit. This necessitated strict software power limits across all installed GPUs to maintain safe electrical headroom and prevent breaker trips.
  • Primary Storage: 30GB mSATA SSD.
  • Memory Constraints, "iowait Hell", and the zswap Hack

  • The Memory Crisis: Concurrent F@H "whale" jobs (>1GB RES RAM each) frequently overwhelmed the 8GB RAM limit, causing severe swapping and disk I/O thrashing ("iowait hell").
  • Storage & Power Hack (March 19, 2026):
  • Added a secondary 2.5" Crucial M4 64GB SATA SSD.
  • Power Adapter Hack: Bypassed the undocumented JSATA_PWR motherboard header by powering the SSD via an external USB 3.0 to SATA power adapter.
  • The zswap Compression Hack:
  • Configured Linux zswap in-RAM compressed swap allocation.
  • Compressed memory pages prior to swapping to disk, significantly dampening I/O latency and stabilizing 24/7 execution during heavy multi-job peaks.
  • Early GPU Telemetry & The AMD RX 9060 XT Test

  • Early Baseline: 2x NVIDIA GeForce GTX 1070 (500fc1e1.., bb7dfb34..).
  • The AMD Test ("Middle Ages"):
  • Added 1x AMD Radeon RX 9060 XT (38366633..).
  • Purpose: Deployed specifically as an experimental testbed to validate and benchmark telemetry logging routines inside neumon and fahnalysis against AMD ROCm / OpenCL GPU architectures.
  • Outcome: Yielded poor PPD throughput compared to NVIDIA cards and was subsequently decommissioned.
  • Pre-Migration Lineup: 1x RTX 4070 (12GB), 1x RTX 2060 SUPER, 1x RTX 2060, and 3x RTX 3060 Ti cards.

  • 1.3 Phase 2: smallpieces v2 Migration & Octominer Discovery (June 27 – June 30, 2026)

  • The Transition Rationale: The original plan was simply to relocate the v1 rig to a newly installed 240V / 30A circuit to lift power cap restrictions. However, the Haswell i7-4790 CPU bottlenecks and 8GB RAM single-slot limit were too restrictive for long-term fleet scaling. This prompted hardware research that led directly to the discovery and purchase of a surplused Octominer X12 Ultra chassis.
  • The New Platform: Rebuilt inside the Octominer X12 Ultra 12-slot server chassis connected to the dedicated 240V / 30A circuit.
  • Build Component Summary (smallpieces v2):
    ├── Chassis: Octominer X12 Ultra Custom 12-Slot Server Rig ($249.00)
    ├── Electrical Circuit: Dedicated 240V / 30A AC Circuit
    ├── CPU: Intel Core i7-7700 (Kaby Lake 4-Core / 8-Thread, 3.6 GHz) ($127.00)
    ├── CPU Cooler: Noctua NH-L9i Low-Profile Cooler (Thermalright AXP90-X53 was too tall)
    ├── Memory: 32GB (2x 16GB) DDR3L-1600MHz PC3-12800 SODIMM ($249.00)
    ├── Power Delivery: 4x (Quad) Octominer HPE 750W 200V-277V Platinum Plus PSUs
    └── Cables & Hardware: C13/C14 14AWG 15A/250V power extension cords ($64.00)

    Key Architectural Correctives

    1. Cooler Swap (Noctua NH-L9i): The planned Thermalright AXP90-X53 Full Copper cooler exceeded the lid clearance of the OX12U chassis. The system ran temporarily on a re-pasted stock cooler before permanent installation of the low-profile Noctua NH-L9i.

    2. RAM Bottleneck Eliminated: Upgraded to 32GB DDR3L (2x 16GB SODIMM), completely removing the legacy 8GB Haswell swap constraint.

    3. Quad Power Supply Array: Powered by 4x (quad) Octominer HPE 750W Platinum Plus PSUs running on 240V input for optimal power distribution across 12 slots.


    1.4 Phase 3: Modern Fleet Standard (July 2026 – Present)

    Current Live GPU Topology (smallpieces - July 2026):
    ├── Slot 01:00.0: 1x NVIDIA GeForce RTX 5060 Ti (8GB VRAM, 150W cap) [GPU-56d10701]
    ├── Slot 02:00.0: 1x NVIDIA GeForce RTX 4070 (12GB VRAM, 145W cap)    [GPU-d65f3411]
    ├── Slot 04:00.0: 1x NVIDIA GeForce RTX 5060 Ti (8GB VRAM, 150W cap) [GPU-2e4a1d96]
    ├── Slot 05:00.0: 1x NVIDIA GeForce RTX 5060 Ti (8GB VRAM, 150W cap) [GPU-a83e55f9]
    └── Slot 06:00.0: 1x NVIDIA GeForce RTX 5060 Ti (8GB VRAM, 150W cap) [GPU-8854baa9]

    🎛️ 2. Physical to Logical GPU Ordering Map (Octominer X12 Ultra)

    The physical slot designations are silk-screened on the Octominer X12 Ultra motherboard.

  • Slot 1 is the CPU-adjacent physical/electrical PCIe Gen3 x16 slot.
  • Slots 2 through 12 are physical x16 slots that are electrically PCIe Gen3 x1.
  • Motherboard Slot GPU Model PCI Bus ID NVIDIA Index GPU UUID Target Container Port Notes
    Slot 1 (x16) MSI RTX 5060 Ti 8G SHADOW #1 0000:01:00.0 0 GPU-a83e55f9-8d3c-4770-8faf-cc15567610cd foldingathome 7396 Active (CPU-tied slot)
    Slot 2 (x1) MSI RTX 5060 Ti 8G VENTUS 0000:05:00.0 3 GPU-56d10701-aced-b504-06b0-0d0fc856686d foldingathome 7396 Active
    Slot 3 (x1) Empty Empty
    Slot 4 (x1) MSI RTX 5060 Ti 8G SHADOW #2 0000:06:00.0 4 GPU-8854baa9-8a40-a186-cef9-38b66e867190 foldingathome 7396 Active
    Slot 5 (x1) Empty Empty
    Slot 6 (x1) Empty Empty
    Slot 7 (x1) Empty Empty
    Slot 8 (x1) Empty Empty
    Slot 9 (x1) Empty Empty
    Slot 10 (x1) Zotac Blower RTX 4070 0000:03:00.0 2 GPU-d65f3411-caf4-41a8-0248-0dcf200dee35 foldingathome 7396 Active (12GB GDDR6X)
    Slot 11 (x1) Empty Empty
    Slot 12 (x1) PNY RTX 5060 Ti 16GB VERTO 0000:02:00.0 1 GPU-2e4a1d96-f5b4-0b5a-c5e2-91c467224a00 foldingathome 7396 Active (16GB Dual Fan)

    🐳 3. Docker Compose Device Assignments (device_ids)

    These assignments require the environment variables CUDA_DEVICE_ORDER=PCI_BUS_ID and OpenCL_DEVICE_ORDER=PCI_BUS_ID to be configured inside the container so that they align exactly with the driver's PCIe indexing:

  • foldingathome: device_ids: ['0', '1', '2', '3', '4'] (All 5 live GPUs consolidated into a single service)
  • Graceful Hardware Swap Routine

    To prevent orphaned slot bindings or phantom "unsupported" devices in F@H v8 client.db when replacing physical GPU cards:

    1. Finish WUs: In the F@H UI, set the container to Finish so active simulations complete cleanly without fetching new units.

    2. Unselect Devices: Once all units finish, unselect all active GPUs from the allowed devices list in the UI.

    3. Shutdown & Swap: Stop the compose service (docker compose down), execute the physical card swaps, and update device_ids: in docker-compose.yaml.

    4. Boot & Go: Start the container. F@H will dynamically re-enumerate the fresh hardware complement without phantom entries. Select all 5 GPUs in the UI and press Fold.


    🚀 4. Immediate Hardware Upgrade Roadmap

    1. Phase 1 (Slot Swap - Zero Cost): Move RTX 5060 Ti from Slot 1 (x16) to Slot 10 (x1 riser), move RTX 4070 from Slot 10 to Slot 1 (x16). Verify system stability (~+2.18M PPD net gain).

    2. Phase 2 (Net New 5060 Ti): Acquire net new RTX 5060 Ti and install in Slot 8 (x1 riser). Verify system stability (~+4.65M PPD addition).

    3. Phase 3 (RTX 5070 Slot 1 Upgrade): Acquire RTX 5070 (under 300mm length constraint), move RTX 4070 from Slot 1 to Slot 6 (x1 riser), install RTX 5070 in Slot 1 (x16). Verify system stability (~+8.20M PPD addition; smallpieces total ~41.85M PPD).