Hi Bruce, Looks like the docs for Function.prepare() are a bit outdated, I've created a PR for that. As for the example, since I cannot register on the wiki (some cryptic error appears), I've created a gist with the corrected version: https://gist.github.com/Manticore/6ff4400cde2750e61bff
Fixes: - Py3 safe - Fixed indentation in run_benchmark() - Fixed repetition of test sizes in run_benchmark() - Added labels to the graphs and some description to the output Best regards, Bogdan On Thu, Sep 4, 2014 at 12:03 PM, Bruce Labitt <[email protected]> wrote: > Hi Bogdan, > > Thanks for pointing that out. It seems that is not the only error in this > example. Adding a carriage return, and re-running yields a TypeError > > In [5]: run MatrixTranspose.py > --------------------------------------------------------------------------- > TypeError Traceback (most recent call last) > > /usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc in > execfile(fname, *where) > 202 else: > 203 filename = fname > --> 204 __builtin__.execfile(filename, *where) > > /home/bruce/Apps/pycuda/examples/wiki-examples/MatrixTranspose.py in > <module>() > 217 > 218 #check_transpose() > --> 219 run_benchmark() > 220 > 221 > > /home/bruce/Apps/pycuda/examples/wiki-examples/MatrixTranspose.py in > run_benchmark() > 183 > 184 for i in range(warmup): > --> 185 _transpose(target, source) > 186 > 187 count = 10 > > /home/bruce/Apps/pycuda/examples/wiki-examples/MatrixTranspose.py in > _transpose(tgt, src) > 118 > 119 def _transpose(tgt, src): > --> 120 krnl = _get_transpose_kernel() > 121 > 122 w, h = src.shape > > > <string> in _get_transpose_kernel() > > /usr/local/lib/python2.7/dist-packages/pycuda-2014.1-py2.7-linux-x86_64.egg/pycuda/tools.pyc > in context_dependent_memoize(func, *args) > 421 context_dependent_memoized_functions.append(func) > 422 arg_dict = ctx_dict.setdefault(cur_ctx, {}) > --> 423 result = func(*args) > 424 arg_dict[args] = result > 425 return result > > /home/bruce/Apps/pycuda/examples/wiki-examples/MatrixTranspose.py in > _get_transpose_kernel() > 51 > 52 func = mod.get_function("transpose") > ---> 53 func.prepare("PPii", block=(block_size, block_size, 1)) > 54 > 55 from pytools import Record > > TypeError: function_prepare() got an unexpected keyword argument 'block' > > This TypeError occurs for > http://wiki.tiker.net/PyCuda/Examples/MatrixTranspose and the downloaded > wiki-examples (after fixing the double #defines on a line) > > Best regards, > Bruce > > > > > > On Wed, Sep 3, 2014 at 9:39 PM, Bogdan Opanchuk <[email protected]> > wrote: > >> Hi Bruce, >> >> Seems to be a typo in the Wiki. If you look at >> http://wiki.tiker.net/PyCuda/Examples/MatrixTranspose (where >> MatrixTranspose.py originally comes from), you can see in line 24 two >> "#define"s in one line. Incidentally, if someone has an account there, >> could you fix that? >> >> Best regards, >> Bogdan >> >> >> On Thu, Sep 4, 2014 at 11:24 AM, Bruce Labitt <[email protected]> wrote: >> >>> Probably not the desired response. Can someone suggest a fix? >>> Thanks, >>> Bruce >>> >>> In [3]: run MatrixTranspose.py >>> >>> --------------------------------------------------------------------------- >>> CompileError Traceback (most recent call >>> last) >>> /usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc in >>> execfile(fname, *where) >>> 202 else: >>> 203 filename = fname >>> --> 204 __builtin__.execfile(filename, *where) >>> >>> /home/bruce/Apps/pycuda/examples/wiki-examples/MatrixTranspose.py in >>> <module>() >>> 216 >>> 217 #check_transpose() >>> --> 218 run_benchmark() >>> 219 >>> 220 >>> >>> /home/bruce/Apps/pycuda/examples/wiki-examples/MatrixTranspose.py in >>> run_benchmark() >>> 182 >>> 183 for i in range(warmup): >>> --> 184 _transpose(target, source) >>> 185 >>> 186 count = 10 >>> >>> /home/bruce/Apps/pycuda/examples/wiki-examples/MatrixTranspose.py in >>> _transpose(tgt, src) >>> 117 >>> 118 def _transpose(tgt, src): >>> --> 119 krnl = _get_transpose_kernel() >>> 120 >>> 121 w, h = src.shape >>> >>> <string> in _get_transpose_kernel() >>> >>> /usr/local/lib/python2.7/dist-packages/pycuda-2014.1-py2.7-linux-x86_64.egg/pycuda/tools.pyc >>> in context_dependent_memoize(func, *args) >>> 421 context_dependent_memoized_functions.append(func) >>> 422 arg_dict = ctx_dict.setdefault(cur_ctx, {}) >>> --> 423 result = func(*args) >>> 424 arg_dict[args] = result >>> 425 return result >>> >>> /home/bruce/Apps/pycuda/examples/wiki-examples/MatrixTranspose.py in >>> _get_transpose_kernel() >>> 47 A_t[glob_idx_a_t] = A_shared[threadIdx.x][threadIdx.y]; >>> 48 } >>> ---> 49 """% {"block_size": block_size}) >>> 50 >>> 51 func = mod.get_function("transpose") >>> >>> /usr/local/lib/python2.7/dist-packages/pycuda-2014.1-py2.7-linux-x86_64.egg/pycuda/compiler.pyc >>> in __init__(self, source, nvcc, options, keep, no_extern_c, arch, code, >>> cache_dir, include_dirs) >>> 249 >>> 250 cubin = compile(source, nvcc, options, keep, no_extern_c, >>> --> 251 arch, code, cache_dir, include_dirs) >>> 252 >>> 253 from pycuda.driver import module_from_buffer >>> >>> /usr/local/lib/python2.7/dist-packages/pycuda-2014.1-py2.7-linux-x86_64.egg/pycuda/compiler.pyc >>> in compile(source, nvcc, options, keep, no_extern_c, arch, code, cache_dir, >>> include_dirs) >>> 239 options.append("-I"+i) >>> 240 >>> --> 241 return compile_plain(source, options, keep, nvcc, cache_dir) >>> 242 >>> 243 >>> >>> /usr/local/lib/python2.7/dist-packages/pycuda-2014.1-py2.7-linux-x86_64.egg/pycuda/compiler.pyc >>> in compile_plain(source, options, keep, nvcc, cache_dir) >>> 130 raise CompileError("nvcc compilation of %s failed" % >>> cu_file_path, >>> 131 cmdline, stdout=stdout.decode("utf-8", >>> "replace"), >>> --> 132 stderr=stderr.decode("utf-8", "replace")) >>> 133 >>> 134 if stdout or stderr: >>> >>> CompileError: nvcc compilation of /tmp/tmp5xdcrZ/kernel.cu failed >>> [command: nvcc --cubin -arch sm_30 >>> -I/usr/local/lib/python2.7/dist-packages/pycuda-2014.1-py2.7-linux-x86_64.egg/pycuda/cuda >>> kernel.cu] >>> [stderr: >>> kernel.cu(10): error: "#" not expected here >>> >>> kernel.cu(10): error: expected a ";" >>> >>> kernel.cu(12): error: identifier "A_T_BLOCK_STRIDE" is undefined >>> >>> 3 errors detected in the compilation of >>> "/tmp/tmpxft_00001e6b_00000000-6_kernel.cpp1.ii". >>> ] >>> >>> In [4]: >>> >>> >>> _______________________________________________ >>> PyCUDA mailing list >>> [email protected] >>> http://lists.tiker.net/listinfo/pycuda >>> >>> >> >
_______________________________________________ PyCUDA mailing list [email protected] http://lists.tiker.net/listinfo/pycuda
