#!python 
import pycuda.autoinit
import pycuda.gpuarray as gpuarray
import pycuda.driver as cuda
import numpy

free_bytes, total_bytes = cuda.mem_get_info()
exp = 10
while True:
    fill_floats = free_bytes / 4 - (1<<exp)
    try:
        ary = gpuarray.empty((fill_floats), dtype=numpy.float32)
        break
    except MemoryError:
        pass

    exp += 1

ary.fill(float("nan"))

print "filled %d out of %d bytes with NaNs" % (fill_floats*4, free_bytes)