Donnerstag, 14. Februar 2008

Aircrack speed up with CUDA

Hey,
recently I created a patch (better a aircrack trunk), which is capable of using NVIDIA's CUDA interface.

So what changed?
- parts of the function body of "crack_wep_thread" changed to separate the KoreK attack steps in a (in real that are 32 ) GPU thread.

For now, the negative part?
- maximal 16KByte local variables transmission towards GPU, due to this at the moment only 15 of 17 Korek attacks possible (error message: "Entry function '_Z13KoreK_attacksPlS_PiS0_S0_PhS0_S1_S0_' uses too much local data (0x40 bytes + 0x4700 bytes system, 0x4000 max)"
- the votes matrix is (sadly) serialized for transmission to GPU (sadly on CPU)
- at least, I do not know, how the GPU threads are working, so is there really a loop unrolling towards the threads?
-> If not, then the for-loop has to be parallelized too
- probably there is a mutex problem, if max_cpu is too small the program exits, I tried it with max_cpu=1 and the program stops with the message not enough IVs present, but from debug messages I see, that it did not try all the whole read IVs
- Still do not know if the calculated values are correct (better: valid), for the moment it is only interesting, that there is speed up.

What is the benefit (performance)?
Some data*:
- this aircrack
airrack + GPU + 03:
~8480.5 keys/s
[00:00:07] Tested 62206 keys
[00:00:18] Tested 151153 keys
[00:01:01] Tested 504845 keys
[00:01:42] Tested 852933 keys

- aircrack Aircrack-ng 0.9.2
~5644.9 keys/s
[00:00:06] Tested 28673 keys
[00:00:19] Tested 123649 keys
[00:01:02] Tested 350977 keys
[00:02:01] Tested 681473 keys

-> round about 50% faster, by transferring one calculation-intensive function to GPU
* Colfax, 2x Dual-Core AMD Opteron(tm) Processor 2218, 8GB DRAM ECC, Tyan S2915 MCP55, GeForce 8800 GT, SLES-10-SP1

What will be changed?
- the function "do_wep_crack1" is a real good candidate for transferring it on GPU . The functions includes a lot of for-loops which seems pretty promising for speed up.

1 Kommentar:

Marek hat gesagt…

Hi, source code or patch please?