如何评估 GPU 相对于 CPU 的处理能力?

如何评估 GPU 相对于 CPU 的处理能力?

假设我有一个程序,它执行大量浮点计算,但在我当前的硬件上运行速度慢得不切实际。为了尽可能减少运行时间,我想弄清楚在固定预算(我的情况是 3000-4000 美元左右)的情况下,投资 CPU 还是 GPU 更好。我知道要比较一个 CPU 和另一个 CPU,我可以得到一个很粗糙的通过将时钟频率乘以每个 CPU 的核心数并比较这些数字,可以了解相对处理速度。但是 GPU 呢?有没有办法根据 GPU 的规格快速计算出一个数字,告诉我大致相对于已知的 CPU,我可以期望它以多快的速度运行我的程序?

我知道实际处理速度在很大程度上取决于程序的构建方式以及 CPU/GPU 时钟速度以外的其他因素。为了回答这个问题,我忽略了其他因素,即我假设除浮点数运算之外的任何任务所花费的时间都可以忽略不计(因此它不受 I/O 限制或类似因素的影响),并且该程序是无限可并行化的(因此,给定任意数量的 CPU 或 GPU 核心,只要程序运行,它们都将得到最大容量利用)。

答案1

好吧,你可以尝试使用综合基准测试。它们会给你一些想法。例如,NVIDIA 的 CUDA 工具包包含一些在 CPU 和 GPU 上运行的程序,它可以用来比较在每个平台上执行它们所需的时间。

如果你只需要使用 GPU 数据表来执行此操作,你也可以这样做。例如,这里这是我的 GeForce 9500 GS 的页面。您可以在那里找到有关处理核心数量的信息。处理能力与 GPU 频率和核心数量成正比。有些卡甚至GFLOPS 数也是如此。有一份文档对每张卡提供了更统一的详细描述,但我现在找不到方法。也许它在 CUDA 工具包下载中?

还有计算能力级别,显示每张卡提供的功能,但如果我记得正确的话,它不会对计算速度产生直接影响,只会对可能使用的精度和指令集产生影响。

我不知道其他制造商的显卡的最新信息,但我希望至少有办法获取 AMD 和 Intel 的数据。

相关内容