-4

我什么时候应该使用 C++ AMP(或者不应该使用它)?

AMP 的开销是多少?将数据复制到 GPU 内存并返回需要多长时间?当 AMP 开始降低性能时,最小数据量是多少?

4

1 回答 1

2

只要您不做太多,复制数据就不会造成太大的开销。偶尔复制一些大块数据是可以的。例如,游戏通常会为每一帧上的每个对象复制实例数据,如果过度,这降低性能,但通常没问题。值得注意的是,它们不会复制诸如 3D 几何之类的东西,那会毁了你。

通常,该用例用于对大量数据进行简单(最多认为是 FSM)计算,其中每个数据都被单独处理。

至于性能,嗯,配置文件是唯一可以确定的方法。GPU 是完全不同的野兽,最小数据大小实际上取决于手头的计算和数据传播。例如,当多个线程的分支方式不同时,GPU 并不真正喜欢它。

于 2012-10-19T12:44:12.443 回答