2

我想感受一下开普勒的架构,但这对我来说没有意义。

如果一个 warp 是 32 个线程,其中 4 个被调度/执行,这意味着 128 个内核正在使用,64 个处于空闲状态。在白皮书中,它谈到了独立指令,那么 64 个内核是为这些指令保留的吗?

如果是这样,有人可以给我一个例子,说明何时需要独立指令?

4

1 回答 1

3

Kepler 中的每个 SM 都有 192 个 (SP) 内核和 4 个 warp 调度器。每个 warp 调度程序都能够进行双重发布,这意味着在某些情况下,它实际上可以在单个发布槽中从给定的线程块(实际上是针对特定的 warp)发出 2 条指令。

其中一种情况是指令应该是独立的,粗略地说,这意味着没有一条指令依赖于另一条指令的输出。

使用 4 个 warp 调度程序,每个都可能执行双重问题,理论上可以启动多达 8 个 warp 指令的工作。这至少在理论上足以让 192 (SP) 核心保持忙碌。

除了通常称为“核心”的 SP 单元之外,SM 还具有执行单元,因此实际的指令组合将确定在任何给定的发布槽中调度哪些执行单元。

您可以在GK110 白皮书中获得更详细的说明。

于 2014-09-28T05:12:45.980 回答