Multithreading Nvidias GPU和CPU中线程的差异

Multithreading Nvidias GPU和CPU中线程的差异,multithreading,cuda,gpu,nvidia,gpgpu,Multithreading,Cuda,Gpu,Nvidia,Gpgpu,我试图理解Nividia GPU和普通(多线程)CPU使用的线程技术之间的区别。特别是我的两个问题是: 系统的哪个部分负责线程调度,它们是根据哪些方面进行调度的 线程是否同步处理 CUDA内核和CPU内核实际上是完全不同的东西-名称更像是一种营销东西 负责线程调度是什么意思?它主要包括软件和硬件。例如,纯CPU与实际的线程调度几乎没有关系,但提供了必要的功能来实现作为操作系统一部分的线程调度程序。因此,调度参数由软件定义。因此,您应该将您的问题应用于特定的操作系统 CPU提供的一件事就是所谓的

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

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

  • 线程是否同步处理


CUDA内核和CPU内核实际上是完全不同的东西-名称更像是一种营销东西

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

CPU提供的一件事就是所谓的硬件线程。每个硬件线程允许一个软件线程的“并行”执行。(注意:对于超线程,执行实际上不是并行的,而是交错的)。调度程序在这些硬件线程上分配所有正在运行的线程

这基本上是一个系统

图形卡上的调度要复杂得多。简言之: 您有数千个CUDA内核,但与CPU不同的是,您无法为每个内核分配唯一的应用程序。CUDA内核按组组织(称为WARP),同一组中的所有CUDA内核同时执行同一线程

这叫做