我知道,大多数现代GPU尽管是为浮点设计的,但如今在整数性能上或多或少都具有同等性能,但有一些警告,例如缺少融合的乘法加法。我不确定这如何适用于班次操作。我正在GPU上进行Marching Cubes,首先为每个表面多维数据集写一个32位打包位置,然后在以后的传递中将其解压缩到该多维数据集中的实际顶点,例如:
br />
我只是想知道现在这些着色器单元中是否装有桶形移位器?我是在这里做2个班次还是30个班次?

编辑>>
我是个白痴...谢谢大家的回答,很有用,但我一直在努力都错了我应该只使用RGB10_A2UI纹理格式,然后使用单个图像加载/存储指令打包/拆包,而不是自己搞乱位。

RE_EDIT >>或不...此方法显然适用于红色框,但不适用于绿色框,因此又回到了移位。

评论

在单精度浮点中使用24位移位器来对齐尾数,因此编译器可能会生成一些移位器,但我认为您不会看到30。

#1 楼

是的(nVIDIA Maxwell具有FMA 32b吞吐量的50%)。

请参见
https://docs.nvidia.com/cuda/cuda-c-programming-guide/index。 html#arithmetic-instructions