OpenCL:如何找出适合GPU的Image3D的最大尺寸

时间:2016-05-03 13:29:53

标签: c++ opencl

使用OpenCL时,可以通过调用

来检查设备上image3D的最大理论大小
  

CL_DEVICE_IMAGE3D_MAX_WIDTH
  CL_DEVICE_IMAGE3D_MAX_DEPTH
  CL_DEVICE_IMAGE3D_MAX_HEIGHT

但是例如我的GPU没有提供足够的内存来分配那个大小的3D RGBA图像。很明显,当我尝试推送这样的图像时,会发生OutOfResources错误。

我的问题:如果vector<float>包含尺寸为<2048的图片,我该如何检查它是否适合我的GPU?

我的问题的背景是,我想分割图像,以便部分处理它。

1 个答案:

答案 0 :(得分:2)

您可以使用CL_DEVICE_MAX_MEM_ALLOC_SIZE返回内存对象分配的最大大小(以字节为单位)。

虽然这并没有考虑到当前使用的内存,但您可以尝试通过跟踪您正在执行的分配并检查CL_DEVICE_GLOBAL_MEM_SIZE来自行完成。