我不确定 C++ AMP 有什么用。如果我已经对我的应用程序(在本例中为光线追踪器)进行了多线程处理以使用系统上的所有 n 个内核,我应该使用 C++ AMP还是实际上会造成更多瓶颈?(当它尝试多线程时,所有 CPU 内核都已 100% 使用,)
问问题
390 次
2 回答
6
C++ AMP 允许您在 GPU 上执行代码。您是否会获得性能取决于您的计算将如何利用硬件。您将有更多的内核可供使用,但您需要通过 PCIe 传输数据,因此您的计算量需要很大才能支付数据移动的初始成本。光线追踪器等数据并行问题是很好的匹配。
查看有关 C++ AMP 的介绍性文章以了解更多信息:http: //blogs.msdn.com/b/nativeconcurrency/archive/2012/08/30/learn-c-amp.aspx
或观看有关 C++ AMP 的介绍性演示:http: //channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-802T
于 2012-10-11T17:15:06.947 回答
1
当您想要计算每个元素或线程相互独立的大量数据时,AMP 非常适合。例如,如果您想计算一个粒子在 100M 粒子阵列中的位置,则 CPU 将花费数小时。但是在 GPU 上,每个粒子可以是一个线程,一个 GPU 一次可以执行数千个线程。与 8 核 CPU 相比,您一次只能执行 8 个线程。
于 2013-01-26T13:33:44.090 回答