Swap算子

算子概述

Swap 算子实现了两个向量对应元素的交换操作,属于纯数据搬运类算子,不涉及任何数值计算。

数学表达式:

x <-> y

包含以下接口:

接口名 功能简述
aclblasSswap 实数向量交换
aclblasCswap 复数向量交换

算子执行接口

aclblasSswap

产品支持情况

  • Ascend 950PR / Ascend 950DT:支持
  • Atlas A3 训练系列产品 / Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品 / Atlas A2 推理系列产品:支持

函数原型

aclblasStatus_t aclblasSswap(aclblasHandle_t handle, const int64_t n, uint8_t* x, const int64_t incx, uint8_t* y, const int64_t incy)

参数说明

参数名 输入/输出 参数类型 说明
handle 输入 aclblasHandle_t ops-blas 库上下文句柄,携带 stream,Host 内存
n 输入 const int64_t 向量中参与交换的元素个数,Host 内存
x 输入/输出 uint8_t* 指向 float 向量的 device 指针,交换后包含原 y 的元素,Device 内存
incx 输入 const int64_t 向量 x 中相邻元素之间的步长,Host 内存
y 输入/输出 uint8_t* 指向 float 向量的 device 指针,交换后包含原 x 的元素,Device 内存
incy 输入 const int64_t 向量 y 中相邻元素之间的步长,Host 内存

约束说明

  • n <= 0 时直接返回成功,不执行任何操作
  • handle 不可为 nullptr
  • x、y 不可为 nullptr
  • incx != 0, incy != 0

aclblasCswap

产品支持情况

  • Ascend 950PR / Ascend 950DT:不支持
  • Atlas A3 训练系列产品 / Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品 / Atlas A2 推理系列产品:支持

函数原型

aclblasStatus_t aclblasCswap(aclblasHandle_t handle, const int64_t n, uint8_t* x, const int64_t incx, uint8_t* y, const int64_t incy)

参数说明

参数名 输入/输出 参数类型 说明
handle 输入 aclblasHandle_t ops-blas 库上下文句柄,携带 stream,Host 内存
n 输入 const int64_t 向量中的复数元素个数,Host 内存
x 输入/输出 uint8_t* 指向复数向量的 device 指针,交换后包含原 y 的元素,Device 内存
incx 输入 const int64_t x 中连续元素之间的步长,Host 内存
y 输入/输出 uint8_t* 指向复数向量的 device 指针,交换后包含原 x 的元素,Device 内存
incy 输入 const int64_t y 中连续元素之间的步长,Host 内存

约束说明

  • n <= 0 时直接返回成功,不执行任何操作
  • incx != 0, incy != 0