Quello è stato l'inizio di un progetto che non avevo pianificato.
Venivo da un background software. Capivo Linux, networking, orchestrazione. Non capivo la dinamica termica, lo stress meccanico, il comportamento dei materiali sotto carico sostenuto. Ho imparato tutto questo — non dalla documentazione, ma dal fallimento.
Quello che è seguito sono stati tre anni di design iterativo attraverso cinque revisioni hardware complete. Ognuna ha insegnato qualcosa che la precedente non poteva.
Prima ho testato i rig da mining. Sembrano lo stesso workload — molte GPU, alta utilizzazione, operatività continua. Non lo sono. Il mining tollera l'interruzione. L'inferenza no. Quella distinzione da sola ha invalidato un'intera classe di hardware.
Così ho iniziato a progettare da zero. CAD. Struttura in alluminio custom. Componenti stampati in 3D. Ogni cavo, ogni vite, ogni angolo di mounting guidato da vincoli termici e meccanici. Un cavo instradato 3 cm fuori posto può cambiare la temperatura di una GPU di diversi gradi. Un fastener sbagliato può trasmettere vibrazione abbastanza da fessurare il silicio in 6-12 mesi.
Ho comprato motherboard che rispettavano ogni spec sul datasheet ed erano inutilizzabili sotto carico reale. Ho imparato che aderenza alle specifiche e operatività reale non sono la stessa cosa. Quella lezione è costata soldi.
Ho documentato tutto: perché le configurazioni di mining falliscono sotto carico di inferenza. Vincoli driver (CUDA 11.x, fine vita Kepler, limiti di enumerazione GPU). Risultati di validazione: 8 GPU al 100% per 12 ore continuative. Range di temperatura 35–52°C su tutte le GPU, con zero thermal drift. Per riferimento: una K80 in un server standard gira a 75–90°C sotto lo stesso carico. Niente datacenter. Niente raffreddamento a liquido. Ambiente residenziale, condizioni estive.
Non è una guida. È un set di appunti ingegneristici di uno che ha costruito, rotto e ricostruito un sistema cinque volte per farlo funzionare.