On 6/27/2011 8:56 AM, Andreas Kloeckner wrote:
Hi all,
I've just released PyCUDA version 2011.1. This is, once again, a rather
big release. A detailed list of changes is below. In the same spirit as
PyOpenCL (whose 2011.1 release happened yesterday), I'll try to move to
smaller, more frequent releases in the future.
Have fun, and let me know if there are any issues.
Andreas
Hello,
I noticed two problems on Windows:
1) PyCUDA will not work at all if the "HOME" environment variable is not
defined, which is the case on many Windows systems. Maybe it's better to
use the "USERNAME" variable if possible (in line 155 of compiler.py)
2) One test fails (see output below) because
`numpy.random.random_integers(0, (1 << 31) - 1, 1000)` does not work on
Windows. With `(1 << 31) - 2` all tests pass (line 492 in curandom.py).
Christoph
pycuda-2011.1\test>python27-x64 test_gpuarray.py
============================= test session starts
=============================
platform win32 -- Python 2.7.2 -- pytest-2.0.3
collected 41 items
test_gpuarray.py ............F............................
================================== FAILURES
===================================
______________________ TestGPUArray.test_curand_wrappers
______________________
def f(*args, **kwargs):
import pycuda.driver
# appears to be idempotent, i.e. no harm in calling it more
than once
pycuda.driver.init()
ctx = make_default_context()
try:
assert isinstance(ctx.get_device().name(), str)
assert isinstance(ctx.get_device().compute_capability(), tuple)
assert isinstance(ctx.get_device().get_attributes(), dict)
inner_f(*args, **kwargs)
X:\Python27-x64\lib\site-packages\pycuda\tools.py:553:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
self = <test_gpuarray.TestGPUArray instance at 0x00000000080E5D08>
@mark_cuda_test
def test_curand_wrappers(self):
from pycuda.curandom import get_curand_version
if get_curand_version() is None:
from pytest import skip
skip("curand not installed")
from pycuda.curandom import (
XORWOWRandomNumberGenerator,
Sobol32RandomNumberGenerator)
if has_double_support():
dtypes = [np.float32, np.float64]
else:
dtypes = [np.float32]
for gen_type in [
XORWOWRandomNumberGenerator,
#Sobol32RandomNumberGenerator
]:
gen = gen_type()
test_gpuarray.py:276:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
self = <pycuda.curandom.XORWOWRandomNumberGenerator object at
0x0000000008159668
seed_getter = None, offset = 0
def __init__(self, seed_getter=None, offset=0):
"""
:arg seed_getter: a function that, given an integer
count, will yield an `int32`
:class:`GPUArray` of seeds.
"""
super(XORWOWRandomNumberGenerator, self).__init__(
'curandStateXORWOW', xorwow_random_source)
if seed_getter is None:
seed = array.to_gpu(
np.asarray(
np.random.random_integers(
0, (1 << 31) - 1, self.generators_per_block),
X:\Python27-x64\lib\site-packages\pycuda\curandom.py:492:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
???
mtrand.pyx:1177:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
???
E OverflowError: Python int too large to convert to C long
mtrand.pyx:871: OverflowError
===================== 1 failed, 40 passed in 4.35 seconds
=====================
_______________________________________________
PyCUDA mailing list
[email protected]
http://lists.tiker.net/listinfo/pycuda