Function: get_function_addr

Applicable Products

Product

Supported (√/x)

Ascend 950PR/Ascend 950DT

√

Atlas A3 training products/Atlas A3 inference products

√

Atlas A2 training products/Atlas A2 inference products

√

Atlas training products

√

Atlas inference products

√

Atlas 200I/500 A2 inference products

√

Description

Obtains the start address of an operator on a device based on a kernel function handle. For operators that involve matrix and vector compute, an operator has two start addresses, which are executed on the Cube and Vector compute units, respectively. This API can be used to obtain the start addresses of operators on the Cube and Vector compute units. If the value of aivAddr obtained by calling this API is empty, the operator is executed only on the Cube Unit.

Prototype

  • C Prototype
    1
    aclError aclrtGetFunctionAddr(aclrtFuncHandle funcHandle, void **aicAddr, void **aivAddr)
    
  • Python Function
    1
    aic_addr, aiv_addr, ret = acl.rt.get_function_addr(func_handle)
    

Parameters

Parameter

Description

func_handle

Int, kernel function handle.

Return Values

Return Value

Description

aic_addr

Int, start address of an operator on the AI Core or Cube Core.

  • For the following products, the start address of an operator on the AI Core is returned.

    Atlas training products

    Atlas inference products

  • For the following products, the start address of an operator on the Cube Core is returned.

    Ascend 950PR/Ascend 950DT

    Atlas A3 training products/Atlas A3 inference products

    Atlas A2 training products/Atlas A2 inference products

    Atlas 200I/500 A2 inference products

aiv_addr

Int, start address of an operator on the Vector Core.

If the value of aivAddr obtained by calling this API is empty, the operator is not executed on the Vector Core.

ret

Int, 0 on success; else, failure.