从pyopencl.Image对象派生通道类型

时间:2016-12-09 13:12:30

标签: opencl gpgpu pyopencl

我通过以下方式创建了一个pyopencl.Image对象:

import pyopencl as cl
import numpy as np
ctx = cl.create_some_context()
image = cl.image_from_array(ctx, np.ones((16, 16), dtype=np.uint8))

如何获取图像频道类型信息(此处为cl.channel_type.UNSIGNED_INT8)?我想实现一个通用下载函数,它返回一个给定Image的numpy数组。

我尝试了两种方法:

使用Image.element_size给出了单个元素的字节大小,但是我不能将元素大小映射到数据类型(例如,float32和int32具有相同的元素大小)。

Image.format返回cdata 'struct _cl_image_format &'。查询字段image_channel_data_typeimage_channel_order中的任何一个都会返回0。

1 个答案:

答案 0 :(得分:0)

我通过PyOpenCl邮件列表收到answer

事实证明,返回Image.format的功能不正确。这已在github repo中修复。