OpenCL, float vs int,预期的性能提升

OpenCL, float vs uint, expected performance gain?

本文关键字:性能 float vs int OpenCL      更新时间:2023-10-16

在OpenCL内核中使用(u)int16优于float的预期性能增益是什么?如果有的话?我希望内存传输大致除以2,但是设备负载呢?

奇怪的是,我几乎找不到任何关于这个主题的资料或文件。(或者也许我的Google fu只是失败了…)

我正在研究图像处理(主要是过滤)。精度不是那么重要,实际上几个内核操作的结果被转换成一个char。我们缩小了几个可以接受使用较短数据类型的操作。所以我想知道这些操作是否可以通过使用精度不重要的较短数据来加速。

谢谢你的帮助。

gpu倾向于做浮点运算,而不是整型。例如,有些将为浮点操作提供额外的管道,并且将所有内容都变成整数只会降低GPU的吞吐量。数据复制可能不是您的瓶颈,使用16位整数将数量减半可能没有帮助。此外,在像英特尔或AMD这样的集成GPU上,你可以获得零复制行为。因此,对图像或缓冲区大小的影响是最小的(在某种程度上)。

另外,您可以查看16位浮点数支持。这让您获得了两个世界中最好的部分(一半的数据w/浮点数)。