为什么OpenCL1.0中存在字节可寻址存储限制?

为什么OpenCL1.0中存在字节可寻址存储限制?,opencl,Opencl,我对OpenCL非常陌生,在阅读中我看到:为了在小于32位的指针上执行写操作,必须包含以下指令: #pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable 我的问题是: 为什么会引入此限制?之所以存在此限制,是因为存在/曾经存在只支持32位内存写入的硬件(主要是GPU),这意味着32位压缩向量类型(例如char4)是写入小型类型的唯一方法。因此,该标准被设计为最低公分母,并强制规定了32位写入大小 然而,由于一些与OpenC

我对OpenCL非常陌生,在阅读中我看到:为了在小于32位的指针上执行写操作,必须包含以下指令:

#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
我的问题是:
为什么会引入此限制?

之所以存在此限制,是因为存在/曾经存在只支持32位内存写入的硬件(主要是GPU),这意味着32位压缩向量类型(例如char4)是写入小型类型的唯一方法。因此,该标准被设计为最低公分母,并强制规定了32位写入大小

然而,由于一些与OpenCL兼容的设备确实具有支持16位或8位大小写操作的内存控制器,因此添加了扩展以允许将小类型直接写入内存,而无需打包到vector contains中

相关问题