Skip to content
版 本

aclrtcCreateProg

产 品 支 持 情 况

产 品

是 否 支 持

Ascend 950PR/Ascend 950DT

Atlas A3 训 练 系 列 产 品/Atlas A3 推 理 系 列 产 品

Atlas A2 训 练 系 列 产 品/Atlas A2 推 理 系 列 产 品

Atlas 200I/500 A2 推 理 产 品

x

Atlas 推 理 系 列 产 品AI Core

x

Atlas 推 理 系 列 产 品Vector Core

x

Atlas 训 练 系 列 产 品

x

功 能 说 明

通 过 给 定 的 参 数,创 建 编 译 程 序 的 实 例。

函 数 原 型

Text
aclError aclrtcCreateProg(aclrtcProg *prog, const char *src, const char *name, int numHeaders, const char **headers, const char **includeNames)

参 数 说 明

表 1 接 口 参 数 说 明

参 数 名

输 入/输 出

描 述

prog

输 出

运 行 时 编 译 程 序 的 句 柄。

src

输 入

以 字 符 串 形 式 提 供 的Ascend C Device侧 源 代 码 内 容。

name

输 入

用 户 自 定 义 的 程 序 名 称,用 于 标 识 和 区 分 不 同 的 编 译 程 序,默 认 值 为"default_program"。

numHeaders

输 入

指 定 要 包 含 的 头 文 件 数 量,必 须 为 非 负 整 数。

无 需 包 含 头 文 件 或 者Ascend C Device侧 源 代 码中 已 包 含 所 需 头 文 件 时,此 参 数 需 设 置 为0。

headers

输 入

一 个 指 向 数 组 的 指 针,数 组 中 的 每 个 元 素 都 是 以'\0'结 尾 的 字 符 串,表 示 头 文 件 的 源 代 码 内 容。当numHeaders为0时,此 参 数 可 以 设 置 为nullptr。

includeNames

输 入

一 个 指 向 数 组 的 指 针,数 组 中 的 每 个 元 素 都 是 以'\0'结 尾 的 字 符 串,表 示 头 文 件 的 名 称。

这 些 名 称 必 须 与 源 代 码 中#include指 令 中 包 含 的 头 文 件 名 称 完 全 一 致。

返 回 值 说 明

aclError为int类 型 变 量,详 细 说 明 请 参 考RTC错 误 码

约 束 说 明

调 用 示 例

Text
aclrtcProg prog;
const char *src = R""""(
#include "kernel_operator.h"
#include "my_const_a.h"
#include "my_const_b.h"

extern "C" __global__ __aicore__ void hello_world(GM_ADDR x)
{
	KERNEL_TASK_TYPE_DEFAULT(KERNEL_TYPE_AIC_ONLY);
	*x = *x + MY_CONST_A + MY_CONST_B;
}
)"""";
const char* headerSrcA = R"(
#ifndef CONST_A_H
#define CONST_A_H
const int MY_CONST_A = 100;
#endif // CONST_A_H
)";
const char* includeNameA = "my_const_a.h";

const char* headerSrcB = R"(
#ifndef CONST_B_H
#define CONST_B_H
const int MY_CONST_B = 50;
#endif // CONST_B_H
)";

const char* includeNameB = "my_const_b.h";
const char* headersArray[] = { headerSrcA, headerSrcB };
const char* includeNameArray[] = { includeNameA, includeNameB };
aclError result = aclrtcCreateProg(&prog, src, "hello_world", 2,  headersArray,  includeNameArray);

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