该函数用于在Unified Buffer中预留指定大小的内存空间。调用该接口后,使用GetCoreMemSize可以获取实际可用的剩余Unified Buffer空间大小。
1 | void ReserveLocalMemory(ReservedSize size) |
参数名 |
输入/输出 |
说明 |
||
---|---|---|---|---|
ReservedSize |
输入 |
需要预留的空间大小。
|
无
多次调用该函数时,仅保留最后一次调用的结果。
ge::graphStatus TilingXXX(gert::TilingContext* context) { auto ascendcPlatform = platform_ascendc::PlatformAscendC(context->GetPlatformInfo()); uint64_t ub_size, l1_size; // 预留8KB的Unified Buffer内存空间 ascendcPlatform.ReserveLocalMemory(platform_ascendc::ReservedSize::RESERVED_SIZE_8K); // 获取Unified Buffer和L1的实际可用内存大小 ascendcPlatform.GetCoreMemSize(platform_ascendc::CoreMemType::UB, ub_size); ascendcPlatform.GetCoreMemSize(platform_ascendc::CoreMemType::L1, l1_size); // ... return ret; }
完整样例可参考与数学库高阶API配合使用的样例。