3

在阅读一些与 GPU 计算相关的论文时,我一直在理解这两个术语GPU Context,下面的GPU 硬件通道是对它们的简要提及,但我无法理解它们的含义,

命令:GPU 使用特定于架构的命令进行操作。每个GPU 上下文都分配有一个 FIFO 队列,CPU 上运行的程序向该队列提交命令。GPU 上的计算和数据传输只有在 GPU 本身调度相应的命令时才会触发。

通道:每个GPU 上下文都分配有一个GPU 硬件通道,在该通道中管理命令调度。Fermi 不允许多个通道同时访问同一个 GPU 功能单元,而是允许它们共存并在硬件中自动切换。

所以对此有一个清晰而简单的解释。

4

1 回答 1

10

此处描述了 GPU 上下文。它表示执行某些任务(例如 CUDA 计算、图形、H.264 编码等)所需要和实例化的所有状态(数据、变量、条件等)。CUDA 上下文被实例化以在 GPU 上执行 CUDA 计算活动,或者由 CUDA 运行时 API 隐式执行,或者由 CUDA 驱动程序 API 显式执行。

命令只是一组数据,以及要在该数据上执行的指令。例如,可以向 GPU 发出命令以启动内核,或将图形窗口从桌面上的一个位置移动到另一个位置。

通道代表主机 (CPU) 和 GPU 之间的通信路径。在现代 GPU 中,这利用了 PCI Express,并表示主机和设备中的状态和缓冲区,通过 PCI express 交换,向 GPU 发出命令并向 GPU 提供其他数据,以及通知 CPU GPU 活动。

在大多数情况下,使用 CUDA 运行时 API,没有必要熟悉这些概念,因为它们都被抽象(隐藏)在 CUDA 运行时 API 之下。

于 2014-04-15T15:19:46.627 回答