我什么时候应该使用C ++ AMP

时间:2012-10-19 12:33:54

标签: c++ performance c++-amp

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

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

1 个答案:

答案 0 :(得分:2)

只要你没有做太多,复制数据就不是那么大的开销。偶尔复制一些大块数据很好。例如,游戏通常会复制每个帧上每个对象的实例数据,如果过度,这个可以杀死性能,但通常很好。值得注意的是,他们不会复制像3D几何体这样的东西,这会摧毁你。

用例通常是针对大量数据的简单(最多想想FSM)计算,其中每个数据都是单独处理的。

至于表现,嗯,个人资料是唯一可靠的方法。 GPU是完全不同的野兽,最小数据大小实际上取决于手头的计算和数据传播。例如,当多个线程不以相同的方式分支时,GPU不太喜欢它。