acltdtCreateChannel
aclprofGetOpDuration
函数功能
获取算子执行的耗时时间,单位为ns。同步接口。
建议用户新建一个线程,在新线程内调用该接口,否则可能阻塞主线程中的其它任务调度。
函数原型
uint64_t aclprofGetOpDuration(const void *opInfo, size_t opInfoLen, uint32_t index)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| opInfo | 输入 | 包含算子信息的地址。 |
| opInfoLen | 输入 | 算子信息的长度。 |
| index | 输入 | 指定获取第几个算子执行的耗时时间。 用户调用aclprofGetOpNum接口获取算子数量后,这个index的取值范围:[0, (算子数量-1)]。 |
返回值说明
算子执行的耗时时间。
参考资源
接口调用示例,参见Profiling性能数据采集。
父主题: Profiling AscendCL API for Subscription(订阅算子信息的Profiling AscendCL API)
aclprofGetModelId
函数功能
获取指定算子所在模型的ID。同步接口。
建议用户新建一个线程,在新线程内调用该接口,否则可能阻塞主线程中的其它任务调度。
函数原型
size_t aclprofGetModelId(const void *opInfo, size_t opInfoLen, uint32_t index)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| opInfo | 输入 | 包含算子信息的地址。 |
| opInfoLen | 输入 | 算子信息的长度。 |
| index | 输入 | 指定获取第几个算子所在模型的ID。 用户调用aclprofGetOpNum接口获取算子数量后,这个index的取值范围:[0, (算子数量-1)]。 |
返回值说明
模型的ID。
参考资源
接口调用示例,参见Profiling性能数据采集。
父主题: Profiling AscendCL API for Subscription(订阅算子信息的Profiling AscendCL API)
aclprofGetStepTimestamp
函数功能
利用单算子加载与执行接口实现训练的场景下,使用本接口用于标记迭代开始与结束时间,为后续Profiling解析提供迭代标识,以便以迭代为粒度展示性能数据。
函数原型
aclError aclprofGetStepTimestamp(aclprofStepInfo* stepInfo, aclprofStepTag tag, aclrtStream stream)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| stepinfo | 输入 | 指定迭代信息。需提前调用aclprofCreateStepInfo接口创建**aclprofStepInfo**类型的数据。 |
| tag | 输入 | 用于标记迭代开始或结束。在迭代开始时传入枚举值ACL_STEP_START,迭代结束时需传入枚举值ACL_STEP_END。 |
| stream | 输入 | 指定Stream。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: Profiling AscendCL API(PyTorch场景标记迭代时间)
acltdtCreateChannel
函数功能
创建acltdtChannelHandle类型的数据,表示可以用于向Device发送数据或是从Device接收数据的通道。
Atlas 200/500 A2推理产品,不支持该接口。
函数原型
acltdtChannelHandle *acltdtCreateChannel(uint32_t deviceId, const char *name)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| deviceId | 输入 | Device ID。 用户调用aclrtGetDeviceCount接口获取可用的Device数量后,这个Device ID的取值范围:[0, (可用的Device数量-1)] |
| name | 输入 | 队列通道名称的指针。 |
返回值说明
- 返回acltdtChannelHandle类型的指针,表示成功。
- 返回nullptr,表示失败。
父主题: Tensor数据传输接口
acltdtSendTensor
函数功能
发送预处理好的数据。
Atlas 200/500 A2推理产品,不支持该接口。
函数原型
aclError acltdtSendTensor(const acltdtChannelHandle *handle,
const acltdtDataset *dataset,
int32_t timeout)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| handle | 输入 | 指定通道。 需提前调用acltdtCreateChannel接口或acltdtCreateChannelWithCapacity接口创建acltdtChannelHandle类型的数据。 |
| dataset | 输入 | 向Device发送的数据的指针。 |
| timeout | 输入 | 等待超时时间。 该参数取值范围如下: - -1:阻塞方式,一直等待直到数据发送完成。 - 0:非阻塞方式,当通道满时,直接返回通道满这个错误,这时由用户自行设定重试间隔。 - >0:配置具体的超时时间,单位为毫秒。通道满时,等待达到超时时间后返回报错。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的超时时间为1ms,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: Tensor数据传输接口
acltdtReceiveTensor
函数功能
在Host接收Device发过来的数据。
Atlas 200/500 A2推理产品,不支持该接口。
函数原型
aclError acltdtReceiveTensor(const acltdtChannelHandle *handle,
acltdtDataset *dataset,
int32_t timeout)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| handle | 输入 | 指定通道。 需提前调用acltdtCreateChannel接口或acltdtCreateChannelWithCapacity接口创建acltdtChannelHandle类型的数据。 |
| dataset | 输出 | 接收到的Device数据的指针。 |
| timeout | 输入 | 等待超时时间。 该参数取值范围如下: - -1:阻塞方式,一直等待直到数据接收完成。 - 0:非阻塞方式,当通道空时,直接返回通道空这个错误,这时由用户自行设定重试间隔。 - >0:配置具体的超时时间,单位为毫秒。通道空时,等待达到超时时间后返回报错。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的超时时间为1ms,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: Tensor数据传输接口
acltdtStopChannel
函数功能
调用acltdtSendTensor接口发送数据时或调用acltdtReceiveTensor接口接收数据时,用户线程可能在没有数据时会卡住,此时如果需要退出的话,需要先将线程唤醒,该接口就是用来唤醒被卡住阻塞的线程用的。需要用户在发送、接收线程之外的一个线程里调用这个函数,来唤醒处于阻塞状态的发送/接收线程。
Atlas 200/500 A2推理产品,不支持该接口。
函数原型
aclError acltdtStopChannel(acltdtChannelHandle *handle)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| handle | 输入 | 指定通道。 需提前调用acltdtCreateChannel接口或acltdtCreateChannelWithCapacity接口创建acltdtChannelHandle类型的数据。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: Tensor数据传输接口
在线提单