我刚刚开始学习 C++ AMP,并且已经获得了一些使用 VS 2012 RC 构建的示例,但我发现 GPU 的性能比 CPU 慢。例如,Kate Gregory 的例子:http: //ampbook.codeplex.com/releases/view/90595(与她即将出版的书有关http://www.gregcons.com/cppamp/)。她在我观看的一次讲座中演示了它们,她通过使用笔记本电脑的 GPU(我相信她说它是 6650)与 CPU(不确定她有什么 CPU)相比,在第 4 章示例中获得了约 5 倍的性能提升。我试过自己测试这个例子,并在几个系统配置上(如下)我总是发现 CPU 更快。我还测试了其他示例并发现相同。难道我做错了什么?性能低于预期是否有原因?有没有人有一个肯定会显示GPU更快的例子?
- 系统 1:带有板载显卡的 Intel i7 2600K(我希望这会更慢)
- 系统 2:Intel i7 2630QM 与 Intel HD 可与 AMD 6770 切换(我让它在性能模式下运行,所以它应该使用 6770)
- 系统 3:Intel i5 750 和 2xCrossfire AMD HD 5850
结果示例:第 4 章项目结果为 1.15 毫秒 CPU、2.57 毫秒 GPU、2.55 毫秒 GPU 平铺。
编辑:
Doh,我想我刚刚找到了原因——她在讲座中使用的矩阵大小的值不同。网站上的示例使用 M=N=W=64。如果我像她在讲座中那样使用 64、512 和 256,那么我的性能会相应提高约 5 倍。