Che cos'è esattamente un FPGA?
Un FPGA non è come una GPU. Una GPU è un processore pre-progettato con tutti i circuiti già presenti. Tutto ciò che devi fare è collegarlo e lasciare che sia l'interfaccia software . Gli FPGA, d'altra parte, sono animali completamente diversi. Sono un processore "vuoto". Devi progettare un FPGA, non solo comprarlo. Determinate cosa fanno i transistor cosa, come si collegano, ecc. Sono efficienti perché ogni parte ha un lavoro, ma richiedono una conoscenza approfondita dell'elettronica e della progettazione di circuiti integrati.
Nella domanda che hai collegato spiegando che cosa rende una GPU così buona con il crack delle password, dice che una GPU ha un un gran numero di core identici che possono eseguire lo stesso algoritmo in parallelo. Il modo in cui il core funziona internamente è qualcosa che non è necessario conoscere per poterlo utilizzare (e probabilmente non può sapere legalmente). Per un FPGA, tuttavia, non esiste un'unità del genere. Tu crea ogni core e disegnalo. Tu imposta le porte logiche individuali. Fondamentalmente, tu progetta il chip, usando l'FPGA come nient'altro che l'hardware fisico reale che contiene i transistor. Sviluppare su di loro può essere difficile.
Quale è più veloce per l'hash cracking?
A parità di prezzo, una GPU di fascia alta è probabile che sia più veloce di un FPGA agli hash di elaborazione, ma è probabile che un FPGA utilizzi meno energia per elaborare lo stesso numero di hash. È importante notare che esistono diversi tipi di FPGA. Una "conversione" FPGA comporta la creazione di un ASIC da FPGA HDL . Questo è spesso piuttosto costoso e viene effettuato solo al momento dell'acquisto in quantità, ma tende ad essere un po 'più veloce di un normale FPGA ( apparentemente circa il 30% più veloce) e molto più facile , e più economico, rispetto alla progettazione di un ASIC. Un vero ASIC è, ovviamente, molto più efficiente di entrambi. La progettazione di un ASIC è ancora più difficile rispetto alla programmazione di un FPGA e richiede una conoscenza molto più approfondita della progettazione di circuiti integrati di basso livello. Nel complesso, gli ASIC sono efficienti e veloci, ma costosi e difficili da progettare.
Quale dovresti ottenere?
Se vuoi il massimo MHash / i possibile per un dato prezzo, o se hai bisogno della flessibilità di supportare più algoritmi, prendi una GPU. Se vuoi il MHash / J più alto possibile ( joule , un'unità di energia), ottieni un FPGA. Se vuoi sia la velocità che l'efficienza e non ti interessa il prezzo, progetta un ASIC.
Se sei nuovo nel cracking delle password e vuoi semplicemente creare un efficiente cracking rig, procurati alcune GPU veloci. FPGA e ASIC vengono in genere utilizzati se si è un'azienda con un team di sviluppatori con un budget grande (ma rigoroso) con cui lavorare, quando sono necessarie soluzioni personalizzate. Per la maggior parte delle esigenze di cracking delle password, una GPU farebbe bene, non solo per la loro velocità competitiva, ma anche per il popolare software di hash cracking come Hashcat è progettato per utilizzare le GPU per l'accelerazione. Niente di quel genere esiste per FPGA o ASIC, il che significa che dovresti progettarlo tutto da solo.
Un post eccellente sull'Electronic Stack Exchange spiega la differenza tra FPGA, ASIC e microcontrollori generici (a cui una GPU è più simile) in modo più dettagliato, da una prospettiva di progettazione elettronica, piuttosto che da una prospettiva di hash cracking.