昇腾社区首页
中文
注册
开发者
下载

Dot

产品支持情况

硬件型号

支持情况

Atlas 200I/500 A2 推理产品

不支持

Atlas 推理系列产品

不支持

Atlas 训练系列产品

不支持

Atlas 800I A2 推理产品 / Atlas A2 训练系列产品

支持

Atlas A3 推理系列产品 / Atlas A3 训练系列产品

支持

功能描述

接口功能

  • asdBlasMakeDotPlan:初始化该句柄对应的Dot算子配置。
  • asdBlasSdot:计算两个实数向量的点积。
  • asdBlasCdotu:计算两个复数向量的点积。
  • asdBlasCdotc:计算一个复数向量取共轭后和另一个复数向量的点积。

计算公式

  • asdBlasSdot的计算公式:

    • 示例:

      输入“x”为:

      [1.0, 2.0]

      输入“y”为:

      [1.0, 2.0]

      调用“Sdot”算子后,

      输出“result”为:

      5.0
  • asdBlasCdotu的计算公式:

    其中,x[i]和y[i]是复数。

    • 示例:

      输入“x”为:

      [ 0.1554+0.8840j, -0.3564-0.2552j]

      输入“y”为:

      [-0.1404+1.3380j, -0.4876+0.1842j]

      调用“Cdotu”算子后,

      输出“result”为:

      -0.9838+0.1425j
  • asdBlasCdotc的计算公式:

    其中,x[i]和y[i]是复数,conj共轭操作。

    • 示例:

      输入“x”为:

      [ 0.1554+0.8840j, -0.3564-0.2552j]

      输入“y”为:

      [-0.1404+1.3380j, -0.4876+0.1842j]

      调用“Cdotc”算子后,

      输出“result”为:

      1.2877-0.1420j

函数原型

  • AspbStatus asdBlasMakeDotPlan(asdBlasHandle handle)
  • AspbStatus asdBlasSdot(asdBlasHandle handle, const int64_t n, aclTensor *x, const int64_t incx, aclTensor *y,const int64_t incy, aclTensor *result)
  • AspbStatus asdBlasCdotu(asdBlasHandle handle, const int64_t n, aclTensor *x, const int64_t incx, aclTensor *y,const int64_t incy, aclTensor *result)
  • AspbStatus asdBlasCdotc(asdBlasHandle handle, const int64_t n, aclTensor *x, const int64_t incx, aclTensor *y,const int64_t incy, aclTensor *result)

参数说明

  • asdBlasMakeDotPlan

    参数名称

    Input/Output

    类型

    描述

    handle

    Input

    asdBlasHandle

    dot算子的句柄。

  • asdBlasSdot & asdBlasCdotu & asdBlasCdotc

    参数名称

    Input/Output

    类型

    描述

    handle

    Input

    asdBlasHandle

    dot算子的句柄。

    n

    Input

    const char

    向量x或向量y中的元素个数。

    x

    Input

    aclTensor *

    公式中的x,Device侧的Tensor,数据格式支持ND,shape为[n]。

    • Sdot下数据类型支持FLOAT32;
    • Cdotc、Cdotu下数据类型支持COMPLEX64。

    incx

    Input

    const int64_t

    向量x相邻元素间的内存地址偏移量(当前约束为1)。

    y

    Input

    aclTensor *

    公式中的y,Device侧的Tensor,数据格式支持ND,shape为[n]。

    • Sdot下数据类型支持FLOAT32;
    • Cdotc、Cdotu下数据类型支持COMPLEX64。

    incy

    Input

    const int64_t

    向量y相邻元素间的内存地址偏移量(当前约束为1)。

    result

    Output

    aclTensor *

    公式中的result,Device侧的Tensor,数据类型支持FLOAT32,只包含一个元素,数据格式支持ND,shape为[1]。

返回值说明

返回值相关说明参见返回值

约束说明

  • asdBlasMakeDotPlan:无。
  • asdBlasSdot
    • 输入的元素个数n当前覆盖支持[1,6.71e+06];
    • 算子输入shape为[n],输出shape为[1];
    • 算子实际计算时,不支持ND高维度运算(不支持维度≥3的运算)。
  • asdBlasCdotu & asdBlasCdotc
    • 输入的元素个数n当前覆盖支持[1,6.71e+06];
    • 算子输入shape为[n],输出shape为[1];
    • 算子实际计算时,不支持ND高维度运算(不支持维度≥3的运算)。

调用示例

算子的调用示例参见Dot