CANN/pypto AXPY操作文档
pypto.axpy_【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto产品支持情况产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√Atlas A2 训练系列产品/Atlas A2 推理系列产品√功能说明执行 AXPY 操作y alpha * x y。该操作对 y 张量进行原地更新。计算公式如下$$ y_i \alpha \cdot x_i y_i $$重要说明AXPY 是原地操作y 张量会被直接修改。如果后续计算需要使用执行 AXPY 之前的原始 y 值请在调用 AXPY 前使用pypto.clone(y)进行备份。函数原型axpy_(y: Tensor, x: Tensor, alpha: Union[int, float] 1.0) - Tensor参数说明参数名输入/输出说明y输入/输出目标张量将被原地更新。支持的类型为Tensor。Tensor支持的数据类型为DT_FP32、DT_FP16、DT_BF16。不支持广播y 的形状必须能容纳 x 的广播结果即 y 的任意维度不能为 1除非 x 对应维度也为 1。不支持空TensorShape支持1-4维Shape Size不大于2147483647即INT32_MAX。x输入源张量可广播到 y 的形状。支持的类型为Tensor。Tensor支持的数据类型为DT_FP32、DT_FP16、DT_BF16。支持广播x 可以广播到 y 的形状如 x 形状为[m, 1]y 形状为[m, n]。不支持空TensorShape支持1-4维Shape Size不大于2147483647即INT32_MAX。alpha输入缩放因子用于对 x 进行缩放。支持的类型为int、float默认值为 1.0。alpha 的数据类型会自动转换为与 y 一致。返回值说明返回更新后的 y 张量与输入 y 共享同一内存地址Tensor 的数据类型与 y 相同Shape 与 y 相同。约束说明dtype 约束相同 dtype支持 DT_FP32 DT_FP32、DT_FP16 DT_FP16、DT_BF16 DT_BF16。混合 dtype仅支持 DT_FP32 (y) DT_FP16 (x)其他组合不支持。DT_BF16 在内部会转换为 DT_FP32 进行计算。广播约束y 张量不支持广播。如果 y 的某个维度为 1 而 x 对应维度不为 1将报错。x 张量支持广播到 y 的形状。Shape 约束y 和 x 的维度数必须相同1-4维。Format 约束y 和 x 的 Format 必须一致。原地更新注意由于 AXPY 是原地操作y 的原始值会被覆盖。如需保留原始 y 值请提前 cloney_backup pypto.clone(y) # 备份原始 y 值 y.axpy_(x, alpha2.0) # y 被原地更新 # 此时 y_backup 仍保留原始值可用于后续计算调用示例TileShape设置示例调用该 operation 接口前应通过set_vec_tile_shapes设置 TileShape。TileShape 维度应和输出一致。示例输入 y shape 为[m, n]x shape 为[m, n]或[m, 1]广播场景输出 shape 为[m, n]TileShape 设置为[m1, n1]则m1,n1分别用于切分输出的m,n轴。pypto.set_vec_tile_shapes(32, 32)接口调用示例基本用法y pypto.tensor([1, 3], pypto.DT_FP32) x pypto.tensor([1, 3], pypto.DT_FP32) y.axpy_(x, alpha2.0)结果示例如下输入数据 y: [[1.0 2.0 3.0]] 输入数据 x: [[2.0 3.0 4.0]] alpha: 2.0 输出数据 y: [[5.0 8.0 11.0]] # y 2.0 * x y广播场景y pypto.tensor([64, 64], pypto.DT_FP32) # y shape: [64, 64] x pypto.tensor([64, 1], pypto.DT_FP32) # x shape: [64, 1] (广播到 [64, 64]) y.axpy_(x, alpha1.5)保留原始 y 值y pypto.tensor([32, 32], pypto.DT_FP32) x pypto.tensor([32, 32], pypto.DT_FP32) # 如需使用原始 y 值提前备份 y_backup pypto.clone(y) # 执行 AXPYy 被原地更新 y.axpy_(x, alpha2.0) # y_backup 仍保留原始值可用于其他计算 diff pypto.sub(y, y_backup) # 计算 y 与原始值的差值混合精度FP32 FP16y pypto.tensor([32, 32], pypto.DT_FP32) # y 为 FP32 x pypto.tensor([32, 32], pypto.DT_FP16) # x 为 FP16 y.axpy_(x, alpha1.0) # 支持 FP32(y) FP16(x)BF16 dtypey pypto.tensor([32, 32], pypto.DT_BF16) x pypto.tensor([32, 32], pypto.DT_BF16) y.axpy_(x, alpha2.0) # BF16 在内部转换为 FP32 计算一维场景y pypto.tensor([128], pypto.DT_FP32) x pypto.tensor([128], pypto.DT_FP32) pypto.set_vec_tile_shapes(64) y.axpy_(x, alpha2.0)【免费下载链接】pyptoPyPTO发音: pai p-t-oParallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考