acltdtDestroyQueue
aclFloatToFloat16
函数功能
将float(指float32)类型的数据转换为aclFloat16类型的数据。
函数原型
aclFloat16 aclFloatToFloat16(float value)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| value | 输入 | 待转换的数据。 |
返回值说明
转换后的数据。
父主题: 数据类型转换及获取数据大小
功能及约束说明
功能说明
本章提供的接口用于实现Device侧的数据队列和数据转发功能,用户可以结合本章的队列管理和共享Buffer机制以实现数据驱动编程。
约束说明
队列只允许单个消费者或单个生产者操作,Enqueue(指向队列中添加数据)或Dequeue(指从队列中获取数据)时应单线程操作,不支持并发。
父主题: 共享队列管理
acltdtCreateQueue
函数功能
创建队列。同步接口。
函数原型
aclError acltdtCreateQueue(const acltdtQueueAttr *attr, uint32_t *qid)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| attr | 输入 | 队列属性配置信息的指针。 需提前调用acltdtCreateQueueAttr接口创建acltdtQueueAttr类型的数据,再调用acltdtSetQueueAttr接口设置队列属性值(例如,队列名)。 若该参数为nullptr时,则使用队列属性默认值,即队列名系统自动分配,队列深度默认为8。 |
| qid | 输出 | 队列ID的指针。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 共享队列管理
acltdtDestroyQueue
函数功能
销毁通过acltdtCreateQueue接口创建的队列。同步接口。
函数原型
aclError acltdtDestroyQueue(uint32_t qid)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| qid | 输入 | 指定需销毁的队列。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 共享队列管理
acltdtEnqueueData
函数功能
向队列中添加数据。同步接口。
函数原型
aclError acltdtEnqueueData(uint32_t qid, const void *data, size_t dataSize, const void *userData, size_t userDataSize, int32_t timeout, uint32_t rsv);
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| qid | 输入 | 需要添加数据的队列。 队列需提前调用acltdtCreateQueue接口创建。 |
| data | 输入 | 内存数据指针,支持Host侧或Device侧的内存。 |
| dataSize | 输入 | 内存数据大小,单位为Byte。 |
| userData | 输入 | 用户自定义数据指针。 若用户没有自定义数据,则传nullptr。 |
| userDataSize | 输入 | 用户自定义数据大小(<=96Byte)。 若用户没有自定义数据,则传0。 |
| timeout | 输入 | 等待超时时间。当队列满时,如果向队列中添加数据,系统内部会根据设置的等待超时时间来决定如何处理。 该参数取值范围如下: - -1:阻塞方式,一直等待直到数据成功加入队列。 - 0:非阻塞方式(仅支持device场景,host场景无效),当队列满时,直接返回队列满这个错误,这时由用户自行设定重试间隔。 - >0:配置具体的超时时间,单位为毫秒。队列满时,等待达到超时时间后返回报错。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的超时时间为1ms,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
| rsv | 输入 | 预留参数,暂不支持。当前可设置为0。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 共享队列管理
acltdtDequeueData
函数功能
从队列中获取数据。同步接口。
函数原型
aclError acltdtDequeueData(uint32_t qid, void *data, size_t dataSize, size_t *retDataSize, void *userData, size_t userDataSize, int32_t timeout);
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| qid | 输入 | 需要从哪个队列中获取数据。 队列需提前调用acltdtCreateQueue接口创建。 |
| data | 输入 | 内存数据指针,支持Host侧或Device侧的内存。 |
| dataSize | 输入 | 内存数据大小,单位为Byte。 |
| retDataSize | 输入&输出 | 返回实际数据大小,单位为Byte。 |
| userData | 输入 | 用户自定义数据指针。 若用户没有自定义数据,则传nullptr。 |
| userDataSize | 输入 | 用户自定义数据大小(<=96Byte)。 若用户没有自定义数据,则传0。 |
| timeout | 输入 | 等待超时时间。当队列空时,如果从队列中获取数据,系统内部会根据设置的等待超时时间来决定如何处理。 该参数取值范围如下: - -1:阻塞方式,一直等待直到队列有数据后返回。 - 0:非阻塞方式(仅支持device场景,host场景无效),当队列空时,直接返回队列空这个错误,这时由用户自行设定重试间隔。 - >0:配置具体的超时时间,单位为毫秒。队列空时,等待达到超时时间后返回报错。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的超时时间为1ms,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 共享队列管理
acltdtEnqueue
函数功能
向队列中添加数据,存放数据的内存必须调用acltdtAllocBuf接口申请。同步接口。
Atlas 200/500 A2推理产品,不支持该接口。
函数原型
aclError acltdtEnqueue(uint32_t qid, acltdtBuf buf, int32_t timeout)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| qid | 输入 | 需要添加数据的队列。 队列需提前调用acltdtCreateQueue接口创建。 |
| buf | 输入 | 共享Buffer指针。 该内存必须提前调用acltdtAllocBuf接口申请。 |
| timeout | 输入 | 等待超时时间。当队列满时,如果向队列中添加数据,系统内部会根据设置的等待超时时间来决定如何处理。 该参数取值范围如下: - -1:阻塞方式,一直等待直到数据成功加入队列。 - 0:非阻塞方式,当队列满时,直接返回队列满这个错误,这时由用户自行设定重试间隔。 - >0:配置具体的超时时间,单位为毫秒。队列满时,等待达到超时时间后返回报错。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的超时时间为1ms,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: 共享队列管理
在线提单