Skip to content
版 本

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列 表

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

表 4 Tiling模 板 编 程API列 表

接 口 名功 能 描 述
模 板 参 数 定 义通 过 该 类 接 口 进 行 模 板 参 数ASCENDC_TPL_ARGS_DECL和 模 板 参 数 组 合ASCENDC_TPL_ARGS_SEL(即 可 使 用 的 模 板)的 定 义。
GET_TPL_TILING_KEYTiling模 板 编 程 时,开 发 者 通 过 调 用 此 接 口 自 动 生 成TilingKey。该 接 口 将 传 入 的 模 板 参 数 通 过 定 义 的 位 宽,转 成 二 进 制,按 照 顺 序 组 合 后 转 成uint64数 值,即TilingKey。
ASCENDC_TPL_SEL_PARAMTiling模 板 编 程 时,开 发 者 通 过 调 用 此 接 口 自 动 生 成 并 配 置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),便 于 精 确 分 析 执 行 延 迟 和 性 能 瓶 颈。

免 责 声 明:本 站 内 容 由 asc-devkit 仓 master 分 支 自 动 编 译 生 成,属 于 持 续 开 发 版 本,可 能 存 在 缺 陷,仅 供 预 览 与 参 考。如 需 稳 定 及 商 用 资 料,请 查 阅 官 方 昇 腾 社 区