asdInterpWithCoeff

Applicable Products

Hardware Model

Supported or Not

Atlas 200I/500 A2 inference products

Not supported

Atlas inference products

Not supported

Atlas training products

Not supported

Atlas A2 training products/Atlas A2 inference products

Supported

Atlas A3 training products/Atlas A3 inference products

Not supported

Function Description

API function

  • asdInterpWithCoeffGetWorkspaceSize: calculates the workspace size required by the asdInterpWithCoeff operator.

    To use the asdInterpWithCoeff operator, call the asdInterpWithCoeffGetWorkspaceSize API to obtain the workspace size required for calculation and the executor that contains the operator calculation process, and then call the asdInterpWithCoeff API to perform calculation.

  • asdInterpWithCoeff: supports vector interpolation, which is mainly used for channel estimation of data symbols or equalization coefficient interpolation.

Formula:

  • The calculation formula of asdInterpWithCoeff is . That is, the elements in the corresponding positions of two matrices are multiplied.
  • Example:

    Input A:

    [ [ 1+1i, 1+1i ],
      [ 2+2i, 2+2i ] ]

    Input B:

    [ [ 1+1i, 1+1i ],
      [ 2+2i, 2+2i ] ]

    After the asdInterpWithCoeff operator is called, the output result is as follows:

    [ [ 0+2i, 0+2i ],
      [ 0+8i, 0+8i ] ]

Function Prototype

AspbStatus asdInterpWithCoeffGetWorkspaceSize(size_t &workspaceSize)

AspbStatus asdInterpWithCoeff(const aclTensor *x, const aclTensor *coefficient, aclTensor *y, void *stream, void *workSpace = nullptr)

Parameter Description

  • asdInterpWithCoeffGetWorkspaceSize

    Parameter

    Input/Output

    Type

    Description

    workspaceSize

    Input

    size_t *

    Workspace required by the asdInterpWithCoeff operator.

  • asdInterpWithCoeff

    Parameter

    Input/Output

    Type

    Description

    x

    Input

    aclTensor *

    B in the formula, tensor on the device. The data type can be COMPLEX32 or COMPLEX64, the data format can be ND, and the shape is [batch, nRs, totalSubcarrier].

    coefficient

    Input

    aclTensor *

    A in the formula, tensor on the device. The data type can be COMPLEX32 or COMPLEX64, the data format can be ND, and the shape is [batch, 14-nRs, nRs].

    y

    Output

    aclTensor *

    result in the formula, tensor on the device. The data type can be COMPLEX32 or COMPLEX64, the data format can be ND, and the shape is [batch, 14-nRs, totalSubcarrier].

    stream

    Input

    void*

    NPU execution stream.

    workspace

    Input

    void *

    Workspace required by the asdInterpWithCoeff operator.

  • batch: number of beams. The value ranges from 1 to 1024. When at the 6 GHz frequency band, the system supports a maximum of 1024 beams (16 streams of the terminal x 64 beams received by the base station).
  • nRs: number of reference signals. The value can be 2 or 4.
  • nRB: number of resource blocks. The value ranges from 1 to 2730. (Each RB contains 12 subcarriers. The value ranges from 1 to 273 in 5G environments. In 6G environments, the value range in 5G environments is expanded by 4 to 10 times.)
  • totalSubcarrier = nRB*12

Constraints

  • asdInterpWithCoeffGetWorkspaceSize: none
  • asdMul
    • The supported CANN version is CANN 8.0 or later.
    • The supported input data types are COMPLEX32 and COMPLEX64.
    • The supported output data types are COMPLEX32 and COMPLEX64.

Calling Example

For details about the operator calling example, see asdInterpWithCoeff.