1
0
mirror of https://github.com/hashcat/hashcat.git synced 2024-11-26 18:08:20 +00:00
Commit Graph

40 Commits

Author SHA1 Message Date
jsteube
2b9888486e Make -m 14000 a pure kernel only and add volatile for asm statement 2017-08-28 22:20:40 +02:00
jsteube
99f416435e Fix invalid use of __constant in LM kernel 2017-08-28 19:40:51 +02:00
jsteube
1aa76eac15 Refactor use of __constant to match up with the user selected attack mode 2017-08-25 17:52:55 +02:00
jsteube
1d04de3a8e Limit kernel-loops in straight-mode to 256, therefore allow rules to be stored in constant memory 2017-08-23 12:43:59 +02:00
jsteube
319799bbbf Switch the datatypes of the variables responsible for work-item count and work-item size from u32 to u64 2017-08-19 16:39:22 +02:00
jsteube
af6052d34b Revert some invalid rename of kernel files 2017-08-01 15:01:16 +02:00
jsteube
2802f1d592 Fix vector function calls and datatypes 2017-08-01 14:56:09 +02:00
jsteube
5e34ec348e Optimize kernels for ROCm 1.6
- Remove inline keywords
- Remove volatile keywords where it causes ROCm to slow down
- Replace DES functions (looks like bitselect somehow is no longer mapped to BFI_INT)
2017-07-22 18:05:18 +02:00
jsteube
beb6ee2061 Add OPTI_TYPE_OPTIMIZED_KERNEL
Rename unconverted fast hash kernels to optimized kernels
Finalize some converted fast hashes to default kernels
2017-07-18 14:45:15 +02:00
jsteube
c918173fcf Get rid of comb_t which can be safely replace with pw_t now 2017-06-25 00:56:25 +02:00
jsteube
2ece9742e1 Compress multiple newlines to one 2017-02-26 15:42:56 +01:00
jsteube
d0fa9d059d Remove some unused macros 2017-02-26 15:34:45 +01:00
jsteube
bbb4c74e85 OpenCL Kernel: Remove "static" keyword from function declarations; Causes older Intel OpenCL runtimes to fail compiling 2017-02-17 10:11:05 +01:00
Jens Steube
5c5f8da9b1 Fixed DEScrypt cracking in BF mode in case the hashlist contains more than 16 times the same salt
Fixes https://github.com/hashcat/hashcat/issues/972
2017-01-23 13:40:16 +01:00
Gabriele Gristina
5b202f22a8 Fix kernel build warnings (no previous prototypes and/or incompatible function parameters ... 2016-11-27 23:59:24 +01:00
Jens Steube
7fe575e204 Add const qualifier to variable declaration of matching global memory objects 2016-11-22 20:20:34 +01:00
jsteube
5afdf7bf85 Switch to S-boxes making use of a vector conditional select operation for AMD and generic 2016-11-14 02:19:26 +01:00
jsteube
59730fb908 descrypt cracking speed boost on AMD 2016-11-14 01:10:56 +01:00
jsteube
3daf0af480 Added docs/credits.txt
Added docs/team.txt
2016-09-11 22:20:15 +02:00
Jens Steube
a267c61fbb switch from clz() to ffz() for bitsliced algorithms 2016-08-31 13:35:08 +02:00
jsteube
8702d0e3e1 Workaround memory allocation limit from OpenCL by using multiple buffers for scrypt 2016-06-28 11:03:04 +02:00
Jens Steube
ed1863c263 Move macros DGST_R0 - DGST_R3 to host, define dgst_size for opencl kernel from host; both at runtime 2016-06-26 23:39:42 +02:00
Jens Steube
2899f53a15 Move files from include/ to OpenCL/ if they are used within kernels
Rename includes in OpenCL so that it's easier to recognize them as such
2016-05-25 23:04:26 +02:00
jsteube
c79bed3b7d Prepare for a more dynamic #pragma unroll use 2016-05-09 21:32:12 +02:00
jsteube
a0221cd368 Fix broken -m 1500 and -m 3000 2016-05-09 09:17:59 +02:00
jsteube
6dac6b409e Add compiler kernel hints for algorithms with fixed workgroup size 2016-05-09 00:58:04 +02:00
Jens Steube
c0d0ef60a5 Replace minus with select give a small boost in speed for -m 1500 and -m 3000 2016-04-24 20:52:21 +02:00
Jens Steube
01baa89bc0 Fix -m 3000 cracking performance
Fix -m 1500 cracking performance
2016-04-23 22:29:29 +02:00
Jens Steube
55cadb6834 Fix broken -m 1500 and -m 3000 in -a 3 mode 2016-03-06 14:24:21 +01:00
jsteube
dad03e394d Fixed two major problems
1) SIMD code for all attack-mode

Macro vector_accessible() was not refactored and missing completely.
Had to rename variables rules_cnt, combs_cnt and bfs_cnt into il_cnt which was a good thing anyway as with new SIMD code they all act in the same way.

2) SIMD code for attack-mode 0

With new SIMD code, apply_rules_vect() has to return u32 not u32x.
This has massive impact on all *_a0 kernels.

I've rewritten most of them. Deep testing using test.sh is still required.

Some kernel need more fixes:

- Some are kind of completely incompatible like m10400 but they still use old check_* includes, we should get rid of them as they are no longer neccessary as we have simd.c
- Some have a chance but require additional effort like m11500. We can use commented out "#define NEW_SIMD_CODE" to find them

This change can have negative impact on -a0 performance for device that require vectorization. That is mostly CPU devices. New GPU's are all scalar, so they wont get hurt by this.
This change also proofes that there's no way to efficiently vectorize kernel rules with new SIMD code, but it enables the addition of the rule functions like @ that we were missing for some long time. This is a TODO.
2016-02-27 17:18:54 +01:00
Jens Steube
a62b7ed06e Upgrade kernel to support dynamic local work sizes 2016-01-19 16:06:03 +01:00
Jens Steube
245301c9b4 Started optimizing some of the OpenCL kernel for latest AMD Catalyst 15.12:
- Replaced SBOX for DES:

replaced JtR's * Bitslice DES S-boxes making use of a vector conditional select operation (e.g., vsel on PowerPC with AltiVec).
with     JtR's * Bitslice DES S-boxes for x86 with MMX/SSE2/AVX and for typical RISC architectures.

Performance increased for DEScrypt from 355MH/s to 405MH/s and for LM from 11100MH/s to 12000MH/s

BTW, the same effect can be seen with non-maxwell GPU's

- Remove some volatile keywords no longer needed thanks to fixed catalyst bugs

- Fix weak-hash-check parameter for use with tools/test.sh
2016-01-14 19:44:47 +01:00
jsteube
e8229af09b Fix for -m 1500, -m 3000: Missing "defined" keyword
Fix for -m 1000: MD4_H1 copy/paste error
Fix for -m 8900, -m 9300: Invalid value for device_processor_cores for CPU devices
Fix for -m 9100: Variable salt2 initializer needed some clauses for clearness
Temporary limit gpu_accel for CPU devices to 1 for development phase
Mark pocl as too bleeding edge for production use, recommend native drivers
Remove workarounds for pocl
Rename VENDOR_ID_UNKNOWN to VENDOR_ID_GENERIC in host code
Rename IS_UNKNOWN to IS_GENERIC in kernel code
2016-01-07 20:14:34 +01:00
jsteube
331188167c Replace the substring GPU to a more appropriate "device" or "kernel" substring depending on the context 2016-01-05 08:26:44 +01:00
jsteube
8b50b60484 More fixes for general OpenCL platforms 2016-01-04 19:23:21 +01:00
jsteube
5f7c47b461 Fix path to includes 2016-01-03 01:48:05 +01:00
jsteube
acea69c561 final cleanup for -m 1500 2015-12-16 12:06:18 +01:00
jsteube
661225f03f Fix -m 1500 for NV
Fix C++ function header
2015-12-16 11:52:32 +01:00
jsteube
76cc1631be More kernel fixes for function calls and vector datatypes 2015-12-15 17:46:00 +01:00
jsteube
0bf4e3c34a - Dropped all vector code since new GPU's are all scalar, makes the code much easier
- Some performance on low-end GPU may drop because of that, but only for a few hash-modes
- Dropped scalar code (aka warp) since we do not have any vector datatypes anymore
- Renamed C++ overloading functions memcat32_9 -> memcat_c32_w4x4_a3x4
- Still need to fix kernels to new function names, needs to be done manually
- Temperature Management needs to be rewritten partially because of conflicting datatypes names
- Added code to create different codepaths for NV on AMD in runtime in host (see data.vendor_id)
- Added code to create different codepaths for NV on AMD in runtime in kernels (see IS_NV and IS_AMD)
- First tests working for -m 0, for example
- Great performance increases in general for NV so far
- Tested amp_* and markov_* kernel
- Migrated special NV optimizations for rule processor
2015-12-15 12:04:22 +01:00