首页 > 编程语言 >cuda程序优化-3.通信简介

cuda程序优化-3.通信简介

时间:2024-06-17 20:13:11浏览次数:14  
标签:通信量 简介 通信 DBT cuda nvidia Ring 优化 节点

硬件结构

CPU<->GPU: 通过PCIe进行通信

GPU<->GPU: NVLink, 通过Switch桥接器辅助访问其他卡的HBM

多机通信: InfiniBand with GPU Direct RDMA(简称GDRDMA), 需要专用网卡

image-20240617171442849

卡间通信-Ring AllReduce

nvidia文档

1. 初始状态

image-20240617161007492

卡数: N(该图为4), 总数据量为K.

在RingAllreduce算法中, 会进行2*(N-1)次通信, 单节点通信总量为 N*K-N/K, 首先会把单卡上的数据平均分成N份

2. Scatter

在scatter阶段, 会进行(N-1)次通信, 每次通信量为 K/N, 单节点通信总量为 (K/N)*(N-1) = K-N/K

image-20240617161650471 image-20240617161702225 image-20240617161715518

3.Allgather

在Allgather阶段, 会进行(N-1)次通信, 每次通信量为K, 单节点通信总量为K*(N-1)

image-20240617161747225 image-20240617161826281 image-20240617161842178

多机通信-Double Binary Tree(DBT)

nvidia介绍文档

image-20240617172740143

以上图为例, 整个集群有32个节点需要进行AllReduce, 这里每个节点代表一台server, 这个算法中每个节点最多成为一次叶节点和另一颗树的非叶节点. (比如节点3, 在右边子树里, 接受来自1,5的reduce数据, 再发给父节点7, 而在左子树里作为叶节点把单机RingAllreduce的结果发送给2) 这种结构保证了每个节点都能从2个子节点接收和发送数据,也都能向2个父节点发送和接收数据。

在并行通信方面, 因为2棵树的数据来源不同, 使得可以2棵树的通信可以完全流水线并行, 在单棵树内当叶节点完成节点内的RingAllReduce+send出去后, 他自身就变成了完全空闲的状态, 得等多层父节点类似于fp/bp的方式把reduce结果给广播回来, 而在这段等待的时间内, 节点3可以作为另一颗树的父节点来参与数据通信. 这样就能很好的平衡每个节点的通信量和负载, 从而达到流水线并行的目的

image-20240617180324857

因为DBT的通信次数是O(logN)级别, 而Ring的通信次数是O(N)级别, 所以在大量节点的情况下会产生非常明显的性能收益, nvidia在博客里写到在2w+节点上, 用DBT的性能比Ring要好180+倍.

标签:通信量,简介,通信,DBT,cuda,nvidia,Ring,优化,节点
From: https://www.cnblogs.com/sunstrikes/p/18253121

相关文章

  • 大数据Kubernetes(简称K8s):架构、应用与优化
    文章目录大数据Kubernetes(简称K8s):架构、应用与优化一、介绍Kubernetes的历史和演进初始阶段发展阶段演进阶段K8s的核心概念和设计理念核心概念设计理念二、K8s架构深入解析架构、应用与优化主要组件和节点类型1.控制平面(Master节点)2.工作节点(Worker节点)控制平面和......
  • 从头到尾实现CIFAR-10图像分类:数据预处理到模型优化
    在深度学习领域,图像分类任务是基础也是极其重要的一部分,CIFAR-10数据集是这类问题的经典数据集之一。本文将详细介绍如何加载和预处理CIFAR-10数据集,构建简单和复杂的神经网络模型,以及通过改进模型结构来优化分类性能。一、处理CIFAR-10数据集:数据加载与预处理详解1、CIFAR-......
  • 分类预测 | Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测
    分类预测|Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测目录分类预测|Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料分类效果基本描述1.Matlab实现GWO-CNN-SVM灰狼冰算法优化卷积支持向量机......
  • 网站性能优化
    网页性能优化是为了提升网站的加载速度、响应速度和用户体验,从而更好地满足用户的需求,提高用户留存率和转化率。减少DOM操作在JavaScript中,添加到页面上的事件处理程序数量将直接关系到页面的整体运行性能,因为需要不断的与dom节点进行交互,访问dom的次数越多,引起浏览器重绘与重......
  • 【组播优化】基于蚁群算法求解QOS费用延时组播路由优化问题附Matlab代码
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • ETL可视化工具 DataX -- 简介( 一)
    引言DataX系列文章:ETL可视化工具DataX–安装部署(二)1.1DataX1.1.1DataX概览DataX是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX实现了包括MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、A......
  • Apache网页优化
    一、网页压缩1.网页压缩网站访问速度影响因素:应用程序响应速度、网络带宽、服务器性能、与客户端之间网络传输速度等。其中最重要的是=一个因素是Apache本身,因此提升Apache执行速度(使用网页压缩)是性价比最高的选择。(1)gzip介绍一种流行的文件压缩算法,大约可以减少70%以......
  • 史上最详细的轨迹优化教程-机器人避障及轨迹平滑实现(干货满满)
    有一些朋友问我到底如何用优化方法实现轨迹优化(避障+轨迹平滑等),今天就出一个干货满满的教程,绝对是面向很多工业化场景的讲解,为了便于理解,我选用二维平面并给出详细代码实现,三维空间原理相似。本教程禁止转载,主要是有问题可以联系我探讨,我的邮箱[email protected]下面......
  • 微软OneDrive简介:特点、应用场景、使用方法、注意事项
    还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。No.内容链接1Openlayers【入门教程】-......
  • AI大模型探索之路-实战篇:智能化IT领域搜索引擎之知乎网站数据获取(流程优化)
    系列篇章......