Fix some scrypt default values
authorjsteube <jens.steube@gmail.com>
Wed, 30 Dec 2015 22:06:45 +0000 (23:06 +0100)
committerjsteube <jens.steube@gmail.com>
Wed, 30 Dec 2015 22:06:45 +0000 (23:06 +0100)
include/shared.h
src/oclHashcat.c

index 57488cb..d711d06 100644 (file)
@@ -306,11 +306,11 @@ extern hc_thread_mutex_t mux_display;
 #define GPU_ACCEL_NV_8600     8
 #define GPU_ACCEL_NV_8700     8
 #define GPU_ACCEL_NV_8800     8
-#define GPU_ACCEL_NV_8900     4
+#define GPU_ACCEL_NV_8900     16
 #define GPU_ACCEL_NV_9000     2
 #define GPU_ACCEL_NV_9100     8
 #define GPU_ACCEL_NV_9200     2
-#define GPU_ACCEL_NV_9300     4
+#define GPU_ACCEL_NV_9300     2
 #define GPU_ACCEL_NV_9400     8
 #define GPU_ACCEL_NV_9500     8
 #define GPU_ACCEL_NV_9600     2
@@ -483,11 +483,11 @@ extern hc_thread_mutex_t mux_display;
 #define GPU_ACCEL_AMD_8600    8
 #define GPU_ACCEL_AMD_8700    8
 #define GPU_ACCEL_AMD_8800    8
-#define GPU_ACCEL_AMD_8900    4
+#define GPU_ACCEL_AMD_8900    16
 #define GPU_ACCEL_AMD_9000    2
 #define GPU_ACCEL_AMD_9100    8
 #define GPU_ACCEL_AMD_9200    2
-#define GPU_ACCEL_AMD_9300    4
+#define GPU_ACCEL_AMD_9300    2
 #define GPU_ACCEL_AMD_9400    8
 #define GPU_ACCEL_AMD_9500    8
 #define GPU_ACCEL_AMD_9600    2
index 2274dfd..d502a04 100644 (file)
@@ -11238,7 +11238,7 @@ int main (int argc, char **argv)
                        gpu_accel = 8;
                        break;
           case  9300:  gpu_loops = 1;
-                       gpu_accel = 8;
+                       gpu_accel = 4;
                        break;
           case  9400:  gpu_loops = ROUNDS_OFFICE2007;
                        gpu_accel = 32;
@@ -13011,28 +13011,40 @@ int main (int argc, char **argv)
           {
             if (vendor_id == VENDOR_ID_AMD)
             {
-
+              tmto_start = 1;
             }
             else if (vendor_id == VENDOR_ID_NV)
             {
-
+              tmto_start = 3;
             }
           }
           else if (hash_mode == 9300)
           {
             if (vendor_id == VENDOR_ID_AMD)
             {
-
+              tmto_start = 3;
             }
             else if (vendor_id == VENDOR_ID_NV)
             {
-
+              tmto_start = 4;
             }
           }
         }
 
         if (quiet == 0) log_info ("");
 
+        uint shader_per_mp = 1;
+
+        if (vendor_id == VENDOR_ID_AMD)
+        {
+          shader_per_mp = 8;
+        }
+
+        if (vendor_id == VENDOR_ID_NV)
+        {
+          shader_per_mp = 32;
+        }
+
         for (uint tmto = tmto_start; tmto < tmto_stop; tmto++)
         {
           // TODO: in theory the following calculation needs to be done per salt, not global
@@ -13042,11 +13054,11 @@ int main (int argc, char **argv)
 
           size_scryptV /= 1 << tmto;
 
-          size_scryptV *= gpu_processors * gpu_processor_cores * gpu_threads;
+          size_scryptV *= gpu_processors * gpu_processor_cores * shader_per_mp;
 
           if (size_scryptV > device_param->gpu_maxmem_alloc)
           {
-            if (quiet == 0) log_info ("WARNING: not enough GPU memory free for allocation to use --scrypt-tmto %d, increasing...", tmto);
+            if (quiet == 0) log_info ("WARNING: not enough GPU memory allocatable to use --scrypt-tmto %d, increasing...", tmto);
 
             continue;
           }
@@ -13054,13 +13066,13 @@ int main (int argc, char **argv)
           for (uint salts_pos = 0; salts_pos < data.salts_cnt; salts_pos++)
           {
             data.salts_buf[salts_pos].scrypt_tmto = tmto;
-            data.salts_buf[salts_pos].scrypt_phy  = gpu_processors * gpu_processor_cores * gpu_threads;
+            data.salts_buf[salts_pos].scrypt_phy  = gpu_processors * gpu_processor_cores * shader_per_mp;
           }
 
           break;
         }
 
-        if (data.salts_buf[0].scrypt_tmto == 0)
+        if (data.salts_buf[0].scrypt_phy == 0)
         {
           log_error ("ERROR: can't allocate enough GPU memory");
 
@@ -13068,7 +13080,7 @@ int main (int argc, char **argv)
         }
 
         if (quiet == 0) log_info ("");
-        if (quiet == 0) log_info ("SCRYPT tmto optimizer value set to: %u\n", data.salts_buf[0].scrypt_tmto);
+        if (quiet == 0) log_info ("SCRYPT tmto optimizer value set to: %u, mem: %u\n", data.salts_buf[0].scrypt_tmto, size_scryptV);
       }
 
       /**