Utils API列表

表 1 C++标准库API列表

接口名 功能描述
max 比较相同数据类型的两个数中的最大值。
min 比较相同数据类型的两个数中的最小值。
abs 获取输入数据的绝对值。
sqrt 计算输入数据的平方根。
integer_sequence 用于生成一个整数序列。
tuple 允许存储多个不同类型元素的容器。
get 从tuple容器中提取指定位置的元素。
make_tuple 用于便捷地创建tuple对象。
is_convertible 在程序编译时判断两个类型之间是否可以进行隐式转换。
is_base_of 在程序编译时判断一个类型是否为另一个类型的基类。
is_same 在程序编译时判断两个类型是否完全相同。
is_void 在程序编译时,检测一个类型是否为void类型。
is_integral 在程序编译时,检测一个类型是否为整数类型。
is_floating_point 在程序编译时,检测一个类型是否为浮点类型。
is_array 在程序编译时,检测一个类型是否为数组类型。
is_pointer 在程序编译时,判断一个类型是否为指针类型。
is_reference 在程序编译时,检测一个类型是否为引用类型。
is_const 在程序编译时,检测一个类型是否为const限定的类型。
remove_const 在程序编译时,对传入的模板参数类型移除const限定符。
remove_volatile 在程序编译时,对传入的模板参数类型移除volatile限定符。
remove_cv 在程序编译时,对传入的模板参数类型移除const限定符或volatile限定符,或同时移除这两种限定符。
remove_reference 在程序编译时,从给定类型中移除引用限定符。
remove_pointer 在程序编译时,从给定类型中移除指针限定符。
add_const 在程序编译时,为指定类型添加const限定符。
add_volatile 在程序编译时,为指定类型添加volatile限定符。
add_cv 在程序编译时,为指定类型添加const和volatile限定符。
add_pointer 在程序编译时,为指定类型添加指针限定符。
add_lvalue_reference 在程序编译时,为指定类型添加左值引用限定符。
add_rvalue_reference 在程序编译时,为指定类型添加右值引用限定符。
enable_if 在程序编译时根据某个条件启用或禁用特定的函数模板、类模板或模板特化。
conditional 在程序编译时根据一个布尔条件从两个类型中选择一个类型。
integral_constant 用于封装一个编译时常量整数值,是标准库中许多类型特性和编译时计算的基础组件。

表 2 平台信息获取API列表

接口名 功能描述
PlatformAscendC 在实现Host侧的Tiling函数时,可能需要获取一些硬件平台的信息,来支撑Tiling的计算,比如获取硬件平台的核数等信息。PlatformAscendC类提供获取这些平台信息的功能。
PlatformAscendCManager 基于Kernel Launch算子工程,通过基础调用(Kernel Launch)方式调用算子的场景下,可能需要获取硬件平台相关信息,比如获取硬件平台的核数。PlatformAscendCManager类提供获取平台信息的功能。

表 3 Tiling调测API列表

接口名 功能描述
OpTilingRegistry OpTilingRegistry类属于context_ascendc命名空间,主要用于加载Tiling实现的动态库,并获取算子的Tiling函数指针以进行调试和验证。
ContextBuilder ContextBuilder类提供一系列的API接口,支持手动构造类来验证Tiling函数以及KernelContext类用于TilingParse函数的验证。

表 4 Tiling模板编程API列表

接口名 功能描述
模板参数定义 通过该类接口进行模板参数ASCENDC_TPL_ARGS_DECL和模板参数组合ASCENDC_TPL_ARGS_SEL(即可使用的模板)的定义。
GET_TPL_TILING_KEY Tiling模板编程时,开发者通过调用此接口自动生成TilingKey。该接口将传入的模板参数通过定义的位宽,转成二进制,按照顺序组合后转成uint64数值,即TilingKey。
ASCENDC_TPL_SEL_PARAM Tiling模板编程时,开发者通过调用此接口自动生成并配置TilingKey。

表 5 RTC API列表

接口名 功能描述
aclrtcCompileProg 编译接口,编译指定的程序。
aclrtcCreateProg 通过给定的参数,创建编译程序的实例。
aclrtcDestroyProg 销毁编译程序的实例。
aclrtcGetBinData 获取编译后的二进制数据。
aclrtcGetBinDataSize 获取编译的二进制数据大小。用于在aclrtcGetBinData获取二进制数据时分配对应大小的内存空间。
aclrtcGetCompileLogSize 获取编译日志的大小。用于在aclrtcGetCompileLog获取日志内容时分配对应大小的内存空间。
aclrtcGetCompileLog 获取编译日志的内容,以字符串形式保存。

表 6 log API列表

接口名 功能描述
ASC_CPU_LOG 提供Host侧打印Log的功能。开发者可以在算子的TilingFunc代码中使用ASC_CPU_LOG_XXX接口来输出相关内容。

表 7 调测接口列表

接口名 功能描述
printf 在算子Kernel侧的实现代码中,需要输出日志信息时,调用printf接口打印相关内容。
assert 本接口在SIMT VF调试场景下提供assert断言功能。在算子Kernel侧的SIMT VF实现代码中,如果assert的内部条件判断不为真,则会输出assert条件,并将输入的信息格式化打印在屏幕上。
__trap 在SIMT VF实现代码中调用此接口会中断算子的运行。
clock 本接口在SIMT VF调试场景中提供Clock时间戳功能,用于记录从程序启动到接口调用时刻所经历的时钟周期数(Cycle Count),便于精确分析执行延迟和性能瓶颈。