自定义核#

cupy.ElementwiseKernel(in_params, ...[, ...])

用户定义的逐元素核函数。

cupy.ReductionKernel(unicode in_params, ...)

用户定义的规约核函数。

cupy.RawKernel(unicode code, unicode name, ...)

用户自定义核函数。

cupy.RawModule(unicode code=None, *, ...[, ...])

用户自定义模块。

cupy.fuse(*args, **kwargs)

融合函数的装饰器。

JIT 核函数定义#

支持的 Python 内置函数包括:range, len(), max(), min()

注意

如果需要循环展开,请使用 cupyx.jit.range() 代替内置的 range

cupyx.jit.rawkernel(*[, mode, device])

将 Python 函数编译为 CUDA 核函数的装饰器。

cupyx.jit.threadIdx

dim3 threadIdx

cupyx.jit.blockDim

dim3 blockDim

cupyx.jit.blockIdx

dim3 blockIdx

cupyx.jit.gridDim

dim3 gridDim

cupyx.jit.grid(ndim)

计算网格中的线程索引。

cupyx.jit.gridsize(ndim)

计算网格大小。

cupyx.jit.laneid()

返回调用线程的通道 ID,范围在 [0, jit.warpsize) 之间。

cupyx.jit.warpsize

返回一个 warp 中的线程数。

cupyx.jit.range(*args[, unroll])

支持循环展开的范围。

cupyx.jit.syncthreads()

调用 __syncthreads() 函数。

cupyx.jit.syncwarp(*[, mask])

调用 __syncwarp() 函数。

cupyx.jit.shfl_sync(mask, var, val_id, *[, ...])

调用 __shfl_sync 函数。

cupyx.jit.shfl_up_sync(mask, var, val_id, *)

调用 __shfl_up_sync 函数。

cupyx.jit.shfl_down_sync(mask, var, val_id, *)

调用 __shfl_down_sync 函数。

cupyx.jit.shfl_xor_sync(mask, var, val_id, *)

调用 __shfl_xor_sync 函数。

cupyx.jit.shared_memory(dtype, size[, alignment])

分配共享内存并将其作为一维数组返回。

cupyx.jit.atomic_add(array, index, value[, ...])

调用 atomicAdd 函数对 array[index] 进行原子操作。

cupyx.jit.atomic_sub(array, index, value[, ...])

调用 atomicSub 函数对 array[index] 进行原子操作。

cupyx.jit.atomic_exch(array, index, value[, ...])

调用 atomicExch 函数对 array[index] 进行原子操作。

cupyx.jit.atomic_min(array, index, value[, ...])

调用 atomicMin 函数对 array[index] 进行原子操作。

cupyx.jit.atomic_max(array, index, value[, ...])

调用 atomicMax 函数对 array[index] 进行原子操作。

cupyx.jit.atomic_inc(array, index, value[, ...])

调用 atomicInc 函数对 array[index] 进行原子操作。

cupyx.jit.atomic_dec(array, index, value[, ...])

调用 atomicDec 函数对 array[index] 进行原子操作。

cupyx.jit.atomic_cas(array, index, value[, ...])

调用 atomicCAS 函数对 array[index] 进行原子操作。

cupyx.jit.atomic_and(array, index, value[, ...])

调用 atomicAnd 函数对 array[index] 进行原子操作。

cupyx.jit.atomic_or(array, index, value[, ...])

调用 atomicOr 函数对 array[index] 进行原子操作。

cupyx.jit.atomic_xor(array, index, value[, ...])

调用 atomicXor 函数对 array[index] 进行原子操作。

cupyx.jit.cg.this_grid()

返回当前的网格组 (_GridGroup)。

cupyx.jit.cg.this_thread_block()

返回当前的线程块组 (_ThreadBlockGroup)。

cupyx.jit.cg.sync(group)

调用 cg::sync()

cupyx.jit.cg.memcpy_async(group, dst, ...[, ...])

调用 cg::memcpy_sync()

cupyx.jit.cg.wait(group)

调用 cg::wait()

cupyx.jit.cg.wait_prior(group)

调用 cg::wait_prior<N>()

cupyx.jit._interface._JitRawKernel(func, ...)

JIT CUDA 核函数对象。

核函数二进制文件记忆化#

cupy.memoize(bool for_each_device=False)

使函数能够为每个参数和设备记忆化结果。

cupy.clear_memo()

清除由 memoize 装饰的所有函数的记忆化结果。