2009-12-26 10 views
5

Sono novizio nella programmazione GPU e lavoro sulla forza bruta RAR Password Recovery su ATI Stream Processor usando il linguaggio brook +, ma vedo che il kernel scritto in lingua brook + non lo fa consentire qualsiasi chiamata alle normali funzioni (eccetto le funzioni del kernel), le mie domande sono:Ripristino password RAR su GPU utilizzando il processore ATI Stream

1) come utilizzare l'API unrar.dll (per unrar file archivio) in questa situazione? e questo è l'unico modo per programmare il recupero della password RAR?

2) che dire di crack e del software ElcomSoft che utilizzano GPU, come funzionano?

3) quale ruolo svolge esattamente la funzione all'interno della GPU (processore ATI Stream o CUDA) in questo programma?

4) la tecnologia nVidia/CUDA è più semplice/flessibile di ATI/brook + lingua?

risposta

2

1) unrar.dll è una libreria di collegamento dinamico compilata. Questi si eseguono sulla CPU. Le GPU hanno un codice macchina molto diverso e un modello di esecuzione molto diverso, quindi non possono eseguire DLL.

Si potrebbe provare a implementare un callback dalla GPU alla CPU tramite eventi, o creare un interprete x86 sulla GPU, ma questi quasi certamente funzionerebbero più lentamente rispetto alla sola esecuzione sulla CPU.

L'utilizzo di unrar.dll non è l'unico modo per programmare il recupero della password RAR. Potresti invece creare da zero il tuo codice per CPU e GPU.

2) Funzionano avendo il codice CPU richiesto esplicitamente che alcuni codici GPU siano eseguiti sulla GPU.

3) Non so esattamente. Immagino però che abbia un programma GPU che prova molte combinazioni diverse e trae vantaggio dall'eseguire questi in parallelo.

4) CUDA è più maturo del ruscello +. brook + potrebbe essere altrettanto semplice per compiti semplici, ma non è così completo. Per i nuovi progetti la maggior parte delle persone ora scegliere OpenCL su brook +.

(Non sono sicuro di cosa intendi fare, ma nessuno dei precedenti sembra suscitare qualcosa di sinistro.)