- 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
This commit is contained in:
jsteube
2015-12-15 12:04:22 +01:00
parent 586441fa25
commit 0bf4e3c34a
731 changed files with 29389 additions and 350013 deletions
+182 -182
View File
@@ -35,10 +35,10 @@
* SipHash Constants
*/
#define SIPHASHM_0 0x736f6d6570736575ull
#define SIPHASHM_1 0x646f72616e646f6dull
#define SIPHASHM_2 0x6c7967656e657261ull
#define SIPHASHM_3 0x7465646279746573ull
#define SIPHASHM_0 0x736f6d6570736575
#define SIPHASHM_1 0x646f72616e646f6d
#define SIPHASHM_2 0x6c7967656e657261
#define SIPHASHM_3 0x7465646279746573
#endif
#if defined _BCRYPT_ || defined _PSAFE2_
@@ -277,95 +277,95 @@
* SHA384 Constants (64 bits)
*/
#define SHA384M_A 0xcbbb9d5dc1059ed8ull
#define SHA384M_B 0x629a292a367cd507ull
#define SHA384M_C 0x9159015a3070dd17ull
#define SHA384M_D 0x152fecd8f70e5939ull
#define SHA384M_E 0x67332667ffc00b31ull
#define SHA384M_F 0x8eb44a8768581511ull
#define SHA384M_G 0xdb0c2e0d64f98fa7ull
#define SHA384M_H 0x47b5481dbefa4fa4ull
#define SHA384M_A 0xcbbb9d5dc1059ed8
#define SHA384M_B 0x629a292a367cd507
#define SHA384M_C 0x9159015a3070dd17
#define SHA384M_D 0x152fecd8f70e5939
#define SHA384M_E 0x67332667ffc00b31
#define SHA384M_F 0x8eb44a8768581511
#define SHA384M_G 0xdb0c2e0d64f98fa7
#define SHA384M_H 0x47b5481dbefa4fa4
#define SHA384C00 0x428a2f98d728ae22ull
#define SHA384C01 0x7137449123ef65cdull
#define SHA384C02 0xb5c0fbcfec4d3b2full
#define SHA384C03 0xe9b5dba58189dbbcull
#define SHA384C04 0x3956c25bf348b538ull
#define SHA384C05 0x59f111f1b605d019ull
#define SHA384C06 0x923f82a4af194f9bull
#define SHA384C07 0xab1c5ed5da6d8118ull
#define SHA384C08 0xd807aa98a3030242ull
#define SHA384C09 0x12835b0145706fbeull
#define SHA384C0a 0x243185be4ee4b28cull
#define SHA384C0b 0x550c7dc3d5ffb4e2ull
#define SHA384C0c 0x72be5d74f27b896full
#define SHA384C0d 0x80deb1fe3b1696b1ull
#define SHA384C0e 0x9bdc06a725c71235ull
#define SHA384C0f 0xc19bf174cf692694ull
#define SHA384C10 0xe49b69c19ef14ad2ull
#define SHA384C11 0xefbe4786384f25e3ull
#define SHA384C12 0x0fc19dc68b8cd5b5ull
#define SHA384C13 0x240ca1cc77ac9c65ull
#define SHA384C14 0x2de92c6f592b0275ull
#define SHA384C15 0x4a7484aa6ea6e483ull
#define SHA384C16 0x5cb0a9dcbd41fbd4ull
#define SHA384C17 0x76f988da831153b5ull
#define SHA384C18 0x983e5152ee66dfabull
#define SHA384C19 0xa831c66d2db43210ull
#define SHA384C1a 0xb00327c898fb213full
#define SHA384C1b 0xbf597fc7beef0ee4ull
#define SHA384C1c 0xc6e00bf33da88fc2ull
#define SHA384C1d 0xd5a79147930aa725ull
#define SHA384C1e 0x06ca6351e003826full
#define SHA384C1f 0x142929670a0e6e70ull
#define SHA384C20 0x27b70a8546d22ffcull
#define SHA384C21 0x2e1b21385c26c926ull
#define SHA384C22 0x4d2c6dfc5ac42aedull
#define SHA384C23 0x53380d139d95b3dfull
#define SHA384C24 0x650a73548baf63deull
#define SHA384C25 0x766a0abb3c77b2a8ull
#define SHA384C26 0x81c2c92e47edaee6ull
#define SHA384C27 0x92722c851482353bull
#define SHA384C28 0xa2bfe8a14cf10364ull
#define SHA384C29 0xa81a664bbc423001ull
#define SHA384C2a 0xc24b8b70d0f89791ull
#define SHA384C2b 0xc76c51a30654be30ull
#define SHA384C2c 0xd192e819d6ef5218ull
#define SHA384C2d 0xd69906245565a910ull
#define SHA384C2e 0xf40e35855771202aull
#define SHA384C2f 0x106aa07032bbd1b8ull
#define SHA384C30 0x19a4c116b8d2d0c8ull
#define SHA384C31 0x1e376c085141ab53ull
#define SHA384C32 0x2748774cdf8eeb99ull
#define SHA384C33 0x34b0bcb5e19b48a8ull
#define SHA384C34 0x391c0cb3c5c95a63ull
#define SHA384C35 0x4ed8aa4ae3418acbull
#define SHA384C36 0x5b9cca4f7763e373ull
#define SHA384C37 0x682e6ff3d6b2b8a3ull
#define SHA384C38 0x748f82ee5defb2fcull
#define SHA384C39 0x78a5636f43172f60ull
#define SHA384C3a 0x84c87814a1f0ab72ull
#define SHA384C3b 0x8cc702081a6439ecull
#define SHA384C3c 0x90befffa23631e28ull
#define SHA384C3d 0xa4506cebde82bde9ull
#define SHA384C3e 0xbef9a3f7b2c67915ull
#define SHA384C3f 0xc67178f2e372532bull
#define SHA384C40 0xca273eceea26619cull
#define SHA384C41 0xd186b8c721c0c207ull
#define SHA384C42 0xeada7dd6cde0eb1eull
#define SHA384C43 0xf57d4f7fee6ed178ull
#define SHA384C44 0x06f067aa72176fbaull
#define SHA384C45 0x0a637dc5a2c898a6ull
#define SHA384C46 0x113f9804bef90daeull
#define SHA384C47 0x1b710b35131c471bull
#define SHA384C48 0x28db77f523047d84ull
#define SHA384C49 0x32caab7b40c72493ull
#define SHA384C4a 0x3c9ebe0a15c9bebcull
#define SHA384C4b 0x431d67c49c100d4cull
#define SHA384C4c 0x4cc5d4becb3e42b6ull
#define SHA384C4d 0x597f299cfc657e2aull
#define SHA384C4e 0x5fcb6fab3ad6faecull
#define SHA384C4f 0x6c44198c4a475817ull
#define SHA384C00 0x428a2f98d728ae22
#define SHA384C01 0x7137449123ef65cd
#define SHA384C02 0xb5c0fbcfec4d3b2f
#define SHA384C03 0xe9b5dba58189dbbc
#define SHA384C04 0x3956c25bf348b538
#define SHA384C05 0x59f111f1b605d019
#define SHA384C06 0x923f82a4af194f9b
#define SHA384C07 0xab1c5ed5da6d8118
#define SHA384C08 0xd807aa98a3030242
#define SHA384C09 0x12835b0145706fbe
#define SHA384C0a 0x243185be4ee4b28c
#define SHA384C0b 0x550c7dc3d5ffb4e2
#define SHA384C0c 0x72be5d74f27b896f
#define SHA384C0d 0x80deb1fe3b1696b1
#define SHA384C0e 0x9bdc06a725c71235
#define SHA384C0f 0xc19bf174cf692694
#define SHA384C10 0xe49b69c19ef14ad2
#define SHA384C11 0xefbe4786384f25e3
#define SHA384C12 0x0fc19dc68b8cd5b5
#define SHA384C13 0x240ca1cc77ac9c65
#define SHA384C14 0x2de92c6f592b0275
#define SHA384C15 0x4a7484aa6ea6e483
#define SHA384C16 0x5cb0a9dcbd41fbd4
#define SHA384C17 0x76f988da831153b5
#define SHA384C18 0x983e5152ee66dfab
#define SHA384C19 0xa831c66d2db43210
#define SHA384C1a 0xb00327c898fb213f
#define SHA384C1b 0xbf597fc7beef0ee4
#define SHA384C1c 0xc6e00bf33da88fc2
#define SHA384C1d 0xd5a79147930aa725
#define SHA384C1e 0x06ca6351e003826f
#define SHA384C1f 0x142929670a0e6e70
#define SHA384C20 0x27b70a8546d22ffc
#define SHA384C21 0x2e1b21385c26c926
#define SHA384C22 0x4d2c6dfc5ac42aed
#define SHA384C23 0x53380d139d95b3df
#define SHA384C24 0x650a73548baf63de
#define SHA384C25 0x766a0abb3c77b2a8
#define SHA384C26 0x81c2c92e47edaee6
#define SHA384C27 0x92722c851482353b
#define SHA384C28 0xa2bfe8a14cf10364
#define SHA384C29 0xa81a664bbc423001
#define SHA384C2a 0xc24b8b70d0f89791
#define SHA384C2b 0xc76c51a30654be30
#define SHA384C2c 0xd192e819d6ef5218
#define SHA384C2d 0xd69906245565a910
#define SHA384C2e 0xf40e35855771202a
#define SHA384C2f 0x106aa07032bbd1b8
#define SHA384C30 0x19a4c116b8d2d0c8
#define SHA384C31 0x1e376c085141ab53
#define SHA384C32 0x2748774cdf8eeb99
#define SHA384C33 0x34b0bcb5e19b48a8
#define SHA384C34 0x391c0cb3c5c95a63
#define SHA384C35 0x4ed8aa4ae3418acb
#define SHA384C36 0x5b9cca4f7763e373
#define SHA384C37 0x682e6ff3d6b2b8a3
#define SHA384C38 0x748f82ee5defb2fc
#define SHA384C39 0x78a5636f43172f60
#define SHA384C3a 0x84c87814a1f0ab72
#define SHA384C3b 0x8cc702081a6439ec
#define SHA384C3c 0x90befffa23631e28
#define SHA384C3d 0xa4506cebde82bde9
#define SHA384C3e 0xbef9a3f7b2c67915
#define SHA384C3f 0xc67178f2e372532b
#define SHA384C40 0xca273eceea26619c
#define SHA384C41 0xd186b8c721c0c207
#define SHA384C42 0xeada7dd6cde0eb1e
#define SHA384C43 0xf57d4f7fee6ed178
#define SHA384C44 0x06f067aa72176fba
#define SHA384C45 0x0a637dc5a2c898a6
#define SHA384C46 0x113f9804bef90dae
#define SHA384C47 0x1b710b35131c471b
#define SHA384C48 0x28db77f523047d84
#define SHA384C49 0x32caab7b40c72493
#define SHA384C4a 0x3c9ebe0a15c9bebc
#define SHA384C4b 0x431d67c49c100d4c
#define SHA384C4c 0x4cc5d4becb3e42b6
#define SHA384C4d 0x597f299cfc657e2a
#define SHA384C4e 0x5fcb6fab3ad6faec
#define SHA384C4f 0x6c44198c4a475817
#endif
@@ -374,98 +374,98 @@
* SHA512 Constants (64 bits)
*/
#define SHA512M_A 0x6a09e667f3bcc908ull
#define SHA512M_B 0xbb67ae8584caa73bull
#define SHA512M_C 0x3c6ef372fe94f82bull
#define SHA512M_D 0xa54ff53a5f1d36f1ull
#define SHA512M_E 0x510e527fade682d1ull
#define SHA512M_F 0x9b05688c2b3e6c1full
#define SHA512M_G 0x1f83d9abfb41bd6bull
#define SHA512M_H 0x5be0cd19137e2179ull
#define SHA512M_A 0x6a09e667f3bcc908
#define SHA512M_B 0xbb67ae8584caa73b
#define SHA512M_C 0x3c6ef372fe94f82b
#define SHA512M_D 0xa54ff53a5f1d36f1
#define SHA512M_E 0x510e527fade682d1
#define SHA512M_F 0x9b05688c2b3e6c1f
#define SHA512M_G 0x1f83d9abfb41bd6b
#define SHA512M_H 0x5be0cd19137e2179
#define SHA512C00 0x428a2f98d728ae22ull
#define SHA512C01 0x7137449123ef65cdull
#define SHA512C02 0xb5c0fbcfec4d3b2full
#define SHA512C03 0xe9b5dba58189dbbcull
#define SHA512C04 0x3956c25bf348b538ull
#define SHA512C05 0x59f111f1b605d019ull
#define SHA512C06 0x923f82a4af194f9bull
#define SHA512C07 0xab1c5ed5da6d8118ull
#define SHA512C08 0xd807aa98a3030242ull
#define SHA512C09 0x12835b0145706fbeull
#define SHA512C0a 0x243185be4ee4b28cull
#define SHA512C0b 0x550c7dc3d5ffb4e2ull
#define SHA512C0c 0x72be5d74f27b896full
#define SHA512C0d 0x80deb1fe3b1696b1ull
#define SHA512C0e 0x9bdc06a725c71235ull
#define SHA512C0f 0xc19bf174cf692694ull
#define SHA512C10 0xe49b69c19ef14ad2ull
#define SHA512C11 0xefbe4786384f25e3ull
#define SHA512C12 0x0fc19dc68b8cd5b5ull
#define SHA512C13 0x240ca1cc77ac9c65ull
#define SHA512C14 0x2de92c6f592b0275ull
#define SHA512C15 0x4a7484aa6ea6e483ull
#define SHA512C16 0x5cb0a9dcbd41fbd4ull
#define SHA512C17 0x76f988da831153b5ull
#define SHA512C18 0x983e5152ee66dfabull
#define SHA512C19 0xa831c66d2db43210ull
#define SHA512C1a 0xb00327c898fb213full
#define SHA512C1b 0xbf597fc7beef0ee4ull
#define SHA512C1c 0xc6e00bf33da88fc2ull
#define SHA512C1d 0xd5a79147930aa725ull
#define SHA512C1e 0x06ca6351e003826full
#define SHA512C1f 0x142929670a0e6e70ull
#define SHA512C20 0x27b70a8546d22ffcull
#define SHA512C21 0x2e1b21385c26c926ull
#define SHA512C22 0x4d2c6dfc5ac42aedull
#define SHA512C23 0x53380d139d95b3dfull
#define SHA512C24 0x650a73548baf63deull
#define SHA512C25 0x766a0abb3c77b2a8ull
#define SHA512C26 0x81c2c92e47edaee6ull
#define SHA512C27 0x92722c851482353bull
#define SHA512C28 0xa2bfe8a14cf10364ull
#define SHA512C29 0xa81a664bbc423001ull
#define SHA512C2a 0xc24b8b70d0f89791ull
#define SHA512C2b 0xc76c51a30654be30ull
#define SHA512C2c 0xd192e819d6ef5218ull
#define SHA512C2d 0xd69906245565a910ull
#define SHA512C2e 0xf40e35855771202aull
#define SHA512C2f 0x106aa07032bbd1b8ull
#define SHA512C30 0x19a4c116b8d2d0c8ull
#define SHA512C31 0x1e376c085141ab53ull
#define SHA512C32 0x2748774cdf8eeb99ull
#define SHA512C33 0x34b0bcb5e19b48a8ull
#define SHA512C34 0x391c0cb3c5c95a63ull
#define SHA512C35 0x4ed8aa4ae3418acbull
#define SHA512C36 0x5b9cca4f7763e373ull
#define SHA512C37 0x682e6ff3d6b2b8a3ull
#define SHA512C38 0x748f82ee5defb2fcull
#define SHA512C39 0x78a5636f43172f60ull
#define SHA512C3a 0x84c87814a1f0ab72ull
#define SHA512C3b 0x8cc702081a6439ecull
#define SHA512C3c 0x90befffa23631e28ull
#define SHA512C3d 0xa4506cebde82bde9ull
#define SHA512C3e 0xbef9a3f7b2c67915ull
#define SHA512C3f 0xc67178f2e372532bull
#define SHA512C40 0xca273eceea26619cull
#define SHA512C41 0xd186b8c721c0c207ull
#define SHA512C42 0xeada7dd6cde0eb1eull
#define SHA512C43 0xf57d4f7fee6ed178ull
#define SHA512C44 0x06f067aa72176fbaull
#define SHA512C45 0x0a637dc5a2c898a6ull
#define SHA512C46 0x113f9804bef90daeull
#define SHA512C47 0x1b710b35131c471bull
#define SHA512C48 0x28db77f523047d84ull
#define SHA512C49 0x32caab7b40c72493ull
#define SHA512C4a 0x3c9ebe0a15c9bebcull
#define SHA512C4b 0x431d67c49c100d4cull
#define SHA512C4c 0x4cc5d4becb3e42b6ull
#define SHA512C4d 0x597f299cfc657e2aull
#define SHA512C4e 0x5fcb6fab3ad6faecull
#define SHA512C4f 0x6c44198c4a475817ull
#define SHA512C00 0x428a2f98d728ae22
#define SHA512C01 0x7137449123ef65cd
#define SHA512C02 0xb5c0fbcfec4d3b2f
#define SHA512C03 0xe9b5dba58189dbbc
#define SHA512C04 0x3956c25bf348b538
#define SHA512C05 0x59f111f1b605d019
#define SHA512C06 0x923f82a4af194f9b
#define SHA512C07 0xab1c5ed5da6d8118
#define SHA512C08 0xd807aa98a3030242
#define SHA512C09 0x12835b0145706fbe
#define SHA512C0a 0x243185be4ee4b28c
#define SHA512C0b 0x550c7dc3d5ffb4e2
#define SHA512C0c 0x72be5d74f27b896f
#define SHA512C0d 0x80deb1fe3b1696b1
#define SHA512C0e 0x9bdc06a725c71235
#define SHA512C0f 0xc19bf174cf692694
#define SHA512C10 0xe49b69c19ef14ad2
#define SHA512C11 0xefbe4786384f25e3
#define SHA512C12 0x0fc19dc68b8cd5b5
#define SHA512C13 0x240ca1cc77ac9c65
#define SHA512C14 0x2de92c6f592b0275
#define SHA512C15 0x4a7484aa6ea6e483
#define SHA512C16 0x5cb0a9dcbd41fbd4
#define SHA512C17 0x76f988da831153b5
#define SHA512C18 0x983e5152ee66dfab
#define SHA512C19 0xa831c66d2db43210
#define SHA512C1a 0xb00327c898fb213f
#define SHA512C1b 0xbf597fc7beef0ee4
#define SHA512C1c 0xc6e00bf33da88fc2
#define SHA512C1d 0xd5a79147930aa725
#define SHA512C1e 0x06ca6351e003826f
#define SHA512C1f 0x142929670a0e6e70
#define SHA512C20 0x27b70a8546d22ffc
#define SHA512C21 0x2e1b21385c26c926
#define SHA512C22 0x4d2c6dfc5ac42aed
#define SHA512C23 0x53380d139d95b3df
#define SHA512C24 0x650a73548baf63de
#define SHA512C25 0x766a0abb3c77b2a8
#define SHA512C26 0x81c2c92e47edaee6
#define SHA512C27 0x92722c851482353b
#define SHA512C28 0xa2bfe8a14cf10364
#define SHA512C29 0xa81a664bbc423001
#define SHA512C2a 0xc24b8b70d0f89791
#define SHA512C2b 0xc76c51a30654be30
#define SHA512C2c 0xd192e819d6ef5218
#define SHA512C2d 0xd69906245565a910
#define SHA512C2e 0xf40e35855771202a
#define SHA512C2f 0x106aa07032bbd1b8
#define SHA512C30 0x19a4c116b8d2d0c8
#define SHA512C31 0x1e376c085141ab53
#define SHA512C32 0x2748774cdf8eeb99
#define SHA512C33 0x34b0bcb5e19b48a8
#define SHA512C34 0x391c0cb3c5c95a63
#define SHA512C35 0x4ed8aa4ae3418acb
#define SHA512C36 0x5b9cca4f7763e373
#define SHA512C37 0x682e6ff3d6b2b8a3
#define SHA512C38 0x748f82ee5defb2fc
#define SHA512C39 0x78a5636f43172f60
#define SHA512C3a 0x84c87814a1f0ab72
#define SHA512C3b 0x8cc702081a6439ec
#define SHA512C3c 0x90befffa23631e28
#define SHA512C3d 0xa4506cebde82bde9
#define SHA512C3e 0xbef9a3f7b2c67915
#define SHA512C3f 0xc67178f2e372532b
#define SHA512C40 0xca273eceea26619c
#define SHA512C41 0xd186b8c721c0c207
#define SHA512C42 0xeada7dd6cde0eb1e
#define SHA512C43 0xf57d4f7fee6ed178
#define SHA512C44 0x06f067aa72176fba
#define SHA512C45 0x0a637dc5a2c898a6
#define SHA512C46 0x113f9804bef90dae
#define SHA512C47 0x1b710b35131c471b
#define SHA512C48 0x28db77f523047d84
#define SHA512C49 0x32caab7b40c72493
#define SHA512C4a 0x3c9ebe0a15c9bebc
#define SHA512C4b 0x431d67c49c100d4c
#define SHA512C4c 0x4cc5d4becb3e42b6
#define SHA512C4d 0x597f299cfc657e2a
#define SHA512C4e 0x5fcb6fab3ad6faec
#define SHA512C4f 0x6c44198c4a475817
#define SHA512REV0 0x5218a97a1b97e8a0ull
#define SHA512REV1 0x4334c1bea164f555ull
#define SHA512REV0 0x5218a97a1b97e8a0
#define SHA512REV1 0x4334c1bea164f555
#endif
+1 -1
View File
@@ -14,7 +14,7 @@ typedef int bool;
#include <adl_sdk.h>
typedef int HM_ADAPTER;
//typedef int HM_ADAPTER;
#ifdef _POSIX
void *GetProcAddress (void *pLibrary, const char *name);
+2 -2
View File
@@ -24,8 +24,8 @@
void hc_clBuildProgram (cl_program program, cl_uint num_devices, const cl_device_id *device_list, const char *options, void (CL_CALLBACK *pfn_notify) (cl_program program, void *user_data), void *user_data);
cl_mem hc_clCreateBuffer (cl_context context, cl_mem_flags flags, size_t size, void *host_ptr);
//cl_command_queue hc_clCreateCommandQueue (cl_context context, cl_device_id device, cl_command_queue_properties properties);
cl_command_queue hc_clCreateCommandQueueWithProperties (cl_context context, cl_device_id device, const cl_queue_properties *properties);
cl_command_queue hc_clCreateCommandQueue (cl_context context, cl_device_id device, cl_command_queue_properties properties);
//cl_command_queue hc_clCreateCommandQueueWithProperties (cl_context context, cl_device_id device, const cl_queue_properties *properties);
cl_context hc_clCreateContext (cl_context_properties *properties, cl_uint num_devices, const cl_device_id *devices, void (CL_CALLBACK *pfn_notify) (const char *, const void *, size_t, void *), void *user_data);
cl_kernel hc_clCreateKernel (cl_program program, const char *kernel_name);
cl_program hc_clCreateProgramWithSource (cl_context context, cl_uint count, const char **strings, const size_t *lengths);
+1 -1
View File
@@ -54,7 +54,7 @@
#include <nvapi.h>
typedef NvPhysicalGpuHandle HM_ADAPTER;
//typedef NvPhysicalGpuHandle HM_ADAPTER;
int hc_NvAPI_EnumPhysicalGPUs (NvPhysicalGpuHandle nvGPUHandle[NVAPI_MAX_PHYSICAL_GPUS], NvU32 *pGpuCount);
int hc_NvAPI_GPU_GetThermalSettings (NvPhysicalGpuHandle hPhysicalGpu, NvU32 sensorIndex, NV_GPU_THERMAL_SETTINGS *pThermalSettings);
+1 -1
View File
@@ -10,7 +10,7 @@
#include <nvml.h>
typedef nvmlDevice_t HM_ADAPTER;
//typedef nvmlDevice_t HM_ADAPTER;
nvmlReturn_t hc_NVML_nvmlInit (void);
nvmlReturn_t hc_NVML_nvmlShutdown (void);
+2 -2
View File
@@ -233,7 +233,7 @@
#define SHA384_STEP(F0,F1,a,b,c,d,e,f,g,h,x,K) \
{ \
u64x temp0; \
u64 temp0; \
temp0 = K; \
temp0 += x; \
temp0 += h; \
@@ -273,7 +273,7 @@
#define SHA512_STEP(F0,F1,a,b,c,d,e,f,g,h,x,K) \
{ \
u64x temp0; \
u64 temp0; \
temp0 = K; \
temp0 += x; \
temp0 += h; \
+7 -83
View File
@@ -3,15 +3,17 @@
* License.....: MIT
*/
#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
/**
* vendor specific
*/
#ifdef __GPU__
#if VENDOR_ID == 4096
#define IS_AMD
#endif
#ifdef __CUDACC__
#if VENDOR_ID == 4318
#define IS_NV
#endif
@@ -19,92 +21,14 @@
* AMD specific
*/
/*
#ifdef IS_AMD
#ifdef __ATI_RV710__
#define VLIW1
#elif __ATI_RV730__
#define VLIW1
#elif __ATI_RV770__
#define VLIW4
#elif __Barts__
#define VLIW5
#elif __BeaverCreek__
#define VLIW5
#elif __Caicos__
#define VLIW5
#elif __Capeverde__
#define VLIW1
#elif __Cayman__
#define VLIW4
#elif __Cedar__
#define VLIW5
#elif __Cypress__
#define VLIW5
#elif __Devastator__
#define VLIW4
#elif __Juniper__
#define VLIW5
#elif __Loveland__
#define VLIW5
#elif __Pitcairn__
#define VLIW1
#elif __Redwood__
#define VLIW5
#elif __Tahiti__
#define VLIW1
#elif __Turks__
#define VLIW5
#elif __Scrapper__
#define VLIW4
#elif __WinterPark__
#define VLIW5
#endif
#endif
*/
#ifdef IS_AMD
#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
#ifdef OSX
#else
#ifdef cl_amd_media_ops
#pragma OPENCL EXTENSION cl_amd_media_ops : enable
#endif
#ifdef cl_amd_media_ops2
#pragma OPENCL EXTENSION cl_amd_media_ops2 : enable
#endif
#endif
#endif
/**
* NV specific
*/
#ifdef IS_NV
#ifdef sm_10
#define VLIW1
#elif sm_11
#define VLIW1
#elif sm_12
#define VLIW1
#elif sm_13
#define VLIW1
#elif sm_20
#define VLIW1
#elif sm_21
#define VLIW2
#elif sm_30
#define VLIW2
#elif sm_35
#define VLIW2
#elif sm_37
#define VLIW2
#elif sm_50
#define VLIW2
#elif sm_52
#define VLIW2
#endif
#endif
+7 -22
View File
@@ -54,39 +54,26 @@
#define hc_sleep(x) sleep ((x));
#endif
#ifdef _CUDA
#include <ext_cuda.h>
#elif _OCL
#include <ext_OpenCL.h>
#endif
/**
* temperature management
*/
#ifdef LINUX
#ifdef _CUDA
#include <ext_nvml.h>
#elif _OCL
#include <ext_ADL.h>
#endif
#endif
#ifdef WIN
#ifdef _CUDA
#include <ext_nvapi.h>
#elif _OCL
#include <ext_ADL.h>
#endif
#endif
#ifdef OSX
#ifdef _CUDA
#include <ext_smi.h>
#elif _OCL
#include <ext_dummy.h>
#endif
#endif
/**
* shared stuff
@@ -97,11 +84,16 @@
#define DEVICES_MAX 128
#define CL_PLATFORMS_MAX 16
#define CL_VENDOR_NV "NVIDIA Corporation"
#define CL_VENDOR_AMD "Advanced Micro Devices, Inc."
#define CL_VENDOR_SDS "Shiloh Distributed Solutions"
#define CL_VENDOR_APPLE "Apple"
#define VENDOR_ID_AMD 4098
#define VENDOR_ID_NV 4318
#define VENDOR_ID_UNKNOWN 0
#define BLOCK_SIZE 64
#define CHARSIZ 0x100
@@ -118,9 +110,6 @@
#define LOOPBACK_FILE "loopback"
#define VENDOR_ID_AMD 4098
#define VENDOR_ID_NV 4318
/**
* types
*/
@@ -1769,7 +1758,6 @@ extern hc_thread_mutex_t mux_display;
#define OPTI_TYPE_SINGLE_HASH (1 << 11)
#define OPTI_TYPE_SINGLE_SALT (1 << 12)
#define OPTI_TYPE_BRUTE_FORCE (1 << 13)
#define OPTI_TYPE_SCALAR_MODE (1 << 14)
#define OPTI_TYPE_RAW_HASH (1 << 15)
#define OPTI_STR_ZERO_BYTE "Zero-Byte"
@@ -1785,7 +1773,6 @@ extern hc_thread_mutex_t mux_display;
#define OPTI_STR_SINGLE_HASH "Single-Hash"
#define OPTI_STR_SINGLE_SALT "Single-Salt"
#define OPTI_STR_BRUTE_FORCE "Brute-Force"
#define OPTI_STR_SCALAR_MODE "Scalar-Mode"
#define OPTI_STR_RAW_HASH "Raw-Hash"
/**
@@ -2022,11 +2009,9 @@ void logfile_append (const char *fmt, ...);
void fsync (int fd);
#endif
#ifdef _CUDA
/*
int hm_get_adapter_index (HM_ADAPTER nvGPUHandle[DEVICES_MAX]);
#endif
#ifdef _OCL
int get_adapters_num (HM_LIB hm_dll, int *iNumberAdapters);
int hm_get_device_num (HM_LIB hm_dll, HM_ADAPTER hm_adapter_index, int *hm_device_num);
@@ -2045,13 +2030,13 @@ int hm_check_fanspeed_control (HM_LIB hm_dll, hm_attrs_t *hm_device, uint32_t *v
void hm_close (HM_LIB hm_dll);
HM_LIB hm_init ();
#endif
int hm_get_temperature_with_device_id (const uint device_id);
int hm_get_fanspeed_with_device_id (const uint device_id);
int hm_get_utilization_with_device_id (const uint device_id);
int hm_set_fanspeed_with_device_id (const uint device_id, const int fanspeed);
*/
void myabort ();
void myquit ();
+6 -70
View File
@@ -812,10 +812,12 @@ struct __hc_device_param
{
uint device_id;
uint sm_major;
uint sm_minor;
uint gpu_processors;
uint gpu_threads;
uint gpu_accel;
uint gpu_vector_width;
uint64_t gpu_maxmem_alloc;
uint gpu_power; // these both are based on their _user counterpart
uint gpu_blocks; // but are modified by autotuner and used inside crack loops
@@ -833,8 +835,6 @@ struct __hc_device_param
uint size_results;
uint size_plains;
uint vect_size;
uint (*pw_add) (struct __hc_device_param *, const uint8_t *, const uint);
void (*pw_transpose) (const pw_t *, pw_t *);
@@ -870,68 +870,6 @@ struct __hc_device_param
// device specific attributes starting
#ifdef _CUDA
int sm_major;
int sm_minor;
CUdevice device;
CUfunction function1;
CUfunction function12;
CUfunction function2;
CUfunction function23;
CUfunction function3;
CUfunction function_mp;
CUfunction function_mp_l;
CUfunction function_mp_r;
CUfunction function_amp;
CUfunction function_tb;
CUfunction function_tm;
CUcontext context;
CUmodule module;
CUmodule module_mp;
CUmodule module_amp;
CUstream stream;
CUdeviceptr d_pws_buf;
CUdeviceptr d_pws_amp_buf;
CUdeviceptr d_words_buf_l;
CUdeviceptr d_words_buf_r;
CUdeviceptr c_words_buf_r;
CUdeviceptr d_rules;
CUdeviceptr c_rules;
CUdeviceptr d_combs;
CUdeviceptr c_combs;
CUdeviceptr d_bfs;
CUdeviceptr c_bfs;
CUdeviceptr d_tm;
CUdeviceptr c_tm;
size_t c_bytes;
CUdeviceptr d_bitmap_s1_a;
CUdeviceptr d_bitmap_s1_b;
CUdeviceptr d_bitmap_s1_c;
CUdeviceptr d_bitmap_s1_d;
CUdeviceptr d_bitmap_s2_a;
CUdeviceptr d_bitmap_s2_b;
CUdeviceptr d_bitmap_s2_c;
CUdeviceptr d_bitmap_s2_d;
CUdeviceptr d_plain_bufs;
CUdeviceptr d_digests_buf;
CUdeviceptr d_digests_shown;
CUdeviceptr d_salt_bufs;
CUdeviceptr d_esalt_bufs;
CUdeviceptr d_bcrypt_bufs;
CUdeviceptr d_tmps;
CUdeviceptr d_hooks;
CUdeviceptr d_result;
CUdeviceptr d_scryptV_buf;
CUdeviceptr d_root_css_buf;
CUdeviceptr d_markov_css_buf;
#elif _OCL
char *device_name;
char *device_version;
char *driver_version;
@@ -990,8 +928,6 @@ struct __hc_device_param
cl_mem d_root_css_buf;
cl_mem d_markov_css_buf;
#endif
#define PARAMCNT 32
void *kernel_params[PARAMCNT];
@@ -1021,11 +957,9 @@ typedef struct __hc_device_param hc_device_param_t;
typedef struct
{
HM_ADAPTER adapter_index;
// HM_ADAPTER adapter_index;
#ifdef _OCL
int od_version;
#endif
int fan_supported;
@@ -1040,6 +974,8 @@ typedef struct
* threads
*/
uint vendor_id;
uint devices_status;
uint devices_cnt;
hc_device_param_t *devices_param;