Commit Graph

39 Commits

Author SHA1 Message Date
jsteube 5e01ff4c53 Refactor some u32x to u32 where u32x is not needed 2017-08-26 18:31:50 +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 98b4aab9d0 Update inc_rp_optimized to inc_rp for pure kernels 2017-08-11 23:51:17 +02:00
jsteube 34d882a116 Rename inc_rp.X to inc_rp_optimized.X 2017-08-11 11:25:47 +02:00
jsteube 24a2fb01aa Fix missing barrier in -m 8500 2017-08-07 18:58:23 +02:00
jsteube 14983a7542 Simplify RACF kernel 2017-08-03 14:27:53 +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 6401c58568 Align all the __constant buffers to workaround OpenCL JIT compiler errors in NV drivers 378.x 2017-02-26 15:04:53 +01:00
jsteube c094f3b511 Workaround added for NVidia OpenCL runtime: RACF kernel requires EBCDIC lookup to be done on shared memory 2017-02-25 17:36:29 +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
jsteube efff87b9d8 Fix some leftover spaces when experimenting with restrict keyword 2016-12-02 15:00:23 +01:00
Gabriele Gristina ec4eb91e17 Fix kernel build warnings (no previous prototypes and/or incompatible function parameters ... 2016-11-27 23:59:30 +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 3daf0af480 Added docs/credits.txt
Added docs/team.txt
2016-09-11 22:20:15 +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
Jens Steube c40bf412e5 Fix -m 8500: volatile no longer required 2016-05-06 11:44:28 +02:00
jsteube dbe2d96618 Fix -m 1500 multihash and benchmark
Fix -m  3000 multihash and benchmark
Fix -m  3100 multihash and benchmark
Fix -m  7700 multihash and benchmark
Fix -m  8500 multihash and benchmark
Fix -m 11500 multihash and benchmark
2016-05-03 10:57:23 +02:00
Jens Steube 0b3743ce94 - Added inline declaration to functions from simd.c, common.c, rp.c and types_ocl.c to increase performance
- Dropped static declaration from functions in all kernel to achieve OpenCL 1.1 compatibility
- Added -cl-std=CL1.1 to all kernel build options
- Created environment variable to inform NVidia OpenCL runtime to not create its own kernel cache
- Created environment variable to inform pocl OpenCL runtime to not create its own kernel cache
2016-05-01 23:15:26 +02:00
Jens Steube 97ac22e5e1 Cleanup -m 85xx kernels to latest standard 2016-04-16 17:39:16 +02: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
magnum a5be8a75ed Allow and support vector-width 16, which is current maximum for
OpenCL. Closes #226.
2016-02-18 08:51:45 +01:00
jsteube 7645a6f00f Fix warp bug on -m 8500 2016-02-16 13:24:36 +01:00
Jens Steube 65274b0404 Converted to new SIMD: -m 8500 -a 0 2016-02-06 11:03:25 +01:00
Jens Steube d8e58d5fd3 Prepare _a0 kernel for SIMD 2016-02-01 21:06:56 +01:00
Gabriele 'matrix' Gristina 0f0984fe86 Fixed all gpu code (see PR #179 for details) 2016-01-30 23:02:15 +01:00
Jens Steube a62b7ed06e Upgrade kernel to support dynamic local work sizes 2016-01-19 16:06:03 +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 61744662c0 Fix path to includes 2016-01-03 01:56:41 +01:00
jsteube 5f7c47b461 Fix path to includes 2016-01-03 01:48:05 +01:00
jsteube ed35c11e2a Fix -m 8500 kernel 2015-12-16 16:21:10 +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