cl_image_format.image_channel_data_type的CL_UNORM_INT8的含义以及与其他数据类型的区别

Haw*_*ong 4 gpgpu opencl

大家!我不太清楚CL_UNORM_INT8的含义,它是cl_image_format.image_channel_data_type的可用值之一;这种类型有什么具体含义,与CL_UNSIGNED_INT8有什么区别?

jpr*_*ice 6

就存储而言,这些类型是相同的。在这两种情况下,每个像素通道值都将存储为8位整数,范围在0-255之间。从内核读取/写入映像时会有所不同。

对于CL_UNSIGNED_INT8类型,您将使用read_imageuiwrite_imageui功能访问图像。这些函数将返回(或接受)一个无符号整数,其值与存储类型相同。

对于CL_UNORM_INT8类型,您将使用read_imagefwrite_imagef功能访问图像。这些函数将返回(或接受)范围为0.0f- 的标准化浮点值1.0f。一些设备(例如大多数GPU)具有对纹理值进行标准化的硬件支持,因此整数和标准化浮点值之间的转换将非常有效。