Issue1388 (#1389)
authorMartin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Sat, 9 Dec 2017 21:29:03 +0000 (22:29 +0100)
committerGitHub <noreply@github.com>
Sat, 9 Dec 2017 21:29:03 +0000 (22:29 +0100)
* Calculation of chunk range limits was ignoring num_cpu

bug introduced by me in #1262 - should fix #1388

* Calculation of range limits was ignoring num_cpu

bug introduced by me in #1262

* Calculation of chunk range limits was ignoring num_cpu

bug introduced by me in #1262

* Calculation of chunk range limits was ignoring num_cpu

bug introduced by me in #1262

* Calculation of chunk range limits was ignoring num_cpu

bug introduced by me in #1262

* Calculation of chunk range limits was ignoring num_cpu

bug introduced by me in #1262

driver/level2/gbmv_thread.c
driver/level2/sbmv_thread.c
driver/level2/spmv_thread.c
driver/level2/symv_thread.c
driver/level2/tbmv_thread.c
driver/level2/tpmv_thread.c

index c0cb947..4fce974 100644 (file)
@@ -230,10 +230,10 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG ku, BLASLONG kl, FLOAT *alpha, FLOAT
 
 #ifndef TRANSA
     range_m[num_cpu] = num_cpu * ((m + 15) & ~15);
-    if (range_m[num_cpu] > m) range_m[num_cpu] = m;
+    if (range_m[num_cpu] > m * num_cpu) range_m[num_cpu] = m * num_cpu;
 #else
     range_m[num_cpu] = num_cpu * ((n + 15) & ~15);
-    if (range_m[num_cpu] > n) range_m[num_cpu] = n;
+    if (range_m[num_cpu] > n * num_cpu) range_m[num_cpu] = n * num_cpu;
 #endif
 
     queue[num_cpu].mode    = mode;
index e59451c..50efa35 100644 (file)
@@ -246,7 +246,7 @@ int CNAME(BLASLONG n, BLASLONG k, FLOAT *alpha, FLOAT *a, BLASLONG lda, FLOAT *x
 
       range_m[MAX_CPU_NUMBER - num_cpu - 1] = range_m[MAX_CPU_NUMBER - num_cpu] - width;
       range_n[num_cpu] = num_cpu * (((n + 15) & ~15) + 16);
-      if (range_n[num_cpu] > n) range_n[num_cpu] = n;
+      if (range_n[num_cpu] > n * num_cpu) range_n[num_cpu] = n * num_cpu;
 
       queue[num_cpu].mode    = mode;
       queue[num_cpu].routine = sbmv_kernel;
@@ -286,7 +286,7 @@ int CNAME(BLASLONG n, BLASLONG k, FLOAT *alpha, FLOAT *a, BLASLONG lda, FLOAT *x
 
       range_m[num_cpu + 1] = range_m[num_cpu] + width;
       range_n[num_cpu] = num_cpu * (((n + 15) & ~15) + 16);
-      if (range_n[num_cpu] > n) range_n[num_cpu] = n;
+      if (range_n[num_cpu] > n * num_cpu) range_n[num_cpu] = n * num_cpu;
 
       queue[num_cpu].mode    = mode;
       queue[num_cpu].routine = sbmv_kernel;
@@ -318,7 +318,7 @@ int CNAME(BLASLONG n, BLASLONG k, FLOAT *alpha, FLOAT *a, BLASLONG lda, FLOAT *x
       range_m[num_cpu + 1] = range_m[num_cpu] + width;
 
       range_n[num_cpu] = num_cpu * ((n + 15) & ~15);
-      if (range_n[num_cpu] > n) range_n[num_cpu] = n;
+      if (range_n[num_cpu] > n * num_cpu) range_n[num_cpu] = n * num_cpu;
 
       queue[num_cpu].mode    = mode;
       queue[num_cpu].routine = sbmv_kernel;
index 0b40874..e52b08d 100644 (file)
@@ -246,7 +246,7 @@ int CNAME(BLASLONG m, FLOAT *alpha, FLOAT *a, FLOAT *x, BLASLONG incx, FLOAT *y,
 
     range_m[MAX_CPU_NUMBER - num_cpu - 1] = range_m[MAX_CPU_NUMBER - num_cpu] - width;
     range_n[num_cpu] = num_cpu * (((m + 15) & ~15) + 16);
-    if (range_n[num_cpu] > m) range_n[num_cpu] = m;
+    if (range_n[num_cpu] > m * num_cpu) range_n[num_cpu] = m * num_cpu;
 
     queue[num_cpu].mode    = mode;
     queue[num_cpu].routine = spmv_kernel;
@@ -286,7 +286,7 @@ int CNAME(BLASLONG m, FLOAT *alpha, FLOAT *a, FLOAT *x, BLASLONG incx, FLOAT *y,
 
     range_m[num_cpu + 1] = range_m[num_cpu] + width;
     range_n[num_cpu] = num_cpu * (((m + 15) & ~15) + 16);
-    if (range_n[num_cpu] > m) range_n[num_cpu] = m;
+    if (range_n[num_cpu] > m * num_cpu) range_n[num_cpu] = m * num_cpu;
 
     queue[num_cpu].mode    = mode;
     queue[num_cpu].routine = spmv_kernel;
index 8d4cd24..ab783de 100644 (file)
@@ -177,7 +177,7 @@ int CNAME(BLASLONG m, FLOAT *alpha, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG i
 
     range_m[num_cpu + 1] = range_m[num_cpu] + width;
     range_n[num_cpu] = num_cpu * (((m + 15) & ~15) + 16);
-    if (range_n[num_cpu] > m) range_n[num_cpu] = m;
+    if (range_n[num_cpu] > m * num_cpu) range_n[num_cpu] = m * num_cpu;
     
     queue[MAX_CPU_NUMBER - num_cpu - 1].mode    = mode;
     queue[MAX_CPU_NUMBER - num_cpu - 1].routine = symv_kernel;
@@ -226,7 +226,7 @@ int CNAME(BLASLONG m, FLOAT *alpha, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG i
 
     range_m[num_cpu + 1] = range_m[num_cpu] + width;
     range_n[num_cpu] = num_cpu * (((m + 15) & ~15) + 16);
-    if (range_n[num_cpu] > m) range_n[num_cpu] = m;
+    if (range_n[num_cpu] > m * num_cpu) range_n[num_cpu] = m * num_cpu;
 
     queue[num_cpu].mode    = mode;
     queue[num_cpu].routine = symv_kernel;
index 35e5ff1..67109b5 100644 (file)
@@ -288,7 +288,7 @@ int CNAME(BLASLONG n, BLASLONG k, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG inc
 
       range_m[MAX_CPU_NUMBER - num_cpu - 1] = range_m[MAX_CPU_NUMBER - num_cpu] - width;
       range_n[num_cpu] = num_cpu * (((n + 15) & ~15) + 16);
-      if (range_n[num_cpu] > n) range_n[num_cpu] = n;
+      if (range_n[num_cpu] > n * num_cpu) range_n[num_cpu] = n * num_cpu;
 
       queue[num_cpu].mode    = mode;
       queue[num_cpu].routine = trmv_kernel;
@@ -328,7 +328,7 @@ int CNAME(BLASLONG n, BLASLONG k, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG inc
 
       range_m[num_cpu + 1] = range_m[num_cpu] + width;
       range_n[num_cpu] = num_cpu * (((n + 15) & ~15) + 16);
-      if (range_n[num_cpu] > n) range_n[num_cpu] = n;
+      if (range_n[num_cpu] > n * num_cpu) range_n[num_cpu] = n * num_cpu;
 
       queue[num_cpu].mode    = mode;
       queue[num_cpu].routine = trmv_kernel;
@@ -358,7 +358,7 @@ int CNAME(BLASLONG n, BLASLONG k, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG inc
 
       range_m[num_cpu + 1] = range_m[num_cpu] + width;
       range_n[num_cpu] = num_cpu * (((n + 15) & ~15) + 16);
-      if (range_n[num_cpu] > n) range_n[num_cpu] = n;
+      if (range_n[num_cpu] > n * num_cpu) range_n[num_cpu] = n * num_cpu;
 
       queue[num_cpu].mode    = mode;
       queue[num_cpu].routine = trmv_kernel;
index b7eb105..a077591 100644 (file)
@@ -303,7 +303,7 @@ int CNAME(BLASLONG m, FLOAT *a, FLOAT *x, BLASLONG incx, FLOAT *buffer, int nthr
 
     range_m[MAX_CPU_NUMBER - num_cpu - 1] = range_m[MAX_CPU_NUMBER - num_cpu] - width;
     range_n[num_cpu] = num_cpu * (((m + 15) & ~15) + 16);
-    if (range_n[num_cpu] > m) range_n[num_cpu] = m;
+    if (range_n[num_cpu] > m * num_cpu) range_n[num_cpu] = m * num_cpu;
     
     queue[num_cpu].mode    = mode;
     queue[num_cpu].routine = tpmv_kernel;
@@ -343,7 +343,7 @@ int CNAME(BLASLONG m, FLOAT *a, FLOAT *x, BLASLONG incx, FLOAT *buffer, int nthr
 
     range_m[num_cpu + 1] = range_m[num_cpu] + width;
     range_n[num_cpu] = num_cpu * (((m + 15) & ~15) + 16);
-    if (range_n[num_cpu] > m) range_n[num_cpu] = m;
+    if (range_n[num_cpu] > m * num_cpu) range_n[num_cpu] = m * num_cpu;
 
     queue[num_cpu].mode    = mode;
     queue[num_cpu].routine = tpmv_kernel;