OpenCL, float vs int,预期的性能提升
OpenCL, float vs uint, expected performance gain?
在OpenCL内核中使用(u)int16优于float的预期性能增益是什么?如果有的话?我希望内存传输大致除以2,但是设备负载呢?
奇怪的是,我几乎找不到任何关于这个主题的资料或文件。(或者也许我的Google fu只是失败了…)
我正在研究图像处理(主要是过滤)。精度不是那么重要,实际上几个内核操作的结果被转换成一个char。我们缩小了几个可以接受使用较短数据类型的操作。所以我想知道这些操作是否可以通过使用精度不重要的较短数据来加速。
谢谢你的帮助。
gpu倾向于做浮点运算,而不是整型。例如,有些将为浮点操作提供额外的管道,并且将所有内容都变成整数只会降低GPU的吞吐量。数据复制可能不是您的瓶颈,使用16位整数将数量减半可能没有帮助。此外,在像英特尔或AMD这样的集成GPU上,你可以获得零复制行为。因此,对图像或缓冲区大小的影响是最小的(在某种程度上)。
另外,您可以查看16位浮点数支持。这让您获得了两个世界中最好的部分(一半的数据w/浮点数)。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- OpenMP阵列性能较差
- 递归列出所有目录中的C++与Python与Ruby的性能
- 大小相等但成员数量不同的结构之间的性能差异
- 为什么constexpr的性能比正常表达式差
- 在类中使用随机生成器时出现性能问题
- 在main()之外初始化std::vector会导致性能下降(多线程)
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- 没有从阵列<float>到阵列<int>的可行转换
- 海湾合作委员会 ARM 性能下降
- GCC 和 Clang 代码性能的巨大差异
- 在容量内调整矢量大小时的性能影响
- 数组下标的类型"float*[float]"无效
- 了解算法的性能差异(如果以不同的编程语言实现)
- 未达到的情况会影响开关外壳性能
- QStringList vs list<shared_ptr<QString>> 性能比较C++
- 是否总是可以将使用递归编写的程序重写为不使用递归的程序C++,性能观点是什么?
- 为什么__m256而不是'float'提供超过 x8 的性能?
- 将变量从double改为float会获得多少性能增益
- OpenCL, float vs int,预期的性能提升