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