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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions