I got pycuda working Vista x64 machine with python 2.6, but the platform_bits
method in tools.py is not working for me. It returns 32 on my 64 bit
platform, which is causing test_driver.py to fail.

The error I am getting is the following:
C:\Python26\lib\site-packages\pycuda-0.94beta-py2.6-win-amd64.egg\pycuda\tools.py:343:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _

dtype = dtype('uint64'), with_fp_tex_hack = False

    def dtype_to_ctype(dtype, with_fp_tex_hack=False):
        if dtype is None:
            raise ValueError("dtype may not be None")

        import numpy
        dtype = numpy.dtype(dtype)
        if dtype == numpy.int64 and platform_bits() == 64:
            return "long"
        elif dtype == numpy.uint64 and platform_bits() == 64:
            return "unsigned long"
        elif dtype == numpy.int32:
            return "int"
        elif dtype == numpy.uint32:
            return "unsigned int"
        elif dtype == numpy.int16:
            return "short int"
        elif dtype == numpy.uint16:
            return "short unsigned int"
        elif dtype == numpy.int8:
            return "signed char"
        elif dtype == numpy.uint8:
            return "unsigned char"
        elif dtype == numpy.float32:
            if with_fp_tex_hack:
                return "fp_tex_float"
            else:
                return "float"
        elif dtype == numpy.float64:
            if with_fp_tex_hack:
                return "fp_tex_double"
            else:
                return "double"
        else:
>           raise ValueError, "unable to map dtype '%s'" % dtype
E           ValueError: unable to map dtype 'uint64'

May I suggest an alternate implementation to this (platform_bits1):
Python 2.6.2 (r262:71605, Apr 14 2009, 22:46:50) [MSC v.1500 64 bit (AMD64)]
on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> def platform_bits():
...     from struct import calcsize
...     return calcsize('l') * 8
...
>>> print platform_bits()
32
>>> def platform_bits1():
...     return tuple.__itemsize__ * 8
...
>>> print platform_bits1()
64
-- 
View this message in context: 
http://n2.nabble.com/platform_bits%28%29-tp3424893p3424893.html
Sent from the PyCuda mailing list archive at Nabble.com.

_______________________________________________
PyCUDA mailing list
[email protected]
http://tiker.net/mailman/listinfo/pycuda_tiker.net

Reply via email to