---
title: asdInterpWithCoeff
description: "| 硬件型号 | 支持情况 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/SiP/SIP_API_0076.html
sourcePath: /source/zh/canncommercial/900/API/SiP/SIP_API_0076.html
indexId: ceb4bc2bfcb8aa4f68f8be7f4eabf6d0a2b00d6cd17dcec328b0d3d724c97e4655
---
# asdInterpWithCoeff

#### 产品支持情况

| 硬件型号 | 支持情况 |
| --- | --- |
| Atlas 200I/500 A2 推理产品 | 不支持 |
| Atlas 推理系列产品 | 不支持 |
| Atlas 训练系列产品 | 不支持 |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | 支持 |
| Atlas A3 推理系列产品 / Atlas A3 训练系列产品 | 不支持 |


#### 功能描述

接口功能

- asdInterpWithCoeffGetWorkspaceSize：计算asdInterpWithCoeff算子所需的workspace大小。
  若需使用“asdInterpWithCoeff”算子，需先调用“asdInterpWithCoeffGetWorkspaceSize”接口获取计算所需workspace大小以及包含了算子计算流程的执行器，再调用“asdInterpWithCoeff”接口执行计算。

- asdInterpWithCoeff：支持向量插值操作能力，主要用于数据符号的信道估计，或者均衡系数插值。

计算公式

- asdInterpWithCoeff的计算公式：，即两个矩阵对应位置的元素相乘。

- 示例：
  输入“A”为：

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


  输入“B”为：

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


  调用“asdInterpWithCoeff”算子后，输出“result”为：

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


#### 函数原型

AspbStatus asdInterpWithCoeffGetWorkspaceSize(size_t &workspaceSize)

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


#### 参数说明

- asdInterpWithCoeffGetWorkspaceSize| 参数名称 | Input/Output | 类型 | 描述 |
| --- | --- | --- | --- |
| workspaceSize | Input | size\_t \* | asdInterpWithCoeff算子所需要的workspace。 |


- asdInterpWithCoeff| 参数名称 | Input/Output | 类型 | 描述 |
| --- | --- | --- | --- |
| x | Input | aclTensor \* | 公式中的B，Device侧的tensor，数据类型支持COMPLEX32、COMPLEX64，数据格式支持ND，shape为[batch，nRs, totalSubcarrier]。 |
| coefficient | Input | aclTensor \* | 公式中的A，Device侧的tensor，数据类型支持COMPLEX32、COMPLEX64，数据格式支持ND，shape为[batch, 14\-nRs, nRs]。 |
| y | Output | aclTensor \* | 公式中的result，Device侧的tensor，数据类型支持COMPLEX32、COMPLEX64，数据格式支持ND，shape为[batch，14\-nRs, totalSubcarrier]。 |
| stream | Input | void\* | NPU执行流。 |
| workspace | Input | void \* | asdInterpWithCoeff算子所需要的workspace。 |


- batch：波束数量，取值范围是1~1024 （6G时最大取值为16(终端的流数)*64(基站接收的波束数)=1024）。
- nRs：参考信号数，取值是2、4。
- nRB：资源块数，取值范围是1~2730 （每RB包含12个子载波，5G时取值范围是1~273, 6G时取值是5G的4倍到10倍）
- totalSubcarrier = nRB*12


#### 约束说明

- asdInterpWithCoeffGetWorkspaceSize：无
- asdMul

  - 支持的CANN版本为CANN8.0及以上。
  - 输入支持的数据类型为COMPLEX32、COMPLEX64。
  - 输出支持的数据类型为COMPLEX32、COMPLEX64。


#### 调用示例

算子的调用示例参见asdInterpWithCoeff。
