news 2026/5/9 18:00:56

华为CANN/tensorflow alltoallvc集合通信

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为CANN/tensorflow alltoallvc集合通信

alltoallvc

【免费下载链接】tensorflowAscend TensorFlow Adapter项目地址: https://gitcode.com/cann/tensorflow

功能说明

集合通信alltoallvc操作接口。向通信域内所有rank发送数据(数据量可以定制),并从所有rank接收数据。

alltoallvc通过输入参数send_count_matrix传入所有rank的收发参数,与alltoallv相比,性能更优。

函数原型

def all_to_all_v_c(send_data, send_count_matrix, rank, fusion=0, fusion_id=-1, group="hccl_world_group")

参数说明

参数名输入/输出描述
send_data输入待发送的数据,TensorFlow的tensor类型。
针对Ascend 950PR/Ascend 950DT,支持数据类型:int8、uint8、int16、uint16、int32、uint32、int64、uint64、float16、float32、float64、bfp16。
针对Atlas A3 训练系列产品/Atlas A3 推理系列产品,支持数据类型:int8、uint8、int16、uint16、int32、uint32、int64、uint64、float16、float32、float64、bfp16。
针对Atlas A2 训练系列产品/Atlas A2 推理系列产品,支持数据类型:int8、uint8、int16、uint16、int32、uint32、int64、uint64、float16、float32、float64、bfp16。
针对Atlas 训练系列产品,支持数据类型:int8、uint8、int16、uint16、int32、uint32、int64、uint64、float16、float32、float64 。
send_count_matrix输入所有rank的收发参数,send_count_matrix[i][j]表示rank i发给rank j的数据量,基本单位是send_data_type的字节数。
例:send_data_type为int32,send_count_matrix[0][1]=1,表示rank0给rank1发送1个int32。
TensorFlow的tensor类型。tensor支持的数据类型为int64。
rank输入本节点的rank id,该id是group内的rank id,int类型。
fusion输入alltoallvc算子融合标识,int类型,支持以下取值:

- 0:标识网络编译时不会对该算子进行融合,即该alltoallvc算子不和其他alltoallvc算子融合。
- 2:网络编译时,会对alltoallvc算子按照相同的fusion_id进行融合,即“fusion_id”相同的alltoallvc算子之间会进行融合。说明:“fusion_id”相同的alltoallvc算子之间融合有一定的前提,算子需要在相同的通信域内,并且算子发送数据的数据类型需要相同。
fusion_id输入标识alltoallvc算子的融合id,int类型。
开启alltoallvc算子融合功能的场景下,需要配置该参数,取值范围[0, 0x7fffffff]。
group输入group名称,可以为用户自定义group或者"hccl_world_group"。
String类型,最大长度为128字节,含结束符。

返回值

对输入tensor执行完all_to_all_v_c操作之后的结果tensor。

约束说明

  1. 调用该接口的rank必须在当前接口入参group定义的范围内,输入的rank id有效且不重复,否则调用该接口会失败。

  2. 针对Atlas 训练系列产品,alltoallvc的通信域需要满足如下约束:

    单Server 1p、2p通信域要在同一个cluster内(Server内0-3卡和4-7卡各为一个cluster),单Server 4p、8p和多Server通信域中rank要以cluster为基本单位,并且Server间cluster选取要一致。

  3. 各节点输入的send_count_matrix要保持一致。

  4. alltoallvc操作的性能与NPU之间共享数据的缓存区大小有关,当通信数据量超过缓存区大小时性能将出现明显下降。若业务中alltoallvc通信数据量较大,建议通过配置环境变量HCCL_BUFFSIZE适当增大缓存区大小以提升通信性能,关于环境变量HCCL_BUFFSIZE的介绍可参见《环境变量参考》。

  5. 针对Atlas 训练系列产品,如果是单Server场景,要求网卡的状态是“up”,否则此接口会执行失败。

调用示例

from npu_bridge.hccl import hccl_ops send_data_tensor = tf.random_uniform((1, 3), minval=1, maxval=10, dtype=tf.float32) send_counts_matrix_tensor = tf.Variable( [[3,3],[3,3]], dtype=tf.int64) all_to_all_v_c = hccl_ops.all_to_all_v_c(send_data_tensor, send_counts_matrix_tensor, 0)

【免费下载链接】tensorflowAscend TensorFlow Adapter项目地址: https://gitcode.com/cann/tensorflow

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 17:59:19

图神经网络与强化学习融合:复杂网络智能决策实战指南

1. 项目概述:当复杂网络遇见智能决策最近几年,我身边搞生态建模、生物信息分析,甚至做城市规划的朋友,都开始频繁地跟我聊起两个词:图神经网络和强化学习。这让我意识到,一个非常有意思的技术融合正在发生。…

作者头像 李华
网站建设 2026/5/9 17:58:18

CANN/ops-nn HardSwish算子API

aclnnHardswish&aclnnInplaceHardswish 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 📄 查看源码 产品支持情况 产品是否支持Ascend 950PR/Asce…

作者头像 李华
网站建设 2026/5/9 17:58:09

AI与后量子时代:下一代网络DoS威胁的智能协同防御体系构建

1. 项目概述:当AI与量子计算重塑攻防战场拒绝服务攻击,这个在网络安全领域盘踞了数十年的“老对手”,其核心逻辑从未改变:用海量的无效请求淹没目标,使其无法为合法用户提供服务。但今天,我们面对的DoS攻击…

作者头像 李华
网站建设 2026/5/9 17:57:52

交互式文本到SQL系统的核心技术与实践指南

1. 交互式文本到SQL系统概述交互式文本到SQL系统是近年来自然语言处理与数据库技术交叉融合的前沿方向。与传统的单轮文本到SQL任务不同,交互式系统通过多轮对话逐步澄清用户模糊的查询意图,最终生成准确的SQL查询语句。这种交互模式更贴近真实场景&…

作者头像 李华