释放FIFO中的槽位(slot)空间。
对于TileData [object Object] 流程,Atlas A2/A3 训练系列产品/Atlas A2/A3 推理系列产品平台上[object Object] 已经在内部执行空闲空间通知步骤。因此,面向TileData的 [object Object] 接口当前是空操作,只是为了与 [object Object] 流程保持API对称。Ascend 950PR/Ascend 950DT平台上TFREE会释放TPOP使用的FIFO槽位空间。
对于 [object Object] 流程,[object Object] 会释放由 [object Object] 返回的FIFO槽位视图。
对于TileData流程:
[object Object]将生产者tile存入当前FIFO槽位,并为消费者记录数据就绪同步。生产者tile索引在槽位地址计算完成后递增。[object Object]等待生产者的数据就绪同步,将当前FIFO槽位加载到消费者tile中。消费者tile索引在槽位地址计算完成后递增。[object Object]释放FIFO中的槽位空间。Atlas A2/A3 训练系列产品/Atlas A2/A3 推理系列产品平台上此接口为空操作([object Object]已在内部执行空闲空间通知),Ascend 950PR/Ascend 950DT平台上会释放[object Object]使用的FIFO槽位空间。
对于GlobalData流程:
[object Object]从[object Object]中分配一个生产者FIFO槽位,并将其暴露为[object Object]视图。生产者可通过[object Object]等指令向该槽位写入数据。[object Object]为已经由[object Object]分配的槽位记录数据就绪同步,将FIFO槽位提交给消费者。它本身不会存储tile数据。[object Object]等待数据就绪,将[object Object]赋值为当前FIFO槽位地址,并递增消费者tile索引。它不会将数据加载到本地tile,也不会释放槽位。消费者可通过[object Object]等指令从槽位中读取数据。[object Object]释放由[object Object]返回的FIFO槽位视图,通知生产者该槽位空间已空闲。
声明位置:[object Object]:
[object Object]
[object Object] 中对应的Atlas A2/A3 训练系列产品/Atlas A2/A3 推理系列产品实现对该重载有意保持为空(Ascend 950PR/Ascend 950DT上实现位于 [object Object],执行实际的空闲空间通知):
[object Object]
TileData流程:
- 当弹出的FIFO槽位中的数据不再需要时,使用
[object Object]。 - 搭配使用TPUSH/TPOP/TFREE实现核间同步和数据传输,数据传输时推入的tileshape和弹出的tileshape的大小比例关系是1:1或者1:2。
- 当弹出的FIFO槽位中的数据不再需要时,使用
GlobalData流程:
- 当弹出的FIFO槽位中的数据不再需要时,使用
[object Object]。 [object Object]只用于选择重载;实现不会读取或写入tensor内容。- 空闲空间通知是稀疏的,并由
[object Object]控制。 - 如果非1:1或者1:2关系,即存在subtile的数据传输,需要搭配使用TALLOC/TPUSH/TPOP/TFREE来实现核间同步和数据传输。
- 当弹出的FIFO槽位中的数据不再需要时,使用
[object Object]
[object Object]
当前公开的汇编参考尚未为 [object Object] 定义稳定的PTO-AS写法。手写CV FIFO程序时请使用C++ intrinsic形式。
[object Object]