【Cutlass】tile iterator concept

简介

在Cutlass 2.x之前将matix或者tensor切分成固定尺寸的操作都是在tile iterator当中(Cutlass 3.0之后对于matrix和tensor的操作都放到了cute::Tensor里面)。tile_iterator_concept不同于c++20里面的concept,这里不使用concept作为key word,仅仅是对这些类型的需求。tile_iterator内部是几个概念的组合,tile iterator concept几乎涵盖了所有需求。

Concept定义

struct定义
TileIteratorConcept基类:1. Element,tile的组成部分;2. 形状类型,取决于iter的实现
ContiguousMemoryTileIterator在连续内存上任意Tile的iterator,每个thread将Element尺寸的数据块存储在pointer_offset的位置上
ReadableTileIteratorConcept(WriteableTileIteratorConcept类似)每个thread从内存读取一块数据放到其相应的Fragment当中
ReadableContiguousTileIteratorConcept(WriteableContiguousTileIteratorConcept类似)从pointer_offset的位置连续读取数据
ForwardTileIteratorConcept前向遍历tile,具体的方向和Context相关,比如Gemm就这沿着K方向遍历
BidirectionalTileIteratorConcept两个方向遍历tile
RandomAccessTileIteratorConcept相较TensorRef进行TensorCoord的偏移
ReadableRandomAccessTileIteratorConcept(WriteableRandomAccessTileIteratorConcept类似)根据TensorRef和TensorCoord load数据到fragment中
ReadableRandomAccessContiguousTileIteratorConcept(WriteableRandomAccessContiguousTileIteratorConcept类似)根据TensorRef和TensorCoord load pointer_offset处数据到fragment中
MaskedTileIteratorConcept为了部分获取数据设置的mask,可以作为oob保护
WriteableReadableForwardContiguousTileIteratorConceptForwardTileIteratorConcept + ReadableContiguousTileIteratorConcept + WriteableContiguousTileIteratorConcept
WriteableReadableRandomAccessContiguousTileIteratorConceptReadableRandomAccessContiguousTileIteratorConcept + WriteableRandomAccessContiguousTileIteratorConcept
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值