开发者
下载
[object Object][object Object]

将生产者tile推入FIFO中,用于Cube-Vector之间的数据传输和核间同步。

本指令支持多类数据的推送,包括基于 [object Object] 的Tile重载、简化版Tile重载(参数顺序相反、无需Split)、GlobalTensor重载以及基于TConfig的重载。

[object Object]

对于TileData流程:

  1. [object Object] 将生产者tile存入当前FIFO槽位,并为消费者记录数据就绪同步。生产者tile索引在槽位地址计算完成后递增。
  2. [object Object] 等待生产者的数据就绪同步,将当前FIFO槽位加载到消费者tile中。消费者tile索引在槽位地址计算完成后递增。
  3. [object Object] 释放FIFO中的槽位空间。Atlas A2/A3 训练系列产品/Atlas A2/A3 推理系列产品平台上此接口为空操作([object Object] 已在内部执行空闲空间通知),Ascend 950PR/Ascend 950DT平台上会释放 [object Object] 使用的FIFO槽位空间。

对于GlobalData流程:

  1. [object Object][object Object] 中分配一个生产者FIFO槽位,并将其暴露为 [object Object] 视图。生产者可通过 [object Object] 等指令向该槽位写入数据。
  2. [object Object] 为已经由 [object Object] 分配的槽位记录数据就绪同步,将FIFO槽位提交给消费者。它本身不会存储tile数据。
  3. [object Object] 等待数据就绪,将 [object Object] 赋值为当前FIFO槽位地址,并递增消费者tile索引。它不会将数据加载到本地tile,也不会释放槽位。消费者可通过 [object Object] 等指令从槽位中读取数据。
  4. [object Object] 释放由 [object Object] 返回的FIFO槽位视图,通知生产者该槽位空间已空闲。

对于 [object Object] 重载 [object Object][object Object] 模板参数用于配置L0C->GM/UB的fixpipe参数。

[object Object]

声明位置:[object Object]

[object Object]

[object Object] 通常是 [object Object] 中声明的 [object Object]类型:

[object Object]
[object Object]
  • TileData类型生产者
    • [object Object] 必须是 [object Object][object Object][object Object]
    • [object Object]:Cube生产accumulator tile,供vector消费。
    • [object Object]:Vector生产vector tile,供cube消费。
    • [object Object]:同一个pipe类型同时支持C2V和V2C生产者。
  • FIFO槽位
    • [object Object] 必须足够容纳一个逻辑FIFO条目。
    • [object Object]
  • Atlas A2/A3 训练系列产品/Atlas A2/A3 推理系列产品切分行为
    • [object Object]:不做切分。在Atlas A2/A3 训练系列产品/Atlas A2/A3 推理系列产品上要使能此切分模式,需要AIV0,AIV1陪跑同步操作。
    • [object Object]:向量子块映射到上下两个行半区。
    • [object Object]:向量子块映射到左右两个列半区。
  • Ascend 950PR/Ascend 950DT切分行为
    • [object Object]:不做切分。
    • [object Object]:将数据按照上下切分。当Cube->Vector方向且L0C->UB通路时,该切分模式仅支持数据类型为b32,且srcTile的validRows必须为2的整数倍;当Vector->Cube方向且UB->L1通路时,该切分模式下validRows必须是32字节的整数倍。
    • [object Object]:将数据按照左右切分成两个列半区。当Cube->Vector方向且L0C->UB通路时,该切分模式仅支持数据类型为b32,且srcTile的validCols必须为32的整数倍。当Vector->Cube方向且UB->L1通路时,该切分模式下validCols必须是32字节的整数倍。
  • 简化版TileData接口
    • [object Object] 内部使用 [object Object] 语义。
    • [object Object] 必须为 [object Object][object Object]
  • TConfig接口
    • [object Object] 是决定推送行为的配置类型(实现定义)。
    • [object Object] 必须为 [object Object][object Object][object Object]
  • 同步
    • 空闲空间等待是稀疏的,并由 [object Object] 控制。
    • 每次 [object Object] 都会发出数据就绪记录。
  • GlobalData类型生产者
    • [object Object] 必须是由 [object Object] 返回的FIFO槽位视图。
    • 调用 [object Object] 之前,数据必须已经写入 [object Object]
    • [object Object] 忽略tensor内容,只将FIFO槽位提交给消费者。
  • Tile类型支持
    • TPUSH/TPOP支持的Tile类型
      • [object Object](累加器Tile):Cube核心使用,用于C2V方向通信。
      • [object Object](向量Tile):Vector核心使用,用于V2C方向通信。
      • [object Object](控制Tile):Vector核心使用,用于V2C_CTRL方向的控制信号通信。
[object Object]

[object Object] 重载中的 [object Object] 模板参数是一个配置结构体,用于控制推送过程中的fixpipe行为。PTO提供了 [object Object] 结构体来实现此功能。

声明于 [object Object]

[object Object]
[object Object][object Object]undefined
[object Object]
[object Object]
[object Object][object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]

当前公开的汇编参考尚未为 [object Object] 定义稳定的PTO-AS写法。手写CV FIFO程序时请使用C++ intrinsic形式。

[object Object]