[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#723587: marked as done (pu: Non-free file in PyOpenCL)



Your message dated Tue, 24 Sep 2013 22:47:04 +0000
with message-id <E1VObNo-0003Lc-VK@franck.debian.org>
and subject line Bug#723587: fixed in pyopencl 2012.1.dfsg-1
has caused the Debian Bug report #723587,
regarding pu: Non-free file in PyOpenCL
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
723587: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=723587
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: important

Hello.
I received bug report that my package python-pyopencl-doc contains
non-free file in examples (#722014). Licence reads:
"Copyright NVIDIA. ALl rights reserved.
NVIDIA Corporation and its licensors retain all intellectual property
and
proprietary rights in and to this software and related documentation.
Any use, reproduction, disclosure, or distribution of this software
and related documentation without an express license agreement from
NVIDIA Corporation is strictly prohibited."

I have checked and non-free file examples/matrix-multiply.py
exists in all versions of PyOpenCL - in oldstable, stable, testing,
and unstable. Upstream has been notified and removed this file
from archive, and  I'll soon upload fixed version to unstable.

After asking on debian-mentors I was advised that I should also
upload DFSG-free versions of packages to stable and oldstable:
http://lists.debian.org/debian-mentors/2013/09/msg00104.html
I attach debdiffs of proposed changes - please review those.
I am DM, not DD, so I will need sponsor for those uploads.

Best regards.

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.10-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=pl_PL.UTF-8, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

-- 
Tomasz Rybak  GPG/PGP key ID: 2AD5 9860
Fingerprint A481 824E 7DD3 9C0E C40A  488E C654 FB33 2AD5 9860
http://member.acm.org/~tomaszrybak

diff -Nru pyopencl-0.92/debian/changelog pyopencl-0.92.dfsg/debian/changelog
--- pyopencl-0.92/debian/changelog	2010-11-11 23:10:57.000000000 +0100
+++ pyopencl-0.92.dfsg/debian/changelog	2013-09-17 17:12:20.000000000 +0200
@@ -1,3 +1,9 @@
+pyopencl (0.92.dfsg-1) oldstable; urgency=low
+
+  * Remove non-free file from examples (#722014).
+
+ -- Tomasz Rybak <tomasz.rybak@post.pl>  Tue, 17 Sep 2013 17:03:46 +0200
+
 pyopencl (0.92-1) unstable; urgency=high
 
   * New upstream release
diff -Nru pyopencl-0.92/debian/patches/python-versions.patch pyopencl-0.92.dfsg/debian/patches/python-versions.patch
--- pyopencl-0.92/debian/patches/python-versions.patch	2010-11-11 13:30:27.000000000 +0100
+++ pyopencl-0.92.dfsg/debian/patches/python-versions.patch	2013-09-17 17:12:20.000000000 +0200
@@ -4,11 +4,11 @@
  Python version and include it into name of linked library.
 Forwarded: not-needed
 Author: Tomasz Rybak <bogomips@post.pl>
-Last-Update: 2010-11-11
-Index: pyopencl-0.92/setup.py
+Last-Update: 2010-06-19
+Index: pyopencl-0.92~beta+git20100618/setup.py
 ===================================================================
---- pyopencl-0.92.orig/setup.py	2010-11-11 13:22:42.000000000 +0100
-+++ pyopencl-0.92/setup.py	2010-11-11 13:22:55.000000000 +0100
+--- pyopencl-0.92~beta+git20100618.orig/setup.py	2010-06-19 20:30:40.000000000 +0200
++++ pyopencl-0.92~beta+git20100618/setup.py	2010-06-19 20:31:07.000000000 +0200
 @@ -42,6 +42,7 @@
  
  def main():
@@ -17,7 +17,7 @@
      from aksetup_helper import (hack_distutils, get_config, setup,
              NumpyExtension, set_up_shipped_boost_if_requested)
  
-@@ -51,6 +52,7 @@
+@@ -53,6 +54,7 @@
      EXTRA_OBJECTS, EXTRA_DEFINES = set_up_shipped_boost_if_requested(conf)
  
      LIBRARY_DIRS = conf["BOOST_LIB_DIR"]
diff -Nru pyopencl-0.92/debian/patches/replace-setuptools.patch pyopencl-0.92.dfsg/debian/patches/replace-setuptools.patch
--- pyopencl-0.92/debian/patches/replace-setuptools.patch	2010-11-11 13:30:27.000000000 +0100
+++ pyopencl-0.92.dfsg/debian/patches/replace-setuptools.patch	2013-09-17 17:12:20.000000000 +0200
@@ -3,11 +3,11 @@
  contains all necessary files and we avoid network traffic from build machine.
 Forwarded: not-needed
 Author: Tomasz Rybak <bogomips@post.pl>
-Last-Update: 2010-11-11
-Index: pyopencl-0.92/MANIFEST.in
+Last-Update: 2010-06-02
+Index: pyopencl-0.92~beta+git20100806/MANIFEST.in
 ===================================================================
---- pyopencl-0.92.orig/MANIFEST.in	2010-11-11 13:24:53.000000000 +0100
-+++ pyopencl-0.92/MANIFEST.in	2010-11-11 13:25:37.000000000 +0100
+--- pyopencl-0.92~beta+git20100806.orig/MANIFEST.in	2010-08-07 13:49:58.000000000 +0200
++++ pyopencl-0.92~beta+git20100806/MANIFEST.in	2010-08-07 15:13:27.000000000 +0200
 @@ -7,7 +7,6 @@
  include doc/*.py
  include doc/source/conf.py
@@ -16,10 +16,10 @@
  include configure.py
  include Makefile.in
  include aksetup_helper.py
-Index: pyopencl-0.92/aksetup_helper.py
+Index: pyopencl-0.92~beta+git20100806/aksetup_helper.py
 ===================================================================
---- pyopencl-0.92.orig/aksetup_helper.py	2010-11-11 13:25:02.000000000 +0100
-+++ pyopencl-0.92/aksetup_helper.py	2010-11-11 13:25:37.000000000 +0100
+--- pyopencl-0.92~beta+git20100806.orig/aksetup_helper.py	2010-08-07 13:49:58.000000000 +0200
++++ pyopencl-0.92~beta+git20100806/aksetup_helper.py	2010-08-07 15:13:52.000000000 +0200
 @@ -1,35 +1,6 @@
 -# dealings with ez_setup ------------------------------------------------------
 -import distribute_setup
@@ -90,8 +90,7 @@
      return schema.read_config()
  
  
-@@ -516,34 +460,7 @@
-     import sys
+@@ -517,34 +461,7 @@
  
      if conf["USE_SHIPPED_BOOST"]:
 -        if not exists("bpl-subset/bpl_subset/boost/version.hpp"):
@@ -112,7 +111,8 @@
 -            print("'USE_SHIPPED_BOOST' off.")
 -            print("------------------------------------------------------------------------")
 -            conf["USE_SHIPPED_BOOST"] = False
--
++       conf["USE_SHIPPED_BOOST"] = False
+ 
 -            delay = 10
 -
 -            from time import sleep
@@ -122,7 +122,7 @@
 -                sys.stdout.flush()
 -                delay -= 1
 -                sleep(1)
-+       conf["USE_SHIPPED_BOOST"] = False
- 
+-
      if conf["USE_SHIPPED_BOOST"]:
          conf["BOOST_INC_DIR"] = ["bpl-subset/bpl_subset"]
+         conf["BOOST_LIB_DIR"] = []
diff -Nru pyopencl-0.92/debian/rules pyopencl-0.92.dfsg/debian/rules
--- pyopencl-0.92/debian/rules	2010-11-11 13:30:27.000000000 +0100
+++ pyopencl-0.92.dfsg/debian/rules	2013-09-17 17:12:20.000000000 +0200
@@ -36,6 +36,7 @@
 	git clone $(GIT_URL) $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)
 	cd $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION) && git checkout $(GIT_REVISION)
 	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/.git $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/.gitignore $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/.gitmodules
+	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/examples/matrix-multiply.py
 	tar czf $(MODULE_NAME)_$(DEB_UPSTREAM_VERSION).orig.tar.gz $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)
 	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)
 
diff -Nru pyopencl-0.92/examples/matrix-multiply.py pyopencl-0.92.dfsg/examples/matrix-multiply.py
--- pyopencl-0.92/examples/matrix-multiply.py	2010-10-21 19:10:19.000000000 +0200
+++ pyopencl-0.92.dfsg/examples/matrix-multiply.py	1970-01-01 01:00:00.000000000 +0100
@@ -1,241 +0,0 @@
-# example provided by Eilif Muller
-
-from __future__ import division
-
-KERNEL_CODE = """
-
-// Thread block size
-#define BLOCK_SIZE %(block_size)d
-
-// Matrix dimensions
-// (chosen as multiples of the thread block size for simplicity)
-#define WA %(w_a)d // Matrix A width
-#define HA %(h_a)d // Matrix A height
-#define WB %(w_b)d // Matrix B width
-#define HB WA  // Matrix B height
-#define WC WB  // Matrix C width
-#define HC HA  // Matrix C height
-
-
-/*
- * Copyright 1993-2009 NVIDIA Corporation.  All rights reserved.
- *
- * NVIDIA Corporation and its licensors retain all intellectual property and
- * proprietary rights in and to this software and related documentation.
- * Any use, reproduction, disclosure, or distribution of this software
- * and related documentation without an express license agreement from
- * NVIDIA Corporation is strictly prohibited.
- *
- * Please refer to the applicable NVIDIA end user license agreement (EULA)
- * associated with this source code for terms and conditions that govern
- * your use of this NVIDIA software.
- *
- */
-
-/* Matrix multiplication: C = A * B.
- * Device code.
- */
-
-#define AS(j, i) As[i + j * BLOCK_SIZE]
-#define BS(j, i) Bs[i + j * BLOCK_SIZE]
-
-////////////////////////////////////////////////////////////////////////////////
-//! Matrix multiplication on the device: C = A * B
-//! WA is A's width and WB is B's width
-////////////////////////////////////////////////////////////////////////////////
-__kernel __attribute__((reqd_work_group_size(BLOCK_SIZE,BLOCK_SIZE,1))) 
-void
-matrixMul( __global float* C, __global float* A, __global float* B)
-{
-    __local float As[BLOCK_SIZE*BLOCK_SIZE];
-    __local float Bs[BLOCK_SIZE*BLOCK_SIZE];
-
-    // Block index
-    int bx = get_group_id(0);
-    int by = get_group_id(1);
-
-    // Thread index
-    int tx = get_local_id(0);
-    int ty = get_local_id(1);
-
-    // Index of the first sub-matrix of A processed by the block
-    int aBegin = WA * BLOCK_SIZE * by;
-
-    // Index of the last sub-matrix of A processed by the block
-    int aEnd   = aBegin + WA - 1;
-
-    // Step size used to iterate through the sub-matrices of A
-    int aStep  = BLOCK_SIZE;
-
-    // Index of the first sub-matrix of B processed by the block
-    int bBegin = BLOCK_SIZE * bx;
-
-    // Step size used to iterate through the sub-matrices of B
-    int bStep  = BLOCK_SIZE * WB;
-
-    // Csub is used to store the element of the block sub-matrix
-    // that is computed by the thread
-    float Csub = 0.0f;
-
-    // Loop over all the sub-matrices of A and B
-    // required to compute the block sub-matrix
-    for (int a = aBegin, b = bBegin;
-             a <= aEnd;
-             a += aStep, b += bStep) {
-
-        // Load the matrices from device memory
-        // to shared memory; each thread loads
-        // one element of each matrix
-        AS(ty, tx) = A[a + WA * ty + tx];
-        BS(ty, tx) = B[b + WB * ty + tx];
-
-        // Synchronize to make sure the matrices are loaded
-        barrier(CLK_LOCAL_MEM_FENCE);
-
-        // Multiply the two matrices together;
-        // each thread computes one element
-        // of the block sub-matrix
-        for (int k = 0; k < BLOCK_SIZE; ++k)
-            Csub += AS(ty, k) * BS(k, tx);
-
-        // Synchronize to make sure that the preceding
-        // computation is done before loading two new
-        // sub-matrices of A and B in the next iteration
-        barrier(CLK_LOCAL_MEM_FENCE);
-    }
-
-    // Write the block sub-matrix to device memory;
-    // each thread writes one element
-    C[get_global_id(1) * get_global_size(0) + get_global_id(0)] = Csub;
-
-}
-
-"""
-
-import pyopencl as cl
-from time import time
-import numpy
-
-block_size = 16
-
-ctx = cl.create_some_context()
-
-for dev in ctx.devices:
-    assert dev.local_mem_size > 0
-
-queue = cl.CommandQueue(ctx,
-        properties=cl.command_queue_properties.PROFILING_ENABLE)
-
-#queue = cl.CommandQueue(ctx)
-
-if False:
-    a_height = 4096
-    #a_height = 1024
-    a_width = 2048
-    #a_width = 256
-    #b_height == a_width
-    b_width = a_height
-
-elif False:
-    # like PyCUDA
-    a_height = 2516
-    a_width = 1472
-    b_height = a_width
-    b_width = 2144
-
-else:
-    # CL SDK
-    a_width = 50*block_size
-    a_height = 100*block_size
-    b_width = 50*block_size
-    b_height = a_width
-
-c_width = b_width
-c_height = a_height
-
-h_a = numpy.random.rand(a_height, a_width).astype(numpy.float32)
-h_b = numpy.random.rand(b_height, b_width).astype(numpy.float32)
-h_c = numpy.empty((c_height, c_width)).astype(numpy.float32)
-
-
-kernel_params = {"block_size": block_size,
-        "w_a":a_width, "h_a":a_height, "w_b":b_width}
-
-if "NVIDIA" in queue.device.vendor:
-    options = "-cl-mad-enable -cl-fast-relaxed-math"
-else:
-    options = None
-prg = cl.Program(ctx, KERNEL_CODE % kernel_params,
-        ).build(options=options)
-kernel = prg.matrixMul
-#print prg.binaries[0]
-
-assert a_width % block_size == 0
-assert a_height % block_size == 0
-assert b_width % block_size == 0
-
-# transfer host -> device -----------------------------------------------------
-mf = cl.mem_flags
-
-t1 = time()
-
-d_a_buf = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=h_a)
-d_b_buf = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=h_b)
-d_c_buf = cl.Buffer(ctx, mf.WRITE_ONLY, size=h_c.nbytes)
-
-push_time = time()-t1
-
-# warmup ----------------------------------------------------------------------
-for i in range(5):
-    event = kernel(queue, h_c.shape, (block_size, block_size), 
-            d_c_buf, d_a_buf, d_b_buf)
-    event.wait()
-
-queue.finish()
-
-# actual benchmark ------------------------------------------------------------
-t1 = time()
-
-count = 20
-for i in range(count):
-    event = kernel(queue, h_c.shape, (block_size, block_size),
-            d_c_buf, d_a_buf, d_b_buf)
-
-event.wait()
-
-gpu_time = (time()-t1)/count
-
-# transfer device -> host -----------------------------------------------------
-t1 = time()
-cl.enqueue_read_buffer(queue, d_c_buf, h_c).wait()
-pull_time = time()-t1
-
-# timing output ---------------------------------------------------------------
-gpu_total_time = gpu_time+push_time+pull_time
-
-print "GPU push+compute+pull total [s]:", gpu_total_time
-print "GPU push [s]:", push_time
-print "GPU pull [s]:", pull_time
-print "GPU compute (host-timed) [s]:", gpu_time
-print "GPU compute (event-timed) [s]: ", (event.profile.end-event.profile.start)*1e-9
-
-gflop = h_c.size * (a_width * 2.) / (1000**3.)
-gflops = gflop / gpu_time
-
-print
-print "GFlops/s:", gflops
-
-# cpu comparison --------------------------------------------------------------
-t1 = time()
-h_c_cpu = numpy.dot(h_a,h_b)
-cpu_time = time()-t1
-
-print
-print "GPU==CPU:",numpy.allclose(h_c, h_c_cpu)
-print
-print "CPU time (s)", cpu_time
-print
-
-print "GPU speedup (with transfer): ", cpu_time/gpu_total_time
-print "GPU speedup (without transfer): ", cpu_time/gpu_time
-
diff -Nru pyopencl-2012.1/debian/changelog pyopencl-2012.1.dfsg/debian/changelog
--- pyopencl-2012.1/debian/changelog	2012-06-21 22:22:52.000000000 +0200
+++ pyopencl-2012.1.dfsg/debian/changelog	2013-09-17 17:29:52.000000000 +0200
@@ -1,3 +1,9 @@
+pyopencl (2012.1.dfsg-1) stable; urgency=low
+
+  * Remove non-free file from examples (#722014).
+
+ -- Tomasz Rybak <tomasz.rybak@post.pl>  Tue, 17 Sep 2013 17:25:16 +0200
+
 pyopencl (2012.1-1) unstable; urgency=low
 
   * New upstream release.
diff -Nru pyopencl-2012.1/debian/rules pyopencl-2012.1.dfsg/debian/rules
--- pyopencl-2012.1/debian/rules	2012-06-21 22:22:52.000000000 +0200
+++ pyopencl-2012.1.dfsg/debian/rules	2013-09-17 17:29:52.000000000 +0200
@@ -48,6 +48,7 @@
 	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/.git $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/.gitignore $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/.gitmodules
 	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/doc/source/.gitignore
 	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/$(GIT_SUBMODULES)/.git $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/$(GIT_SUBMODULES)/.gitignore
+	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)/examples/matrix-multiply.py
 	tar czf $(MODULE_NAME)_$(DEB_UPSTREAM_VERSION).orig.tar.gz $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)
 	rm -rf $(MODULE_NAME)-$(DEB_UPSTREAM_VERSION)
 
diff -Nru pyopencl-2012.1/examples/matrix-multiply.py pyopencl-2012.1.dfsg/examples/matrix-multiply.py
--- pyopencl-2012.1/examples/matrix-multiply.py	2012-06-21 22:22:19.000000000 +0200
+++ pyopencl-2012.1.dfsg/examples/matrix-multiply.py	1970-01-01 01:00:00.000000000 +0100
@@ -1,241 +0,0 @@
-# example provided by Eilif Muller
-
-from __future__ import division
-
-KERNEL_CODE = """
-
-// Thread block size
-#define BLOCK_SIZE %(block_size)d
-
-// Matrix dimensions
-// (chosen as multiples of the thread block size for simplicity)
-#define WA %(w_a)d // Matrix A width
-#define HA %(h_a)d // Matrix A height
-#define WB %(w_b)d // Matrix B width
-#define HB WA  // Matrix B height
-#define WC WB  // Matrix C width
-#define HC HA  // Matrix C height
-
-
-/*
- * Copyright 1993-2009 NVIDIA Corporation.  All rights reserved.
- *
- * NVIDIA Corporation and its licensors retain all intellectual property and
- * proprietary rights in and to this software and related documentation.
- * Any use, reproduction, disclosure, or distribution of this software
- * and related documentation without an express license agreement from
- * NVIDIA Corporation is strictly prohibited.
- *
- * Please refer to the applicable NVIDIA end user license agreement (EULA)
- * associated with this source code for terms and conditions that govern
- * your use of this NVIDIA software.
- *
- */
-
-/* Matrix multiplication: C = A * B.
- * Device code.
- */
-
-#define AS(j, i) As[i + j * BLOCK_SIZE]
-#define BS(j, i) Bs[i + j * BLOCK_SIZE]
-
-////////////////////////////////////////////////////////////////////////////////
-//! Matrix multiplication on the device: C = A * B
-//! WA is A's width and WB is B's width
-////////////////////////////////////////////////////////////////////////////////
-__kernel __attribute__((reqd_work_group_size(BLOCK_SIZE,BLOCK_SIZE,1))) 
-void
-matrixMul( __global float* C, __global float* A, __global float* B)
-{
-    __local float As[BLOCK_SIZE*BLOCK_SIZE];
-    __local float Bs[BLOCK_SIZE*BLOCK_SIZE];
-
-    // Block index
-    int bx = get_group_id(0);
-    int by = get_group_id(1);
-
-    // Thread index
-    int tx = get_local_id(0);
-    int ty = get_local_id(1);
-
-    // Index of the first sub-matrix of A processed by the block
-    int aBegin = WA * BLOCK_SIZE * by;
-
-    // Index of the last sub-matrix of A processed by the block
-    int aEnd   = aBegin + WA - 1;
-
-    // Step size used to iterate through the sub-matrices of A
-    int aStep  = BLOCK_SIZE;
-
-    // Index of the first sub-matrix of B processed by the block
-    int bBegin = BLOCK_SIZE * bx;
-
-    // Step size used to iterate through the sub-matrices of B
-    int bStep  = BLOCK_SIZE * WB;
-
-    // Csub is used to store the element of the block sub-matrix
-    // that is computed by the thread
-    float Csub = 0.0f;
-
-    // Loop over all the sub-matrices of A and B
-    // required to compute the block sub-matrix
-    for (int a = aBegin, b = bBegin;
-             a <= aEnd;
-             a += aStep, b += bStep) {
-
-        // Load the matrices from device memory
-        // to shared memory; each thread loads
-        // one element of each matrix
-        AS(ty, tx) = A[a + WA * ty + tx];
-        BS(ty, tx) = B[b + WB * ty + tx];
-
-        // Synchronize to make sure the matrices are loaded
-        barrier(CLK_LOCAL_MEM_FENCE);
-
-        // Multiply the two matrices together;
-        // each thread computes one element
-        // of the block sub-matrix
-        for (int k = 0; k < BLOCK_SIZE; ++k)
-            Csub += AS(ty, k) * BS(k, tx);
-
-        // Synchronize to make sure that the preceding
-        // computation is done before loading two new
-        // sub-matrices of A and B in the next iteration
-        barrier(CLK_LOCAL_MEM_FENCE);
-    }
-
-    // Write the block sub-matrix to device memory;
-    // each thread writes one element
-    C[get_global_id(1) * get_global_size(0) + get_global_id(0)] = Csub;
-
-}
-
-"""
-
-import pyopencl as cl
-from time import time
-import numpy
-
-block_size = 16
-
-ctx = cl.create_some_context()
-
-for dev in ctx.devices:
-    assert dev.local_mem_size > 0
-
-queue = cl.CommandQueue(ctx,
-        properties=cl.command_queue_properties.PROFILING_ENABLE)
-
-#queue = cl.CommandQueue(ctx)
-
-if False:
-    a_height = 4096
-    #a_height = 1024
-    a_width = 2048
-    #a_width = 256
-    #b_height == a_width
-    b_width = a_height
-
-elif False:
-    # like PyCUDA
-    a_height = 2516
-    a_width = 1472
-    b_height = a_width
-    b_width = 2144
-
-else:
-    # CL SDK
-    a_width = 50*block_size
-    a_height = 100*block_size
-    b_width = 50*block_size
-    b_height = a_width
-
-c_width = b_width
-c_height = a_height
-
-h_a = numpy.random.rand(a_height, a_width).astype(numpy.float32)
-h_b = numpy.random.rand(b_height, b_width).astype(numpy.float32)
-h_c = numpy.empty((c_height, c_width)).astype(numpy.float32)
-
-
-kernel_params = {"block_size": block_size,
-        "w_a":a_width, "h_a":a_height, "w_b":b_width}
-
-if "NVIDIA" in queue.device.vendor:
-    options = "-cl-mad-enable -cl-fast-relaxed-math"
-else:
-    options = ""
-prg = cl.Program(ctx, KERNEL_CODE % kernel_params,
-        ).build(options=options)
-kernel = prg.matrixMul
-#print prg.binaries[0]
-
-assert a_width % block_size == 0
-assert a_height % block_size == 0
-assert b_width % block_size == 0
-
-# transfer host -> device -----------------------------------------------------
-mf = cl.mem_flags
-
-t1 = time()
-
-d_a_buf = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=h_a)
-d_b_buf = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=h_b)
-d_c_buf = cl.Buffer(ctx, mf.WRITE_ONLY, size=h_c.nbytes)
-
-push_time = time()-t1
-
-# warmup ----------------------------------------------------------------------
-for i in range(5):
-    event = kernel(queue, h_c.shape[::-1], (block_size, block_size), 
-            d_c_buf, d_a_buf, d_b_buf)
-    event.wait()
-
-queue.finish()
-
-# actual benchmark ------------------------------------------------------------
-t1 = time()
-
-count = 20
-for i in range(count):
-    event = kernel(queue, h_c.shape[::-1], (block_size, block_size),
-            d_c_buf, d_a_buf, d_b_buf)
-
-event.wait()
-
-gpu_time = (time()-t1)/count
-
-# transfer device -> host -----------------------------------------------------
-t1 = time()
-cl.enqueue_copy(queue, h_c, d_c_buf)
-pull_time = time()-t1
-
-# timing output ---------------------------------------------------------------
-gpu_total_time = gpu_time+push_time+pull_time
-
-print "GPU push+compute+pull total [s]:", gpu_total_time
-print "GPU push [s]:", push_time
-print "GPU pull [s]:", pull_time
-print "GPU compute (host-timed) [s]:", gpu_time
-print "GPU compute (event-timed) [s]: ", (event.profile.end-event.profile.start)*1e-9
-
-gflop = h_c.size * (a_width * 2.) / (1000**3.)
-gflops = gflop / gpu_time
-
-print
-print "GFlops/s:", gflops
-
-# cpu comparison --------------------------------------------------------------
-t1 = time()
-h_c_cpu = numpy.dot(h_a,h_b)
-cpu_time = time()-t1
-
-print
-print "GPU==CPU:",numpy.allclose(h_c, h_c_cpu)
-print
-print "CPU time (s)", cpu_time
-print
-
-print "GPU speedup (with transfer): ", cpu_time/gpu_total_time
-print "GPU speedup (without transfer): ", cpu_time/gpu_time
-

Attachment: signature.asc
Description: This is a digitally signed message part


--- End Message ---
--- Begin Message ---
Source: pyopencl
Source-Version: 2012.1.dfsg-1

We believe that the bug you reported is fixed in the latest version of
pyopencl, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 723587@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Tomasz Rybak <tomasz.rybak@post.pl> (supplier of updated pyopencl package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Tue, 24 Sep 2013 18:58:01 +0200
Source: pyopencl
Binary: python-pyopencl-headers python-pyopencl python3-pyopencl python-pyopencl-doc
Architecture: source all amd64 i386
Version: 2012.1.dfsg-1
Distribution: stable
Urgency: low
Maintainer: Tomasz Rybak <tomasz.rybak@post.pl>
Changed-By: Tomasz Rybak <tomasz.rybak@post.pl>
Description: 
 python-pyopencl - Python module to access OpenCL parallel computation API
 python-pyopencl-doc - module to access OpenCL parallel computation API (documentation)
 python-pyopencl-headers - headers for Python module to access OpenCL parallel computation A
 python3-pyopencl - Python 3 module to access OpenCL parallel computation API
Closes: 723587
Changes: 
 pyopencl (2012.1.dfsg-1) stable; urgency=low
 .
   * Remove non-free file from examples (#722014) and now-unnecessary
     entry from debian/copyright (Closes: #723587).
Checksums-Sha1: 
 dc56cebb9d251949c57ec85cb3d7e9c27a3ef8df 2450 pyopencl_2012.1.dfsg-1.dsc
 ea9af3230fc91de91a57ba4fbb2ff11d6fb1cd74 236802 pyopencl_2012.1.dfsg.orig.tar.gz
 cbe04acf3cc0412bc4b191a2c2fb059d02d2bb97 9543 pyopencl_2012.1.dfsg-1.debian.tar.gz
 364b46e7cdf242f74b27002b5293f263c7f3877f 29804 python-pyopencl-headers_2012.1.dfsg-1_all.deb
 18600984f7f7e27e42e1b79c476c9a383633b22b 741356 python-pyopencl_2012.1.dfsg-1_amd64.deb
 2636f75eabe95b0439bd43fb4fea9da8a0228335 401502 python3-pyopencl_2012.1.dfsg-1_amd64.deb
 040e633fadbb01f92c0d863585d35e684249e6de 749312 python-pyopencl_2012.1.dfsg-1_i386.deb
 2e895ac7f627216ccfb9cbfef86cd99294d9d0b4 405188 python3-pyopencl_2012.1.dfsg-1_i386.deb
 8224786626ac92d216b5cf91d22a594d58e5411f 131760 python-pyopencl-doc_2012.1.dfsg-1_all.deb
Checksums-Sha256: 
 8b5b20b403d80e88adaf771da4c21e4eb598d373f2194b7d46ce54ce670d0557 2450 pyopencl_2012.1.dfsg-1.dsc
 fd4765738c58019c1df3f7a08bec8c1acf5fbee4f18568b2e78d31532f72c2a0 236802 pyopencl_2012.1.dfsg.orig.tar.gz
 9d32b81bfb490278f3238d43b184ea4b8a558e5ad7f2e48967b555536e2bc05f 9543 pyopencl_2012.1.dfsg-1.debian.tar.gz
 a0d5fe07115d4bb98a8f9629785a1e24b8ec8cb2014cde56d0488e5cbaa3a09a 29804 python-pyopencl-headers_2012.1.dfsg-1_all.deb
 4980e64cd2c8b4c68164198196dd53571fab10a44267dcbe0f81cb17fa6fbaa3 741356 python-pyopencl_2012.1.dfsg-1_amd64.deb
 914d06ec49174b0c90d3d70f1f13ca9e41a3fce08cf0f666d903b62212c8bc7b 401502 python3-pyopencl_2012.1.dfsg-1_amd64.deb
 f2c5cddfe7970bd4722741c28d512f9845ca8182b7d70a6cb252797d47ed5efa 749312 python-pyopencl_2012.1.dfsg-1_i386.deb
 56e7b54eb047c685a35dcf7e947c67ce2b4ed676ba4145c85f8a714dd47030f9 405188 python3-pyopencl_2012.1.dfsg-1_i386.deb
 b0e9845df8a7ff564c611e1a351464bc4480446faa824b8112d04562c49ccb03 131760 python-pyopencl-doc_2012.1.dfsg-1_all.deb
Files: 
 0ab8e34a048bac8d27722bcfc2633087 2450 contrib/python optional pyopencl_2012.1.dfsg-1.dsc
 0493a07fcb59b7e7c63f3446f91f3942 236802 contrib/python optional pyopencl_2012.1.dfsg.orig.tar.gz
 fb8ab82da4f17a99b125e5b332cf04cb 9543 contrib/python optional pyopencl_2012.1.dfsg-1.debian.tar.gz
 c9afe0ac63659fcce902bc4300a84534 29804 contrib/python optional python-pyopencl-headers_2012.1.dfsg-1_all.deb
 1e05943a658119295c29e60a3791652d 741356 contrib/python optional python-pyopencl_2012.1.dfsg-1_amd64.deb
 b74c0b9f75396ae358483a90e38fef06 401502 contrib/python optional python3-pyopencl_2012.1.dfsg-1_amd64.deb
 230bfe82f6e32437eb5ff0127260ccf4 749312 contrib/python optional python-pyopencl_2012.1.dfsg-1_i386.deb
 56420ca29d3e4bd1d6e032a2d8a2e425 405188 contrib/python optional python3-pyopencl_2012.1.dfsg-1_i386.deb
 f72d432aeec6d4196fa8ac5817ca248e 131760 contrib/doc optional python-pyopencl-doc_2012.1.dfsg-1_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)

iQIcBAEBCAAGBQJSQe8wAAoJEMZU+zMq1ZhgxWgP/R9rtlhQdFHkjFeljbFDxpl9
KI53BCmWZQ2+1w6c/2JDmFcl3D5S9ngIiCBIBzavVEtBDtznsFU6MGxZnx6zfMVW
ruKCIsvs3pClwZY84uJiTJCEabJZvRDoiSDqE7EF3/t3nPwlxR3q9oVygxwLvLak
td8lsT1yhJuo88Oo+2yRJsRV/oNnNn68g/5Y5qMjl9NSCvNDsveHnJcoByRMRjiG
ePbhZSkzCbh4nV284/FSYBBk7AdgQKSgY7ONgUCUfwpJpJhZAdCUxJWLQC5SsG5a
fDDvxx7uzckng75xupGQUzb4pjPTspCkkz5VcKObs+UZsercO396J8GvEIP7pn+6
dY4pKqvDDgpreOgZWdKTItSfdOLp89AcPIK7HpEHce+yO5IPAzzyk9TB/O5CgvSj
tWqYqVtPJoUp14FNd647HqouhsD7+hBkmd4RrxfMvUUuVjiFW5KDoS8CG8bkcd04
jtR7ULOpCfGHIkdWaoF6ZPNPVFp1WCvsudAqsLIXLL0/jygoSUuOoC3KWjZaMv0E
+7eMkNKyUyuCiEhFQ9h1tKLpr9Cg9Bh2mpOxTtg+mBGOMp89jftmJEU1GqSdfAQN
RZ4UYjxSNqeQrgN7ZsivKW0h5qwUAnD3HGFEmJtjBwe+iNZd4XdIcFD9CusJbs+i
PKo4MI7Gcs+YpzuxpasU
=fbmx
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: