"运行"可能更好地解释为"在SM和/或管道中的指令上具有状态".GPU硬件调度尽可能多的块或者适合SM的资源(以较小者为准),为它们包含的每个warp(即寄存器文件和本地内存)分配状态,然后开始调度warp以便执行.指令管道似乎长约21-24个周期,因此在任何给定时间都有很多线程处于"运行"的各个阶段.
支持CUDA的前两代GPU(因此G80/90和G200)仅在每四个时钟周期从单个warp中退出指令.每两个时钟周期从两个warp计算2.0设备双发出指令,因此每个时钟有两个warp退休指令.Compute 2.1通过允许有效的乱序执行来扩展这一点 - 每个时钟仍然只有两个warp,但可能同时来自同一warp的两个指令.因此,每个SM额外的16个内核用于指令级并行,仍然是从同一个共享调度程序发出的.
| 归档时间: |
|
| 查看次数: |
2377 次 |
| 最近记录: |