我想将两个图像上传到GPU内存,我感兴趣的是我能做多快?
事实上 - 将RAM中的两个位图与CPU进行比较,或者将它们上传到GPU并使用GPU并行性来实现它会更快吗?
答案 0 :(得分:2)
如果您运行CUDA设备带宽示例,您将获得上传速度的基准。
假设DDR3三通道1600MHz RAM,你将获得38 GB / s的内存带宽。
使用像GTX460这样的典型中端卡,你将获得84 GB / s的内存带宽。请注意,您必须在总线上跳跃,理论上是8GB / s,实际上是PCI-E2.0 x16链路的5.5。
请注意,kotlinski的答案并不完全正确。您可以进行并行比较,然后进行并行缩减,在这种情况下,更大的GPU设备带宽最终可以胜出。
我认为答案可能是:上传到GPU并进行一次比较。如果进行多次比较(例如,在GPU上保留和修改),则可能获得增益。
编辑:
多次比较是指您是否原位修改了GPU内存中的图像。因此,它值得进行另一次比较(缓存不会削减它),而不会导致另一个副本在整个总线上受到惩罚。
答案 1 :(得分:1)
由于内存访问是这里的瓶颈,因此在CPU中执行此操作的速度极快。让它并行运行不太可能给你任何东西,内存访问本质上是一个串行操作。
答案 2 :(得分:0)
这个问题的答案是值得商榷的,完全取决于您的系统配置。这意味着您必须自己完成基准测试。可能影响您情况的因素:
但是,我认为在一般情况下(例如,使用GB / s顺序的busspeeds),将图像上传到GPU并在那里进行差异比较会更快。