MakeFixbufmemPtr
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
功能说明
创建FIXBUF上的指针,用于访问AI Core的FIXBUF的内存空间。
函数原型
template <typename Iterator>
__aicore__ inline constexpr auto MakeFixbufmemPtr(Iterator iter)
template <typename T, typename U>
__aicore__ inline auto MakeFixbufmemPtr(const U& byteOffset)
参数说明
表 1 模板参数说明
| 参数名 | 输入/输出 | 描述 |
|---|---|---|
| Iterator | 输入 | 迭代器或指针类型。 |
| T | 输入 | 元素类型。 |
| U | 输入 | 字节偏移量类型。 |
表 2 参数说明
| 参数名 | 输入/输出 | 描述 |
|---|---|---|
| iter | 输入 | 指针,指向FIXBUF的起始地址,类型为__fbuf__ T。 |
| byteOffset | 输入 | FIXBUF内存起始地址的字节偏移量。 |
返回值说明
返回FIXBUF内存指针对象,类型为HardwareMemPtr<Hardware::FIXBUF, Iterator>。
约束说明
- iter必须是有效的迭代器类型。
- 偏移地址必须在FIXBUF内存范围内。
调用示例
using namespace AscendC::Te;
// 示例1: 使用指针创建
constexpr uint32_t Tile_LENGTH = 128;
__fbuf__ float data[Tile_LENGTH];
auto ptr = MakeFixbufmemPtr(data);
// 示例2: 使用地址字节偏移创建
uint32_t byteOffset = 128;
auto ptr = MakeFixbufmemPtr<float>(byteOffset);