acltdtBindQueueRoutes

Applicability

Product

Supported

Atlas 350 Accelerator Card

Atlas A3 training product / Atlas A3 inference product

Atlas A2 training product / Atlas A2 inference product

Atlas 200I/500 A2 inference product

Atlas inference product

Atlas training product

Description

Binds data forwarding routes between queues when an app requires one-to-many data distribution.

As shown in the following figure, two routes (Q1 -> Q2 and Q1 -> Q3) can be established. When data is distributed in one-to-many mode, the transferred shared buffer data is not locked, and consumers cannot perform the inplace operation on the data. As shown in the following figure, if consumer 1 modifies the shared data, the data accessed by consumer 2 changes.

Prototype

1
aclError acltdtBindQueueRoutes(acltdtQueueRouteList *qRouteList)

Parameters

Parameter

Input/Output

Description

qRouteList

Input/Output

Pointer to the route list. This API call returns the route binding result. For details about the type definition, see acltdtQueueRouteList.

Call acltdtCreateQueueRouteList to create data of the acltdtQueueRouteList type, and then call acltdtAddQueueRoute to add a route.

Returns

0 on success; otherwise, failure. For details, see aclError.

This API returns a success message only when all routes in a queue are successfully bound and the route status is normal. If any route fails to be bound, this API returns a failure message. To locate the failure, you can call acltdtGetQueueRoute to obtain each route from the route list, and call acltdtGetQueueRouteParam to query the binding status.

Restrictions

  • The system checks whether an added queue route forms a loop. Loops are not allowed.
  • Multi-thread concurrent calling is not supported.