From 591ecc83c8684ece302596d38173e6d499834087 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Fri, 2 Jun 2017 20:16:56 -0400
Subject: [PATCH] Better kernel names for Random123 RNG

---
 pyopencl/clrandom.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/pyopencl/clrandom.py b/pyopencl/clrandom.py
index a30ffaf9..795474b3 100644
--- a/pyopencl/clrandom.py
+++ b/pyopencl/clrandom.py
@@ -520,6 +520,7 @@ class Random123GeneratorBase(object):
                     "unsupported RNG distribution/data type combination '%s/%s'"
                     % rng_key)
 
+        kernel_name = "rng_gen_%s_%s" % (self.generator_name, distribution)
         src = """//CL//
             #include <%(header_name)s>
 
@@ -559,7 +560,7 @@ class Random123GeneratorBase(object):
 
             #define GET_RANDOM_NUM(gen) %(rng_expr)s
 
-            kernel void generate(
+            kernel void %(kernel_name)s(
                 int k1,
                 #if %(key_length)s > 2
                 int k2, int k3,
@@ -599,6 +600,7 @@ class Random123GeneratorBase(object):
                   output[idx+3] = tail_ran.w;
             }
             """ % {
+                "kernel_name": kernel_name,
                 "gen_name": self.generator_name,
                 "header_name": self.header_name,
                 "output_t": c_type,
@@ -608,7 +610,7 @@ class Random123GeneratorBase(object):
                 }
 
         prg = cl.Program(self.context, src).build()
-        knl = prg.generate
+        knl = getattr(prg, kernel_name)
         knl.set_scalar_arg_dtypes(
                 [np.int32] * (self.key_length - 1 + 4)
                 + [None, np.int64, arg_dtype, arg_dtype])
-- 
GitLab