[clblas] 35/125: Kernel cache: Store if we have the source for a kernel

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Fri May 29 06:57:20 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 29d0c282fcf3112b9e9cf780bdde9e9527f2a802
Author: Christian Kellner <christian at kellner.me>
Date:   Thu Nov 7 16:45:14 2013 +0100

    Kernel cache: Store if we have the source for a kernel
    
    Then don't try to estimate kernel source size if we don't have it:
    In fullKernelSize() only call add the source code if we have them,
    i.e. did not drop it earlier, because doing so will crash on OSX 10.9.
    This should fix issue #21
---
 src/include/kern_cache.h          | 1 +
 src/library/blas/generic/common.c | 2 ++
 src/library/common/kern_cache.c   | 4 +++-
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/include/kern_cache.h b/src/include/kern_cache.h
index b6749c5..af14a85 100644
--- a/src/include/kern_cache.h
+++ b/src/include/kern_cache.h
@@ -55,6 +55,7 @@ typedef struct Kernel {
     void *extra;
     size_t extraSize;
     void (*dtor)(struct Kernel *kern);
+    int noSource;
 } Kernel;
 
 typedef int
diff --git a/src/library/blas/generic/common.c b/src/library/blas/generic/common.c
index 9e26887..de99f72 100644
--- a/src/library/blas/generic/common.c
+++ b/src/library/blas/generic/common.c
@@ -364,6 +364,7 @@ Kernel VISIBILITY_HIDDEN
         kernel->extra = calloc(1, kernel->extraSize);
         *(CLBLASKernExtra*)(kernel->extra) = *extra;
         kernel->dtor = extraDtor;
+        kernel->noSource = 1;
     }
     else {
         putKernel(NULL, kernel);
@@ -491,6 +492,7 @@ Kernel
 #if !defined(KEEP_CLBLAS_KERNEL_SOURCES)
     if (err == CL_SUCCESS) {
         err = dropProgramSource(&kernel->program, context, device);
+        kernel->noSource = 1;
     }
 #endif  /* !DUMP_CLBLAS_KERNELS */
 
diff --git a/src/library/common/kern_cache.c b/src/library/common/kern_cache.c
index 787d139..1006e48 100644
--- a/src/library/common/kern_cache.c
+++ b/src/library/common/kern_cache.c
@@ -425,7 +425,9 @@ fullKernelSize(Kernel *kern)
         size += allSizes[i];
     }
 
-    clGetProgramInfo(kern->program, CL_PROGRAM_SOURCE, 0, NULL, &retSize);
+    if (!kern->noSource) {
+        clGetProgramInfo(kern->program, CL_PROGRAM_SOURCE, 0, NULL, &retSize);
+    }
 
     return (size + retSize + sizeof(Kernel) + kern->extraSize);
 }

-- 
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