OpenCL类型映射#

数量类型#

为了便于使用,一个 pyopencl.cltypes 模块提供了从OpenCL类型名称到其等效项的方便映射 numpy 类型。这使您不必再回头参考OpenCL规范来查看 cl_long 是64位无符号整数。请按如下方式使用该模块:

>>> import numpy as np
>>> import pyopencl as cl
>>> import pyopencl.cltypes
>>> cl_uint = cl.cltypes.uint(42)   # maps to numpy.uint32
>>> cl_long = cl.cltypes.long(1235) # maps to numpy.int64
>>> floats = np.empty((128,), dtype=cl.cltypes.float) # array of numpy.float32

备注

OpenCL类型 bool 没有对应的 numpy 这里定义的类型,因为OpenCL没有为该类型指定内存中的表示形式(甚至存储大小)。

向量类型#

在同一个包中还提供了相应的矢量类型,使您可以轻松地创建 numpy 具有适当内存布局的数组。

>>> import numpy as np
>>> array_of_float16 = np.empty((128,), dtype=cl.cltypes.float16) # array of float16