其他文章/不再维护

科学计算任务CPU并行和GPU并行的选择

如果科学计算任务可以分解成多个小任务,是选择 CPU 并行还是 GPU 并行呢?本篇大概讨论一下,做个记录,仅供参考。

1. 从单任务的运行时间来考虑

通常来说,一个高性能 CPU 核心的性能可以达到 10 ~ 100 倍于 GPU 的单个核心。如果单个任务的运行时间超过了一天时间(24 小时),那么即使总任务是可以分解成多个小任务并行,使用 GPU 并行时,运行时间也是会达到 10 ~ 100 天,这个时间长度是比较难接受的。在这种情况下,建议仍然是使用 CPU 并行,不需要对代码做比较复杂的修改。CPU 并行的数量可根据现有的资源来选择,例如本地电脑 12 核 CPU 并行或超算 96 核 CPU 并行等。

2. 从总任务的运行时间来考虑

一个 GPU 通常有 2000 左右个核心。如果总任务可以分解成较多的小任务,为了方便讨论,这里把小任务的数量设置为 2000 个,那么 GPU 并行的运行速度大概是单个 CPU 的 20 ~ 200(2000/100 ~ 2000/10)倍,也就是 20 ~ 200 核 CPU 大概和一个有 2000 个核心的 GPU 速度相近。在这种情况下,可以考虑使用 GPU 并行。当然,这种情况直接使用 CPU 并行也是可以的,但一般来说,GPU 并行的计算成本可能会更低些。另外,如果任务只能分解成几十或者几百个小任务,那么仍然还是建议使用 CPU 并行。

总结:

  • 在科学计算中,如果单任务的运行时间比较长(超过 24 小时),或者总任务无法分解成较多的小任务(并行程度小于 2000),那么仍然考虑使用 CPU 并行。
  • 在科学计算中,如果单任务的运行时间比较短(小于24 小时),并且总任务可以分解成较多的小任务(并行程度超过 2000),那么可以考虑使用 GPU 并行,成本会更低一些。这种计算场景通常在图像处理、视频处理、机器学习等方向上会出现比较多。
  • 总的来说,任务的并行程度是选择 CPU/GPU 并行的关键。当并行数量可以达到成千上万,那么 GPU 并行是更好的选择。
112 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code