cupyx.jit._interface._JitRawKernel#

class cupyx.jit._interface._JitRawKernel(func, mode, device)[源代码][源代码]#

JIT CUDA 内核对象。

装饰器 :func:cupyx.jit.rawkernel 将目标函数转换为此类的对象。此类不打算由用户实例化。

方法

__call__(grid, block, args, shared_mem=0, stream=None)[源代码][源代码]#

调用CUDA内核。

编译将会延迟到第一次函数调用时进行。CuPy 的 JIT 编译器会在调用时推断参数的类型,并将编译后的内核缓存起来,以加速后续的调用。

参数:
  • grid (tuple of int) – 网格的块大小。

  • block (tuple of int) – 每个线程块的维度。

  • args (tuple) – 内核的参数。所有元素的类型必须是 boolintfloatcomplex、NumPy 标量或 cupy.ndarray

  • shared_mem (int) – 每个线程块的动态共享内存大小(以字节为单位)。

  • stream (cupy.cuda.Stream) – CUDA 流。

__getitem__(grid_and_block)[源代码][源代码]#

Numba 风格的内核调用。

__eq__(value, /)#

返回 self==value。

__ne__(value, /)#

返回 self!=value。

__lt__(value, /)#

返回 self<value。

__le__(value, /)#

返回 self<=value。

__gt__(value, /)#

返回 self>value。

__ge__(value, /)#

返回 self>=value。

属性

cached_code#

返回 next(iter(self.cached_codes.values()))

此属性方法用于调试目的。返回值不保证保持向后兼容性。

cached_codes#

返回一个字典,其中输入类型作为键,代码作为值。

此属性方法用于调试目的。返回值不保证保持向后兼容性。