Disable gemv unrolling
authorMartin Kroeker <martin@ruby.chemie.uni-freiburg.de>
Sun, 3 Dec 2017 21:41:54 +0000 (22:41 +0100)
committerGitHub <noreply@github.com>
Sun, 3 Dec 2017 21:41:54 +0000 (22:41 +0100)
as a (hopefully temporary) workaround for #1332

driver/level2/trmv_U.c

index a0aa7ef..7f8895e 100644 (file)
@@ -54,12 +54,16 @@ int CNAME(BLASLONG m, FLOAT *a, BLASLONG lda, FLOAT *b, BLASLONG incb, FLOAT *bu
     COPY_K(m, b, incb, buffer, 1);
   }
 
-  for (is = 0; is < m; is += DTB_ENTRIES){
+/*FIXME the GEMV unrolling performed here was found to be broken, see issue 1332 */
+/* Multiplying DTB size by 100 is just a quick-and-dirty hack to disable it for now[B */
 
-    min_i = MIN(m - is, DTB_ENTRIES);
+  for (is = 0; is < m; is += DTB_ENTRIES * 100){
+
+    min_i = MIN(m - is, DTB_ENTRIES * 100);
 
 #ifndef TRANSA
     if (is > 0){
+fprintf(stderr,"WARNING unrolling of the trmv_U loop may give wrong results\n");    
       GEMV_N(is, min_i, 0, dp1,
             a + is * lda,  lda,
             B + is, 1,