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