【发布时间】:2012-10-06 20:29:07
【问题描述】:
我目前正在开发一个需要存储和处理大量变量的应用程序(浮点数约为 4gb)
由于单个变量的精度不太重要(我知道它们是有界的),我发现我可以使用 OpenCL 的一半而不是浮点数,因为那样会真正减少内存量。
我的问题是双重的。
使用 half 代替 float 是否会影响性能(我会为浮点操作构建图像显卡)
在计算中混合浮点数和半数会影响性能吗? (即浮点乘以一半。)
真诚地, Andreas Falkenstrøm Mieritz
【问题讨论】:
-
我相信答案非常依赖于硬件。所以你应该衡量和基准。
-
绝对是基准测试,因为它绝对是情境性的。通常情况下
half胜过float——如果有的话——与内存带宽和缓存效率有关。大多数硬件无法比float更快地计算half结果;他们只是更快地四处走动。 -
一个经验法则是,在将内存传输到 GPGPU 时一半获胜,而当需要在着色器中进行类型转换时,一半获胜。我不认为从浮动到一半时计算单元的数量增加了......