neurokernel.tools.gpu.set_by_inds_from_inds¶
-
neurokernel.tools.gpu.
set_by_inds_from_inds
(dest_gpu, ind_dest, src_gpu, ind_src)[source]¶ Set values in a GPUArray by index from indexed values in another GPUArray.
Parameters: - dest_gpu (pycuda.gpuarray.GPUArray) – GPUArray instance to modify.
- ind_dest (pycuda.gpuarray.GPUArray or numpy.ndarray) – 1D array of element indices in dest_gpu to set. Must have an integer dtype.
- src_gpu (pycuda.gpuarray.GPUArray) – GPUArray instance from which to set values.
- ind_src (pycuda.gpuarray.GPUArray or numpy.ndarray) – 1D array of element indices in src_gpu to copy. Must have an integer dtype and be the same length as ind_dest.
Examples
>>> import pycuda.gpuarray as gpuarray >>> import pycuda.autoinit >>> import numpy as np >>> from nk.tools.gpu import set_by_inds_from_inds >>> dest_gpu = gpuarray.to_gpu(np.zeros(5, dtype=np.float32)) >>> ind_dest = gpuarray.to_gpu(np.array([0, 2, 4])) >>> src_gpu = gpuarray.to_gpu(np.arange(5, 10, dtype=np.float32)) >>> ind_src = gpuarray.to_gpu(np.array([2, 3, 4])) >>> gpu.set_by_inds_from_inds(dest_gpu, ind_dest, src_gpu, ind_src) >>> assert np.allclose(dest_gpu.get(), np.array([7, 0, 8, 0, 9], dtype=np.float32)) True