当前位置: 首页 > article >正文

CANN/TensorFlow HCCL代码示例

代码示例【免费下载链接】tensorflowAscend TensorFlow Adapter项目地址: https://gitcode.com/cann/tensorflow该代码示例针对TensorFlow 1.15网络使用默认的全局通信域进行通信。假设代码文件命名为hccl_test.py。import tensorflow as tf import sys import os import numpy as np import time import argparse from npu_bridge.npu_init import * def tensor_type(list1, type): tensor1[] tensor1 tf.Variable(list1, dtypetf.int64) return tensor1 def numpy_type(type): input_type np.int64 return input_type def hccl_operator(rank_id, root_rank, rank_size, group, dtype, data): tensors{} # allreduce list_1[sum,max,min,prod] for i in range(len(list_1)): exec(list_1[sum,max,min,prod]) exec(element_liststr(i)[1 for i in range(data)]) exec(tensor_str(i) tensor_type(element_liststr(i), dtype)) exec(tensor_tmpstr(i) tf.add(tensor_str(i), rank_id 1)) exec(new_tensorstr(i) tf.reshape(tensor_tmpstr(i), [rank_size, -1])) exec(tensors[\allreduce_list_1[i]\] hccl_ops.allreduce(new_tensorstr(i),\list_1[i]\, groupgroup)) # broadcast exec(list_test np.ones((1,data))) exec(tensor_test tensor_type(list_test, dtype)) exec(tensor_z tf.add(tensor_test, rank_id 1)) exec(new_tensor10 tf.reshape(tensor_z, [rank_size, -1])) exec(test_list1[new_tensor10]) exec(tensors[\broadcast\] hccl_ops.broadcast(test_list1, root_rank, groupgroup)) # allgather exec(tensors[\gather_tensor\] hccl_ops.allgather(new_tensorstr(1), rank_size, groupgroup)) # reducescatter for i in range(len(list_1)): exec(list_1[sum,max,min,prod]) exec(element_liststr(i5)[1 for i in range(data)]) exec(tensor_str(i5) tensor_type(element_liststr(i5), dtype)) exec(tensor_tmpstr(i5) tf.add(tensor_str(i5), rank_id 1)) exec(new_tensorstr(i5) tf.reshape(tensor_tmpstr(i5), [rank_size, -1])) exec(tensors[\reducescatter_list_1[i]\] hccl_ops.reduce_scatter(new_tensorstr(i5),\list_1[i]\, rank_size, groupgroup)) # reduce for i in range(len(list_1)): exec(list_1[sum,max,min,prod]) exec(element_liststr(i10)[1 for i in range(data)]) exec(tensor_str(i10) tensor_type(element_liststr(i10), dtype)) exec(tensor_tmpstr(i10) tf.add(tensor_str(i10), rank_id 1)) exec(new_tensorstr(i10) tf.reshape(tensor_tmpstr(i10), [rank_size, -1])) exec(tensors[\reduce_list_1[i]\] hccl_ops.reduce(new_tensorstr(i10),\list_1[i]\, root_rank, groupgroup)) input_type numpy_type(dtype) data1_shape data*rank_size (rank_size-1)*rank_size data1_ np.arange(1,data1_shape1).astype(input_type) check_data_shape (data rank_id) * rank_size check_data_ np.arange(1,check_data_shape1).astype(input_type) send_data tf.Variable(data1_) check_data tf.Variable(check_data_) send_counts_list [datai for i in range(rank_size)] send_counts tf.constant(send_counts_list,dtypetf.int64) send_displacements tf.constant([rank_id*(datai) for i in range(rank_size)],dtypetf.int64) # 静态shape recv_counts和recv_displacements必须使用tf.constant recv_counts tf.constant([rank_iddata for _ in range(rank_size)],dtypetf.int64) recv_displacements tf.constant([(rank_iddata)*i for i in range(rank_size)],dtypetf.int64) alltoallv_result hccl_ops.all_to_all_v(send_data,send_counts,send_displacements,recv_counts,recv_displacements,groupgroup) tensors[alltoallv_tensor] alltoallv_result tensors[check_tensors] check_data return tensors def main(): config {} hccl_session_config tf.ConfigProto() custom_op hccl_session_config.graph_options.rewrite_options.custom_optimizers.add() custom_op.name NpuOptimizer custom_op.parameter_map[use_off_line].b True npu_init npu_ops.initialize_system() npu_shutdown npu_ops.shutdown_system() with tf.Session(confighccl_session_config) as sess: # 进行集合通信初始化 sess.run(npu_init) # 获取group内rank数量 config[rank_size] get_rank_size() # 获取device在group中对应的rank序号 config[rank_id] get_rank_id() try: # 下发集合通信算子 tensors hccl_operator(config[rank_id], 0, config[rank_size], hccl_world_group, float32, 1024) # tf框架全局变量初始化 init_var tf.global_variables_initializer() sess.run(init_var) # 执行训练此处仅为示例 v sess.run(tensors) tf.logging.info(v) except Exception as e: print(ERROR : %s % e) print(train fail) else: print(train success) # 关闭session sess.run(npu_shutdown) if __name__ __main__: # 开启日志记录 tf.logging.set_verbosity(tf.logging.INFO) # 执行main函数 main()【免费下载链接】tensorflowAscend TensorFlow Adapter项目地址: https://gitcode.com/cann/tensorflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

CANN/TensorFlow HCCL代码示例

代码示例 【免费下载链接】tensorflow Ascend TensorFlow Adapter 项目地址: https://gitcode.com/cann/tensorflow 该代码示例针对TensorFlow 1.15网络,使用默认的全局通信域进行通信。 假设代码文件命名为hccl_test.py。 import tensorflow as tf import…...

基于MPC的以太坊RPC服务:构建去中心化签名与私钥安全管理方案

1. 项目概述:一个去中心化的MPC签名服务最近在跟几个做链上资管和DeFi协议的朋友聊天,大家都在头疼同一个问题:如何安全地管理多签钱包的私钥。传统的多签方案,比如Gnosis Safe,虽然解决了单点故障,但每次交…...

从零搭建一个S3兼容的私有云盘:我用MinIO+Docker的完整实践与踩坑记录

从零搭建一个S3兼容的私有云盘:我用MinIODocker的完整实践与踩坑记录 在个人开发者和小团队的项目中,数据存储需求往往介于简单的本地文件系统和复杂的云服务之间。我们既希望拥有云存储的灵活性和可扩展性,又需要保持数据的私有性和成本可控…...

OpenAI发布MRC超算协议,重塑10万GPU集群通信,AMD等合作推进

每周有9亿人在使用ChatGPT,支撑其运转的系统正在成为核心基础设施。要让AI变得更聪明,企业必须把成千上万块芯片连接在一起协同工作。而芯片之间的数据传输速度直接决定了整个系统的计算效率。OpenAI联合AMD、博通、英特尔、微软和英伟达,通过…...

CANN ops-math Fill算子

Fill 【免费下载链接】ops-math 本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-math 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练系列产品/Atlas A3 推理系列产品√A…...

别再让Langchain卡住你的前端!一个FastAPI + SSE的保姆级流式输出教程(附完整可运行代码)

FastAPI SSE实战:打破Langchain流式输出到前端的最后屏障 当ChatGLM3生成的文字在前端页面逐字跳动时,会议室突然安静了。团队花了三周时间尝试解决的"伪流式"问题,此刻被20行Python代码彻底终结。这不是魔法,而是Serv…...

ARGO:本地部署AI智能体,打造私有化多智能体协作平台

1. 项目概述:ARGO,你的本地超级AI智能体如果你和我一样,对AI智能体(Agent)的潜力感到兴奋,但又对数据隐私、高昂的API成本以及云端服务的不可控性心存疑虑,那么ARGO的出现,可能正是我…...

CANN ATC模型转换指南

ATC模型转换指南 【免费下载链接】cann-recipes-harmony-infer 本项目为鸿蒙开发者提供基于CANN平台的业务实践案例,方便开发者参考实现端云能力迁移及端侧推理部署。 项目地址: https://gitcode.com/cann/cann-recipes-harmony-infer ATC是异构计算架构CANN…...

基于AI的自动化代理框架:用自然语言驱动网页操作实践

1. 项目概述与核心价值最近在折腾一些自动化流程,发现很多重复性的网页操作和表单填写工作特别耗时。比如,每天要登录好几个后台系统查看数据、手动下载报表,或者需要定期在某个网站上提交固定的信息。这些操作本身不复杂,但架不住…...

CANN/pypto的expand_clone函数

# pypto.expand_clone 【免费下载链接】pypto PyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atl…...

对比自行维护多个 API 密钥使用 Taotoken 的管理效率提升

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比自行维护多个 API 密钥使用 Taotoken 的管理效率提升 在开发基于大模型的应用时,团队或个人开发者常常需要接入多个…...

告别官方镜像站卡顿:国内镜像源加速下载树莓派系统(Raspberry Pi OS)与常用软件包

告别官方镜像站卡顿:国内镜像源加速下载树莓派系统与常用软件包 对于国内树莓派用户来说,最头疼的莫过于从官方源下载系统镜像和更新软件包时的漫长等待。想象一下,你兴冲冲地买来树莓派准备大展身手,却在第一步——下载系统镜像时…...

CANN/ops-cv算子跨平台迁移指导

算子跨平台迁移指导 【免费下载链接】ops-cv 本项目是CANN提供的图像处理、目标检测相关的算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-cv 本指南介绍算子在多平台间迁移的适配要点与方案。以算子从Atlas A2系列迁移至Ascend …...

基于TwoAI框架构建多智能体对话系统:原理、配置与实战

1. 项目概述:当两个AI开始对话最近在折腾AI应用开发的朋友,可能都遇到过类似的场景:你想测试一个智能客服的对话流,或者想模拟用户与AI助手的多轮交互,但总是一个人扮演两个角色,在同一个聊天窗口里自问自答…...

CANN/ops-transformer FlashAttentionScore算子

FlashAttentionScore 【免费下载链接】ops-transformer 本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-transformer 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训练…...

数据科学实战:从零构建高质量数据集资源库与预处理指南

1. 项目概述:为什么你需要一个专属的“数据弹药库”在数据科学、机器学习乃至更广阔的AI领域摸爬滚打这些年,我最大的体会是:想法不值钱,数据才是硬通货。你可能有绝妙的算法构思,有清晰的业务逻辑,但如果没…...

【AI原生应用安全红宝书】:SITS2026框架下7大高危攻击面与零信任加固路径

更多请点击: https://intelliparadigm.com 第一章:SITS2026框架演进与AI原生安全范式跃迁 SITS2026(Secure Intelligence Trust Stack 2026)标志着安全架构从“防御叠加”向“智能内生”的根本性转变。其核心不再依赖边界检测与规…...

5大核心技术揭秘:Seraphine如何通过LCU API重塑英雄联盟游戏体验

5大核心技术揭秘:Seraphine如何通过LCU API重塑英雄联盟游戏体验 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 在竞技游戏的激烈对抗中,信息差往往是决定胜负的关键因素。Seraphine作…...

别再只盯着告警了:从Pikachu靶场搭建看SRE可观测性的实战落地(含日志与调用链配置)

从Pikachu靶场搭建看SRE可观测性的实战落地 当我们在本地搭建一个Web漏洞练习平台时,往往只关注漏洞利用本身,却忽略了服务运行时的状态感知。最近在配置Pikachu靶场时,我尝试将SRE的可观测性理念应用到这个微型PHP服务中,意外发现…...

SAP ABAP开发避坑:WS_DELIVERY_UPDATE函数调用时,COMMIT和NO_MESSAGES_UPDATE参数到底怎么设?

SAP ABAP开发实战:WS_DELIVERY_UPDATE函数参数组合的黄金法则 在SAP物流模块开发中,WS_DELIVERY_UPDATE函数就像一把瑞士军刀——功能强大但参数复杂。许多ABAP开发者第一次接触这个函数时,往往会被其十余个控制参数弄得晕头转向。更棘手的是…...

6G+AI重塑医疗影像:云边端协同架构与智能诊断实践

1. 项目概述:当6G遇见AI,磁共振影像的“超进化”最近和几位三甲医院影像科的朋友聊天,他们都在为一个问题头疼:磁共振(MRI)检查量越来越大,一个病人动辄几十个序列、上百GB的原始数据&#xff0…...

基于AgentScope与ReMe构建开源AI助手工作站CoPaw实战指南

1. 项目概述:一个开源的个人AI助手工作站最近在折腾AI智能体,发现了一个挺有意思的开源项目,叫CoPaw。简单来说,你可以把它理解成一个“个人AI助手工作站”。它不是某个单一的聊天机器人,而是一个能让你在本地或云端部…...

CANN可变长FlashAttentionV2

aclnnFlashAttentionVarLenScoreV2 【免费下载链接】ops-transformer 本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-transformer 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√…...

AI for Science中的分布外泛化:从理论到实践的挑战与应对

1. 项目概述:当AI遇见科学,泛化能力成为“卡脖子”难题最近几年,AI for Science(科学智能)火得一塌糊涂,从预测蛋白质结构的AlphaFold,到加速新材料发现的生成模型,AI正在成为继理论…...

WeChatExporter终极指南:5步解锁你的微信聊天记录备份神器

WeChatExporter终极指南:5步解锁你的微信聊天记录备份神器 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾担心重要聊天记录丢失?或是需要…...

基于语义搜索的代码索引工具:从原理到部署实战

1. 项目概述:一个为代码库建立智能索引的利器最近在折腾个人项目和团队协作时,我遇到了一个挺普遍但很头疼的问题:随着代码库规模越来越大,文件越来越多,想要快速找到一个特定的函数定义、某个类的引用,或者…...

联邦学习与Transformer融合:破解数据孤岛下的视觉与安全AI落地难题

1. 引言:当AI前沿技术遇见现实世界的“硬骨头”如果你和我一样,长期混迹在AI研究和工业落地的交叉地带,就会发现一个有趣的现象:每年都有大量炫酷的新模型、新范式在顶会上涌现,但真正能走出论文,在计算机视…...

CANN驱动LLC性能参数查询

dcmi_get_device_llc_perf_para 【免费下载链接】driver 本项目是CANN提供的驱动模块,实现基础驱动和资源管理及调度等功能,使能昇腾芯片。 项目地址: https://gitcode.com/cann/driver 函数原型 int dcmi_get_device_llc_perf_para(int card_id…...

Kubernetes Job与CronJob深度解析与实践

Kubernetes Job与CronJob深度解析与实践 Job与CronJob概述 在Kubernetes中,Job用于运行一次性任务,而CronJob则用于运行定时任务。本文将深入探讨Job和CronJob的核心概念、配置方法和最佳实践。 Job核心概念 1. 基本Job配置 apiVersion: batch/v1 kind: …...

苹果神经引擎(ANE)上的LLM全栈解决方案Orion解析

1. Orion系统概述:苹果神经引擎上的LLM全栈解决方案Orion是一个突破性的开源系统,它首次实现了在苹果神经引擎(Apple Neural Engine, ANE)上完整的LLM训练和推理流程。作为苹果设备内置的专用神经网络处理器,ANE自A11 Bionic芯片开始就存在于…...