Correct range_n limiting
authorMartin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Tue, 19 Feb 2019 19:59:48 +0000 (20:59 +0100)
committerGitHub <noreply@github.com>
Tue, 19 Feb 2019 19:59:48 +0000 (20:59 +0100)
same bug as seen in #1388, somehow missed in corresponding PR #1389

driver/level2/trmv_thread.c

index 24b881a..00092e9 100644 (file)
@@ -346,8 +346,8 @@ int CNAME(BLASLONG m, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG incx, FLOAT *bu
 
     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 = trmv_kernel;
     queue[num_cpu].args    = &args;
@@ -386,8 +386,7 @@ int CNAME(BLASLONG m, FLOAT *a, BLASLONG lda, FLOAT *x, BLASLONG incx, FLOAT *bu
 
     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 = trmv_kernel;
     queue[num_cpu].args    = &args;