预留接口
本章接口为预留接口,后续有可能变更或废弃,不建议开发者使用,开发者无需关注。
接口定义 |
功能说明 |
|---|---|
GetTid() |
获取当前线程ID。 |
GetSafeStr(T name) |
安全获取字符串指针,支持const char*、char*和std::string类型。 |
GetOpInfo(const std::string& str) |
获取算子信息字符串。 |
GetOpInfo(const char* str) |
获取算子信息字符串,支持空指针保护。 |
IsContextType<T>() |
判断模板类型T是否为Context类型。 |
GetOpInfo(T context) |
从TilingContext或InferShapeContext中获取算子类型和名称信息。 |
DLOG_DEBUG |
DEBUG级别日志级别常量,值为0。 |
DLOG_INFO |
INFO级别日志级别常量,值为1。 |
DLOG_WARN |
WARN级别日志级别常量,值为2。 |
DLOG_ERROR |
ERROR级别日志级别常量,值为3。 |
OP_MODULE_ID |
算子模块ID常量,值为63。 |
CheckLogLevel(int32_t moduleId, int32_t logLevel) |
日志级别检查函数,判断指定模块的日志级别是否使能,返回1为使能。 |
DlogRecord(int32_t moduleId, int32_t level, const char* fmt, ...) |
日志记录函数,按模块ID和级别记录日志。 |
OP_LOGE_LIBOPAPI_REPORT(opName, fmt, ...) |
底层日志上报宏,记录ERROR级别日志。 |
OP_LOGE_WITHOUT_REPORT(opName, ...) |
仅记录日志不上报错误的日志宏。 |
OpLogSub(moduleId, level, opInfo, fmt, ...) |
指定模块和级别的日志记录宏。 |
OpLogErrSub(moduleId, level, opInfo, fmt, ...) |
指定模块和级别的错误日志记录宏。 |
D_OP_LOGI(opName, fmt, ...) |
INFO级别日志调试宏。 |
D_OP_LOGW(opName, fmt, ...) |
WARN级别日志调试宏。 |
D_OP_LOGE(opName, fmt, ...) |
ERROR级别日志调试宏。 |
D_OP_LOGD(opName, fmt, ...) |
DEBUG级别日志调试宏。 |
unlikely(x) |
编译器分支预测优化宏,标记x为低概率分支。 |
likely(x) |
编译器分支预测优化宏,标记x为高概率分支。 |
ToString(ge::DataType type) |
获取DataType对应的字符串表示。 |
ToString(ge::Format format) |
获取Format对应的字符串表示。 |
ToString(const gert::Shape& shape) |
获取Shape对应的字符串表示。 |
ToString(const std::vector<const gert::Shape*>& v) |
获取Shape指针列表对应的字符串表示。 |
ViewErrorCode |
错误码枚举,用于infershape等场景的错误上报。 |
LastPow2(uint64_t n) |
获取不超过n的最大的2的幂次值。 |
MurmurHash(const void *src, uint32_t srcLen, uint32_t seed) |
Murmur哈希算法,用于计算数据的哈希值。 |
SplitResult |
均分结果结构体,包含splitCount、splitFactor、splitTailFactor。 |
SplitIntoEqualByParts(int64_t splitLen, int32_t parts, SplitResult& splitResult) |
将splitLen均分为parts份,返回每份大小。 |
SplitIntoEqualByFactor(int64_t splitLen, int32_t factor, SplitResult& splitResult) |
按指定factor将splitLen进行均分,返回份数。 |
GetValueToInteger<T1, T2>(const gert::Tensor *constTensor, T2 &value) |
从const Tensor中读取整数类型数据。 |
GetConstInt<ContextType, T>(const ContextType *context, int64_t inputIdx, T &value) |
从InferShapeContext或TilingContext中获取指定输入的常量整数值。 |
GetValueToShape<T>(const gert::Tensor *constTensor, gert::Shape &shape) |
从const Tensor中读取整数数组到Shape中。 |
GetConstIntToShape<ContextType>(const ContextType *context, int64_t inputIdx, gert::Shape &shape) |
从InferShapeContext或TilingContext中获取指定输入的常量整数并写入Shape。 |
IsRegbaseSocVersion(const gert::TilingParseContext* context) |
判断当前平台是否为Regbase SoC版本。 |
IsRegbaseSocVersion(const gert::TilingContext* context) |
判断当前平台是否为Regbase SoC版本。 |
EnsureNotScalar(const gert::Shape& inShape) |
确保Shape不是标量(scalar),若为标量则返回一维Shape。 |
AiCoreParams |
AiCore参数结构体,包含ubSize、numBlocks、aicNum、l1Size、l0aSize、l0bSize、l0cSize。 |
CompileInfoCommon |
编译信息公共结构体,包含aivNum、aicNum、ubSize、l1Size等平台信息。 |
TilingBaseClass(gert::TilingContext* context) |
Tiling基类构造函数,接收TilingContext。 |
DoTiling() |
Tiling执行框架入口,依次调用各Tiling阶段。 |
Reset(gert::TilingContext* context) |
重置TilingBaseClass的context成员。 |
IsCapable() |
纯虚函数,判断当前类是否支持该算子的Tiling。 |
GetPlatformInfo() |
纯虚函数,获取平台信息如CoreNum、UB/L1/L0C资源大小。 |
GetShapeAttrsInfo() |
纯虚函数,获取INPUT/OUTPUT/ATTR信息。 |
DoOpTiling() |
纯虚函数,计算数据切分TilingData。 |
DoLibApiTiling() |
纯虚函数,计算高阶API的TilingData。 |
GetTilingKey() |
纯虚函数,计算TilingKey。 |
GetWorkspaceSize() |
纯虚函数,计算Workspace大小。 |
PostTiling() |
纯虚函数,保存Tiling数据。 |
DumpTilingInfo() |
打印Tiling数据信息。 |
DefaultTilingInfoDump() |
默认的Tiling数据打印实现。 |
CalcTschBlockDim(uint32_t sliceNum, uint32_t aicCoreNum, uint32_t aivCoreNum) |
计算tsch场景下的BlockDim。 |
GetShapeDebugStr<T>(const T& shape) |
获取Shape的调试字符串。 |
GetTensorDebugStr(const gert::StorageShape* shape, const gert::CompileTimeTensorDesc* tensor) |
获取Tensor的调试字符串,包含dtype、shape、format信息。 |
GetTilingContextDebugStr() |
获取TilingContext中所有输入输出Tensor的调试字符串。 |
GetTilingDataDebugStr() |
获取TilingData的调试字符串。 |
bfloat16 |
bfloat16数据类型结构体,支持与float、double等类型的转换及算术运算。 |
fp16_t |
fp16半精度浮点数据类型结构体,支持与float、int等类型的转换及算术运算。 |
castTraitB162B32 |
B16到B32的CastTrait常量配置。 |
castTraitB322B16 |
B32到B16的CastTrait常量配置。 |
castTraitB322Int32 |
B32到Int32的CastTrait常量配置。 |
castTraitB322Int16 |
B32到Int16的CastTrait常量配置。 |
castTraitB162Int8 |
B16到Int8的CastTrait常量配置。 |
LoadOneTensorForDtypeT<T>(__local_mem__ T *input, MicroAPI::RegTensor<float> &dst, MicroAPI::MaskReg &preg, uint32_t offset) |
从UB加载一个对齐的Tensor到float32寄存器中。 |
LoadTwoTensorForDtypeT<T>(__local_mem__ T *src1, __local_mem__ T *src2, MicroAPI::RegTensor<float> &dst1, MicroAPI::RegTensor<float> &dst2, MicroAPI::MaskReg &dst1Preg, MicroAPI::MaskReg &dst2Preg, uint32_t src1Offset, uint32_t src2Offset) |
从UB加载两个对齐的Tensor到float32寄存器中。 |
StoreOneTensorForDtypeT<T>(__local_mem__ T *output, MicroAPI::RegTensor<float> &src, MicroAPI::MaskReg &preg, uint32_t offset) |
将float32寄存器数据存储到UB中,支持bfloat16/float16/float32/int32/int16/int8/uint8类型输出。 |
LoadUnAlignOneTensor<T>(__local_mem__ T *&input, MicroAPI::RegTensor<float> &dst, MicroAPI::UnalignReg &uSrc, MicroAPI::MaskReg &preg, uint32_t postUpdateStride) |
从UB加载一个非对齐的Tensor到float32寄存器中。 |
StoreUnAlignOneTensor<T>(__local_mem__ T *&output, MicroAPI::RegTensor<float> &src, MicroAPI::UnalignReg &uValue, MicroAPI::MaskReg &preg, uint32_t postUpdateStride) |
将float32寄存器数据非对齐存储到UB中。 |
CeilDiv<T>(T a, T b) |
kernel侧向上取整除法。 |
FloorDiv<T>(T a, T b) |
kernel侧向下取整除法。 |
CeilAlign<T>(T a, T b) |
kernel侧向上对齐。 |
FloorAlign<T>(T a, T b) |
kernel侧向下对齐。 |
GetUbBlockSize() |
kernel侧获取UB block单元大小(32bytes)。 |
GetVRegSize() |
kernel侧获取向量寄存器大小。 |