要使 GPU 完全由 CPU 驱动,需要什么?
比较他们的失败就足够了吗?
例如,如果我能设法将一个非常旧的(奔腾 3)CPU 与 Nvidia-Fermi GPU 之一结合起来,它将无法每秒向 GPU 提供数据。当需要 OpenCL 或一些类似工作时,将 CPU 精确地适配到 GPU 的标准是什么?
当然,RAM 和 BUS 的选择方式也类似,但具体如何选择呢?
假设每个 GPU 核心每次迭代都会计算 100 次平方和除法以及加法。
谢谢。
编辑:使用 opencl 多年后,似乎它主要依赖于算法,然后是通信优化(读/写或映射/取消映射)和 gpu 峰值计算值及其在同一时间片执行读取+写入+计算的能力。硬件只是将这些参数(其中那些可以成倍改变性能的参数)的性能水平乘以几倍。
答案1
作为卢卡斯·考夫曼指出,这取决于您的应用程序。
如果您需要从硬盘向 GPU 提供大量数据,而无需在 CPU 上进行任何预处理/后处理,那么 CPU 几乎无关紧要。如果在 GPU 上处理数据之前/之后/期间需要大量 CPU 处理,那么 CPU 可能会成为限制因素。
几条经验法则:
您的 CPU 至少应有
N+1
核心,其中N
是 GPU 的数量。您的 RAM 至少应与所有 GPU 的总和一样多。
您的 PCI-Express 总线应为 GPU 支持的最新版本(请注意,在某些主板上,例如有 2 个 PCI-Express 插槽,每个插槽可能都以一定
x16
速度运行,但一起使用时,每个插槽的速度会受到限制x8
)。毕竟,PCI-Express 是 GPU 最常见的瓶颈。如果您需要从机顶盒输出视频,请考虑购买一些便宜的卡以专门用于此目的。为避免驱动程序出现任何问题,请坚持使用与您的数字运算卡相同的供应商。
答案2
没有一个单一的答案,其中涉及很多因素,因为提供信息还取决于手头的任务。
但简而言之,最好是具有高时钟频率的多个核心。