Function: process_report

Applicability

Product

Supported

Atlas 350 Accelerator Card

Atlas A3 training product / Atlas A3 inference product

Atlas A2 training product / Atlas A2 inference product

Atlas training product

Atlas inference product

Atlas 200I/500 A2 inference product

Description

Sets the timeout interval and waits for the execution of the callback task delivered by acl.rt.launch_callback in the asynchronous scenario.

This API must be work with the following APIs to implement the callback function in asynchronous scenarios:
  1. Create a thread. Once acl.rt.process_report in the thread function is called to set the timeout interval (cyclic calling is required), acl.rt.launch_callback will deliver a callback task after a period of time.
  2. Call acl.rt.subscribe_report to bind the thread created in Step 1 to the stream. The callback task delivered by the stream is executed in the bound thread.
  3. Execute an asynchronous job (for example, an asynchronous inference job) on the specified stream.
  4. Define and implement the callback function, call acl.rt.launch_callback to deliver a callback task in the task queue of the stream, and trigger the thread to process the callback function subscribed by acl.rt.subscribe_report. Each time acl.rt.launch_callback is called, a callback task is delivered.
  5. Call acl.rt.unsubscribe_report to unsubscribe from threads and unbind threads from streams after all asynchronous tasks are executed.

Prototype

  • C Prototype
    1
    aclError aclrtProcessReport(int32_t timeout)
    
  • Python Function
    1
    ret = acl.rt.process_report(timeout)
    

Parameters

Parameter

Description

timeout

timeout: int, timeout interval, in milliseconds.

The value can be as follows:

  • -1: infinite waiting
  • Values greater than 0 (excluding 0): waiting period

Return Value

Return Value

Description

ret

Int, error code. 0 on success; else, failure.

Reference