输入和输出缓冲器 - 2023.2 简体中文

AI 引擎内核与计算图编程指南 (UG1079)

Document ID
UG1079
Release Date
2023-12-04
Version
2023.2 简体中文

输入和输出缓冲器表示连续存储在拼块的物理存储器上的数据,此类数据可供计算图中的内核使用。此数据的来源可能是生成这些数据的其他内核,或者源自 PL 并穿过 AI 引擎阵列接口。 在内核执行操作的拼块物理存储器中或者在可访问的相邻拼块中均可分配缓冲器端口。

当内核的输入侧包含缓冲器端口时,它会等待缓冲器变为完全可用后,再开始执行。内核既可以随机访问缓冲器端口内容,也可以采用线性方式来执行访问。反之,内核可将数据块(帧)写入本地存储器,并可在其完成执行后,供其他内核使用。

如果缓冲器来源是串流,那么此串流将被分片为多个连续的块,并逐一存储到缓冲器中,如下图所示。

图 1. 数据串流分片为多个缓冲器

下图显示了驻留在本地拼块存储器中的内核缓冲器端口示例。内核 k2 位于拼块 (11,0) 内,输入缓冲器端口同样位于拼块 (11,0) 的本地存储器内。

图 2. 本地拼块缓冲器中的内核缓冲器端口

下图显示了相邻拼块存储器中分配的内核缓冲器端口示例。内核 k2 位于拼块 (11,0) 内,输出缓冲器端口位于相邻拼块 (10,0) 内。对于位于拼块 (10,0) 内的内核 k1 同样如此,该内核的输入和输出缓冲器都位于相同拼块 (10,0) 内。

注释: 工具可根据用户指定的设计约束的指示,自动完成缓冲器布局。单个缓冲器端口(包括乒缓冲器和乓缓冲器)必须布局在单个拼块中。对于 AI 引擎器件,单个缓冲器端口不超过 32 KB。对于 AI 引擎机器学习器件,单个缓冲器端口不超过 64 KB。
图 3. 相邻拼块缓冲器中的内核缓冲器端口