【发布时间】:2017-05-25 09:14:58
【问题描述】:
我对nvidia GPU的任务调度有些疑惑。
(1) 如果块中的线程束(CTA)已经完成,但仍有其他线程在运行,这个线程会等待其他线程完成吗?换句话说,当所有线程都完成时,块(CTA)中的所有线程都会释放它们的资源,可以吗?我认为这点应该是对的,因为块中的线程共享共享内存和其他资源,这些资源在 CTA 大小管理器中分配。
(2) 如果一个块(CTA) 中的所有线程都因为一些长延迟(例如全局内存访问)而挂起?一个新的 CTA 线程会占用资源,哪种方法像 CPU?换句话说,如果一个块(CTA)已经被调度到一个 SM(流处理器),它是否会占用资源直到它完成?
如果有人向我推荐一些有关 GPU 架构的书籍或文章,我将不胜感激。谢谢!
【问题讨论】: