[clblas] 71/125: bug fix of hemm and symm hanging with tuning KDB file and ssyr2k crashes on Kaveri with tuning KDB file

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Fri May 29 06:57:23 UTC 2015


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to branch master
in repository clblas.

commit d8ca5878b5971e608fa8ef63bbee8fcf9684425c
Author: Timmy <timmy.liu at amd.com>
Date:   Thu Jun 5 15:26:46 2014 -0500

    bug fix of hemm and symm hanging with tuning KDB file and ssyr2k crashes on Kaveri with tuning KDB file
---
 src/library/blas/generic/solution_seq_make.c |  9 ++++++---
 src/library/blas/gens/syrxk.c                | 21 ++++++++++++++++-----
 2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/src/library/blas/generic/solution_seq_make.c b/src/library/blas/generic/solution_seq_make.c
index 0eee1fd..8a5e402 100644
--- a/src/library/blas/generic/solution_seq_make.c
+++ b/src/library/blas/generic/solution_seq_make.c
@@ -1435,9 +1435,12 @@ getStepGranulation(SolutionStep *step)
             }
         }
 
-        status = getGranularityInfo(&step->device, mempat->name,
-                                    step->args.dtype, step->extraFlags,
-                                    (int)MNK, dims, &step->pgran, &time);
+		if( step->funcID != CLBLAS_GEMM2 )
+		{
+			status = getGranularityInfo(&step->device, mempat->name,
+										step->args.dtype, step->extraFlags,
+										(int)MNK, dims, &step->pgran, &time);
+		}
         /*
          * Disable blocking for implementations dealing with cache reads
          * from the global memory
diff --git a/src/library/blas/gens/syrxk.c b/src/library/blas/gens/syrxk.c
index e4a00ee..cf47ba9 100644
--- a/src/library/blas/gens/syrxk.c
+++ b/src/library/blas/gens/syrxk.c
@@ -21,6 +21,7 @@
 
 #include <string.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <assert.h>
 
 #include <clBLAS.h>
@@ -1219,10 +1220,11 @@ genUpdateGenericDiagTile(
     // type of the vectorized coordinates
     Kstring vctype;
     Kstring constOffs, constShifts, constMasks;
-    unsigned int i, j, nops;
+    unsigned int i, j, nops,size;
     unsigned int maxFetches = 0;
     const char *yname, *xname;
     const char *ldcName;
+	char hexadec[1];
 
     batch = createStmtBatch();
     if (batch == NULL) {
@@ -1253,6 +1255,14 @@ genUpdateGenericDiagTile(
     tifl = (isUpper) ? TILE_ITER_BACKWARD_ROWS :
                        TILE_ITER_BACKWARD_COLS;
     iterInit(&iter, &tileTempC, 1, tifl);
+	nops = 0;
+	while (!iterIsEnd(&iter)) {
+		nops++;
+		size = nops / nrCols;
+		iterIterate(&iter);
+	}
+
+	iterInit(&iter, &tileTempC, 1, tifl);
 
     initTmpResTile(&tileTempC, gset, true);
 
@@ -1316,7 +1326,7 @@ genUpdateGenericDiagTile(
     maxFetches = umin(maxFetches, i);
 
     // declare vectorized coordinates
-    declareDiagUpresIndexedVars(ctx, vctype.buf, "cc", tempRows);
+    declareDiagUpresIndexedVars(ctx, vctype.buf, "cc", size);
 
     /*
      * real y coordinate, offset mask and
@@ -1326,8 +1336,8 @@ genUpdateGenericDiagTile(
                      "unsigned int mask;\n"
                      "int hit;\n");
     if (withBeta) {
-        declareDiagUpresIndexedVars(ctx, typeName, "alphaNew", tempRows);
-        declareDiagUpresIndexedVars(ctx, typeName, "betaNew", tempRows);
+        declareDiagUpresIndexedVars(ctx, typeName, "alphaNew", size);
+        declareDiagUpresIndexedVars(ctx, typeName, "betaNew", size);
     }
 
     // declare tile
@@ -1443,7 +1453,8 @@ genUpdateGenericDiagTile(
             ksprintf(&kstr, "cc%u", i);
         }
         else {
-            ksprintf(&kstr, "cc%u.s%u", i, iter.col);
+			itoa(iter.col, hexadec, 16);
+            ksprintf(&kstr, "cc%u.s%s", i, hexadec);
         }
 
         // prepare multipliers and fetch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/clblas.git



More information about the debian-science-commits mailing list