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),便于精确分析执行延迟和性能瓶颈。 |