本文整理汇总了Python中pyopencl.array.arange函数的典型用法代码示例。如果您正苦于以下问题:Python arange函数的具体用法?Python arange怎么用?Python arange使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了arange函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_fancy_indexing
def test_fancy_indexing(ctx_factory):
if _PYPY:
pytest.xfail("numpypy: multi value setting is not supported")
context = ctx_factory()
queue = cl.CommandQueue(context)
numpy_dest = np.zeros((4,), np.int32)
numpy_idx = np.arange(3, 0, -1, dtype=np.int32)
numpy_src = np.arange(8, 10, dtype=np.int32)
numpy_dest[numpy_idx] = numpy_src
cl_dest = cl_array.zeros(queue, (4,), np.int32)
cl_idx = cl_array.arange(queue, 3, 0, -1, dtype=np.int32)
cl_src = cl_array.arange(queue, 8, 10, dtype=np.int32)
cl_dest[cl_idx] = cl_src
assert np.all(numpy_dest == cl_dest.get())
cl_idx[1] = 3
cl_idx[2] = 2
numpy_idx[1] = 3
numpy_idx[2] = 2
numpy_dest[numpy_idx] = numpy_src
cl_dest[cl_idx] = cl_src
assert np.all(numpy_dest == cl_dest.get())
示例2: test_take
def test_take(ctx_getter):
context = ctx_getter()
queue = cl.CommandQueue(context)
idx = cl_array.arange(context, queue, 0, 200000, 2, dtype=numpy.uint32)
a = cl_array.arange(context, queue, 0, 600000, 3, dtype=numpy.float32)
result = cl_array.take(a, idx)
assert ((3*idx).get() == result.get()).all()
示例3: test_fmod
def test_fmod(ctx_factory):
context = ctx_factory()
queue = cl.CommandQueue(context)
for s in sizes:
a = cl_array.arange(queue, s, dtype=np.float32) / 10
a2 = cl_array.arange(queue, s, dtype=np.float32) / 45.2 + 0.1
b = clmath.fmod(a, a2)
a = a.get()
a2 = a2.get()
b = b.get()
for i in range(s):
assert math.fmod(a[i], a2[i]) == b[i]
示例4: test_atan2pi
def test_atan2pi(ctx_factory):
context = ctx_factory()
queue = cl.CommandQueue(context)
for s in sizes:
a = (cl_array.arange(queue, s, dtype=np.float32) - np.float32(s / 2)) / 100
a2 = (s / 2 - 1 - cl_array.arange(queue, s, dtype=np.float32)) / 100
b = clmath.atan2pi(a, a2)
a = a.get()
a2 = a2.get()
b = b.get()
for i in range(s):
assert abs(math.atan2(a[i], a2[i]) / math.pi - b[i]) < 1e-6
示例5: test_ldexp
def test_ldexp(ctx_factory):
context = ctx_factory()
queue = cl.CommandQueue(context)
for s in sizes:
a = cl_array.arange(queue, s, dtype=np.float32)
a2 = cl_array.arange(queue, s, dtype=np.float32) * 1e-3
b = clmath.ldexp(a, a2)
a = a.get()
a2 = a2.get()
b = b.get()
for i in range(s):
assert math.ldexp(a[i], int(a2[i])) == b[i]
示例6: test_arange
def test_arange(ctx_factory):
context = ctx_factory()
queue = cl.CommandQueue(context)
n = 5000
a = cl_array.arange(queue, n, dtype=np.float32)
assert (np.arange(n, dtype=np.float32) == a.get()).all()
示例7: setup_arrays
def setup_arrays(self, nrays, nsamples, cutoff):
prog_params = (nrays, nsamples, cutoff)
if prog_params in self.array_cache:
return self.array_cache[prog_params]
else:
arrays = ArraySet()
arrays.scratch = cla.empty(self.queue,
(nsamples, nrays),
dtype=np.float32,
allocator=self.memory_pool)
arrays.result = cla.empty(self.queue,
(nrays,),
dtype=np.int32,
allocator=self.memory_pool)
arrays.pre_cutoff = cla.empty(self.queue,
(nrays, cutoff),
dtype=np.float32,
allocator=self.memory_pool)
arrays.pre_cutoff_squared = cla.empty_like(arrays.pre_cutoff)
arrays.idx = cla.arange(self.queue, 0, cutoff * nrays, 1,
dtype=np.int32,
allocator=self.memory_pool)
self.array_cache[prog_params] = arrays
return arrays
示例8: test
def test(ctx_factory):
context = ctx_factory()
queue = cl.CommandQueue(context)
gpu_func = getattr(clmath, name)
cpu_func = getattr(np, numpy_func_names.get(name, name))
if has_double_support(context.devices[0]):
if use_complex:
dtypes = [np.float32, np.float64, np.complex64, np.complex128]
else:
dtypes = [np.float32, np.float64]
else:
if use_complex:
dtypes = [np.float32, np.complex64]
else:
dtypes = [np.float32]
for s in sizes:
for dtype in dtypes:
dtype = np.dtype(dtype)
args = cl_array.arange(queue, a, b, (b - a) / s, dtype=dtype)
if dtype.kind == "c":
args = args + dtype.type(1j) * args
gpu_results = gpu_func(args).get()
cpu_results = cpu_func(args.get())
my_threshold = threshold
if dtype.kind == "c" and isinstance(use_complex, float):
my_threshold = use_complex
max_err = np.max(np.abs(cpu_results - gpu_results))
assert (max_err <= my_threshold).all(), (max_err, name, dtype)
示例9: test_bitonic_argsort
def test_bitonic_argsort(ctx_factory, size, dtype):
ctx = cl.create_some_context()
queue = cl.CommandQueue(ctx)
dev = ctx.devices[0]
if (dev.platform.name == "Apple" and dev.type & cl.device_type.CPU):
pytest.xfail("Bitonic sort won't work on Apple CPU: no workgroup "
"parallelism")
if (dev.platform.name == "Portable Computing Language"
and dtype == np.float64):
pytest.xfail("Double precision bitonic sort doesn't work on POCL")
import pyopencl.clrandom as clrandom
from pyopencl.bitonic_sort import BitonicSort
index = cl_array.arange(queue, 0, size, 1, dtype=np.int32)
m = clrandom.rand(queue, (size,), dtype, luxury=None, a=0, b=239432234)
sorterm = BitonicSort(ctx)
ms, evt = sorterm(m.copy(), idx=index, axis=0)
assert np.array_equal(np.sort(m.get()), ms.get())
# may be False because of identical values in array
# assert np.array_equal(np.argsort(m.get()), index.get())
# Check values by indices
assert np.array_equal(m.get()[np.argsort(m.get())], m.get()[index.get()])
示例10: test_arange
def test_arange(ctx_getter):
context = ctx_getter()
queue = cl.CommandQueue(context)
n = 5000
a = cl_array.arange(context, queue, n, dtype=numpy.float32)
assert (numpy.arange(n, dtype=numpy.float32) == a.get()).all()
示例11: test_mem_pool_with_arrays
def test_mem_pool_with_arrays(ctx_factory):
context = ctx_factory()
queue = cl.CommandQueue(context)
mem_pool = cl_tools.MemoryPool(cl_tools.ImmediateAllocator(queue))
a_dev = cl_array.arange(queue, 2000, dtype=np.float32, allocator=mem_pool)
b_dev = cl_array.to_device(queue, np.arange(2000), allocator=mem_pool) + 4000
assert a_dev.allocator is mem_pool
assert b_dev.allocator is mem_pool
示例12: init_indices_buffers
def init_indices_buffers(self, image_width, image_height, kernels):
mf = cl.mem_flags
self.indices_host_buffer = numpy.arange(self.array_size, dtype=numpy.int32)
self.indices_gpu_buffer = cl_array.arange(self.queue, 0, self.array_size, dtype=numpy.int32)
self.sorted_indices_gpu_buffer = cl_array.zeros_like(self.indices_gpu_buffer)
self.indices_host_back_buffers = {}
for cell in kernels.keys():
self.indices_host_back_buffers[cell] = {}
for centre in kernels[cell].keys():
self.indices_host_back_buffers[cell][centre] = numpy.zeros_like(self.source_host_buffer,
dtype=numpy.int32)
示例13: linspace
def linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=float_):
#TODO: create native function
if num<2: return array([start])
if endpoint:
mnum = num-1
else:
mnum = num
diff = (stop - start) / mnum
if endpoint:
stop = stop + diff
res = clarray.arange(queue, start, stop, diff, dtype=float_)[:num]
res.__class__ = myclArray
res.reinit()
return res
示例14: test_multi_put
def test_multi_put(ctx_factory):
if _PYPY:
pytest.xfail("numpypy: multi value setting is not supported")
context = ctx_factory()
queue = cl.CommandQueue(context)
cl_arrays = [
cl_array.arange(queue, 0, 3, dtype=np.float32)
for i in range(1, 10)
]
idx = cl_array.arange(queue, 0, 6, dtype=np.int32)
out_arrays = [
cl_array.zeros(queue, (10,), np.float32)
for i in range(9)
]
out_compare = [np.zeros((10,), np.float32) for i in range(9)]
for i, ary in enumerate(out_compare):
ary[idx.get()] = np.arange(0, 3, dtype=np.float32)
cl_array.multi_put(cl_arrays, idx, out=out_arrays)
assert np.all(np.all(out_compare[i] == out_arrays[i].get()) for i in range(9))
示例15: build_scratch
def build_scratch(self, imshape):
self.scratch = []
self.index_scratch = []
l = np.prod(imshape)
self.array_indices = cla.arange(self.queue, 0, l, 1, dtype=np.int32)
if l % self.runlen != 0:
l += l % self.runlen
while l > 1:
l /= self.runlen
self.scratch.append(cla.empty(self.queue, (l,), np.float32))
self.index_scratch.append(cla.empty(self.queue, (l,), np.int32))
self.imshape = imshape