【问题标题】:Are GPU Kepler CC3.0 processors not only pipelined architecture, but also superscalar? [closed]GPU Kepler CC3.0 处理器不仅是流水线架构,还是超标量? [关闭]
【发布时间】:2015-03-17 22:06:45
【问题描述】:

在 CUDA 6.5 的文档中写道:http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#ixzz3PIXMTktb

5.2.3。多处理器级别

...

  • 8L 用于计算能力 3.x 的设备,因为多处理器问题 一个时钟周期内每个 warp 的一对指令,用于四个 warp 一个时间,如 Compute Capability 3.x 中所述。

这是否意味着 GPU Kepler CC3.0 处理器不仅是流水线架构,而且是超标量?

  1. 流水线 - 这两个序列并行执行(一次不同的操作):

    • 加载 [addr1] -> 添加 -> 存储 [addr1] -> NOP
    • NOP -> 加载 [addr2] -> 添加 -> 存储 [addr2]
  2. 超标量 - 这两个序列并行执行(一次相同的操作):

    • 加载 [reg1] -> 添加 -> 存储 [reg1]
    • 加载 [reg2] -> 添加 -> 存储 [reg2]

【问题讨论】:

    标签: cuda gpgpu nvidia gpu kepler


    【解决方案1】:

    是的,Kepler 中的 warp 调度程序可以在每个时钟调度两条指令,只要:

    1. 指令是独立的
    2. 指令来自同一个warp
    3. SM 中有足够的执行资源用于两条指令

    如果这符合您对超标量的定义,那么它就是超标量。

    关于流水线,我对流水线有不同的看法。 Kepler SM 中的各种执行单元是流水线的。我们以浮点乘法为例。

    在给定的时钟中,Kepler warp 调度器可以调度浮点单元上的浮点乘法运算。此操作的结果可能在稍后的某些时钟周期内不会出现(即它们在下一个时钟周期不可用)但在下一个时钟周期,可以安排 new 浮点操作 在相同的浮点功能单元上,因为硬件(在本例中为浮点单元)是流水线的

    clock    operation    pipeline stage   result
    0           MPY1   ->   PS1
    1                       PS2
    ...                     ...
    N-1                     PSN         ->  result1
    

    在时钟 0 之后的下一个时钟,可以在同一 HW 上调度新的乘法指令,相应的结果将在出现result1 之后的下一个周期出现。

    不确定这是否是您所说的“一次不同的操作”的意思

    【讨论】:

    • 谢谢!是的,我的意思是相同的流水线,但您的描述更详细。 IE。 Kepler 不仅可以在同一单元的不同阶段(FPU、IU、SFU、...)执行 - 流水线,而且可以在不同单元的相同阶段数中执行(并行:FPU 上的第一阶段和瞬时 1- SFU的st阶段),是真的吗?
    • 是的,开普勒可以在同一管道/单元的不同阶段以及不同的管道/单元上拥有正在运行的指令。可以在同一时钟内将两条指令启动到不同的流水线/单元。两条指令可以在后续时钟上启动到同一管道/单元中。
    猜你喜欢
    • 2015-03-19
    • 2011-09-17
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 2010-09-08
    相关资源
    最近更新 更多