【问题标题】:Differences beteween Threading in Nvidias GPUs and CPUsNvidia 的 GPU 和 CPU 中的线程之间的差异
【发布时间】:2018-12-16 12:14:04
【问题描述】:

我试图了解 Nividia GPU 和普通(多线程)CPU 使用的线程技术之间的区别。特别是我的两个问题是:

  • 系统的哪个部分对线程调度负责,它们是根据哪些方面调度的?

  • 线程是否同步处理?

【问题讨论】:

    标签: multithreading cuda gpu nvidia gpgpu


    【解决方案1】:

    CUDA 内核和 CPU 内核从字面上看是完全不同的东西——名称更多的是一种营销方式;

    负责线程调度是什么意思?它主要是软件和硬件。例如,纯 CPU 与实际的线程调度几乎没有关系,但提供了将线程调度器实现为操作系统一部分的必要功能。所以调度参数是由软件定义的。因此,您应该针对特定的操作系统提出您的问题。

    CPU 提供的一件事就是所谓的硬件线程。每个硬件线程允许一个软件线程的“并行”执行。 (注意:使用超线程,执行并不是真正的并行,更多的是交错)。调度程序将所有正在运行的线程分布在这些硬件线程上。

    这基本上是一个MIMD-System。

    显卡上的调度要复杂得多。简而言之: 您有数千个 CUDA 内核 - 但与 CPU 相比,您无法为每个内核分配唯一的应用程序。 CUDA 核心被组织成组(所谓的 warp),同一组内的所有 CUDA 核心同时执行相同的线程。

    这叫SIMT

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-13
      • 1970-01-01
      • 2017-08-06
      • 2021-07-09
      • 1970-01-01
      • 2021-12-29
      • 2016-12-03
      • 2013-12-27
      相关资源
      最近更新 更多