Skip to content

Warp Tiling 中的疑问 #58

@muyuuuu

Description

@muyuuuu

这一节好像很考察对 cuda 结构体系的理解

  • 印象中,多个线程块会被分到 cuda 中执行,一个线程块内的所有线程只能分配到一个 SM,但一个 SM 可以被分配多个线程块。
  • 在执行的时候,线程块会被划分为线程束,线程束有 32 个线程,由线程束调度器调度执行,这 32 个线程是并行执行的。
  • 如果每个线程束占用的资源并不是很多,SM 能同时执行多个线程束。

我对这份代码的理解是:128 个线程,划分为 4 个 32x32 的区域,循环执行。那么是怎么和 readme 中的概念对应呢?

Block Tile: 不同的块可以在不同的 SM 上并行执行。

这个本来就可以?

Warp Tile: 不同的 warps 可以在不同的 warp 调度器上并行执行,并且同时在同一个 warp 调度器上执行
Thread Tile: 指令可以在同一个 CUDA 核心上并行执行(即指令级并行性,又称 ILP)

这两者如何体现在代码中呢?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions