- 博客(71)
- 资源 (32)
- 问答 (1)
- 收藏
- 关注
原创 【AI大模型学习】Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM
所以本文通过组合张量、流水线和数据并行,实现扩展到数千个 GPU的大模型训练,提出了一种新颖的交错流水线调度,可以将吞吐量提高 10% 以上,并且内存占用与现有方法相当。(a) 张量并行所需的全归约通信必须经过服务器间的连接,通信会消耗大量时间,因为多机通讯明显比单机内GPU的通信更慢(尤其是单机内还有nvlink这样的东西)因为随着GPU和CPU的数量增多,通信量的增长却不是线性的。所以本文的目的是提出一个DP\PP和TP相结合的并行方法(简称为 PTD-P),提升训练吞吐量,同时保留严格的优化器语义。
2024-03-26 19:20:03 381
原创 MPIRUN 31280 segmentation fault (core dumped)
mpich和openmpi的文件可能不太一样,stackoverflow上面给出的内容有时候和nccl无关。用mpirun运行多节点nccl时有时候出现hang死,而且是指定了mpi_host的情况。nccl正常,各节点通信正常,但是一跑mpirun就卡死,core dump。不再指定mpi_host.
2024-03-20 19:32:56 148
原创 【分布式】NCCL Split Tree kernel内实现情况 - 06
先掠过Tree算法在拓扑方面以及树的生成方面是如何实现的,本期主要讲kernel内部的情况。先放上2.11.4部分的tree,后续增添2.18版本中nccl的改动,以及rccl的处理。如果你看过其他的一些文档,应该知道double binary tree的一些构造。即我们可以将tree分为三类,朴素的tree、double binary tree和split tree、balanced tree。
2024-03-07 19:56:58 1226 3
原创 【乱写的】收集一些和GPU以及NCCL相关的定义(持续更新)
SHArP 论文,其实没必要细看。简单来说,SHArP是一个软硬结合的通信协议,实现在了NVIDIA Quantum HDR Switch的ASIC里。它可以把从各个node收到的数据进行求和,并发送回去。再说的通俗一点,通过使用SHArP,我们把求和(聚合/Reduce,随便怎么叫)的操作交由交换机完成了。这种做法,业界叫做In-network Computing(在网计算)。用术语展开来讲,就是将计算卸载到网络中进行。更多相关的知识可以看这个英伟达的汇报。
2024-01-09 18:46:03 880
原创 【分布式】小白看Ring算法 - 03
NCCL(NVIDIA Collective Communications Library)是由NVIDIA开发的一种用于多GPU间通信的库。NCCL的RING算法是NCCL库中的一种通信算法,用于在多个GPU之间进行环形通信。RING算法的基本思想是将多个GPU连接成一个环形结构,每个GPU与相邻的两个GPU进行通信。数据沿着环形结构传递,直到到达发送方的位置。这样的环形结构可以有效地利用GPU之间的带宽,提高通信的效率。RING算法的步骤如下:fill:#333;color:#333;
2023-11-23 20:46:20 1851 1
原创 【灌水】自动跑团机器人
除此之外,还要附上调查人的个人信息,因此个人信息由用户填写,每次填写完毕保存后隐藏相关按钮。简单实现了追书人的基本流程,最后的活动和结局经过一定缩减,因为chatgpt输入的prompt数量太大会反应很慢。这他妈是什么idea收集器,你们就是靠这个收集idea吗,那我就说一个绝对不赚钱的了。当使用者回应时,根据关键词加载对应调查地点的信息,加入prompt,删除调查动作。追书人的调查阶段一共有6个调查地点,建立包含结束调查在内的7个调查动作。每次到了一定的节点,就加载相应的promtp。
2023-11-23 19:08:54 289
原创 【分布式】大模型分布式训练入门与实践 - 04
数据并行DDP\模型并行\Pipeline并行可以看到,G-pipe将1个mini-batch切分成多个micro-batch(上图是8),前向时每个micro-batch从device1流向device4,DDP就是这么做的。
2023-10-23 14:30:47 1669
原创 【分布式】入门级NCCL多机并行实践 - 02
大模型和分布式训练对数据的吞吐量以及并行度都有很高的要求,NCCL就是在这个背景下诞生的。如果你是一个只会写写Python,调用PyTorch和Horovod的算法萌新,可能对于分布式底层的东西不太了解,在下岗热潮中被主管逼着转变成算子或者通讯库的搬砖工,就会像我一样两眼蒙蔽。因此本文只对自己踩到的坑做一个整理,如果有说错的地方,那就是我说错了。以PyTorch为例,其中spmd接口下的相关定义是用于处理分布式的。但主要是处理单机多CPU情况,因此我们今天只考虑多机(多节点)情况。其中用于实现多节点分布式的
2023-10-20 17:53:03 3001
原创 自编译的pytorch出现OSError: libmkl_intel_lp64.so.1: cannot open shared object file: No such file or direct
自编译的pytorch出现OSError: libmkl_intel_lp64.so.1: cannot open shared object file: No such file or direct我用安装了mkl以后还是出错。因此查找一下so的位置发现在我的conda内部已经有了, 所以直接链接过去.这个问题常见于使用conda新环境去编译pytorch.
2022-12-05 12:09:11 602
原创 读书笔记 - CUDA编程指南5.0 + 练习编译运行 01
前言:会根据CUDA编程指南一点点更新,欢迎讨论。图形处理的需求,推动可编程图形处理器(GPU)向着高并行度和多线程演化。从图形处理走向通用并行计算。GPU和CPU浮点计算能力的差异: GPU并行度高,晶体管更多用于数据处理而非缓存和流控。数据并行处理:将数据映射到并行处理的线程上,并进行加速。CUDA:一种通用并行计算架构CUDA核心的三个重点抽象(能提供犀利的的数据、任务并行):线程组层次、共享存储器和栅栏同步threadIdx是一个有三个分量的向量(1d,2d,3d)以上为两段代码,分别是一维向量和
2022-06-19 22:42:32 922
原创 【tensorflow】‘BatchDataset‘ object has no attribute ‘make_one_shot_iterator‘
tensorflow v2下运行tf1的sess, dataset迭代器无法使用
2022-05-18 17:59:26 3137 3
原创 【读书笔记】 - 《流畅的python》03-字典和集合
字典和集合字典dict类型是python语言的基石,散列表是字典性能出众的根本原因散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。泛映射类型c
2022-05-05 09:43:31 144 1
原创 【其他笔记】 双屏显示分辨率低下、屏幕闪烁、暗沉等问题。
1、我在以前学校的电脑,设置单屏的时候dell屏幕很亮,双屏(hdmi和VGA线)时,dell屏幕会变暗。这个时期我链接的主机,有一张N卡,所以一个屏幕接到显卡上,另一个接到主板上。解决方法:下载显卡对应的管理软件,例如Nvidia控制面板,在这里面调整,就可以改善dell屏幕发黄、暗沉的问题。2、现在还是用dell屏幕和aoc设置双屏串联,只不过这次是连接到笔记本上,没有独显。同时dell屏幕接type-c口到笔记本上,再用dp线连接dell屏幕和aoc屏幕,dell接dp-out,aoc接dp.
2022-03-10 11:04:35 6050 1
原创 【其他笔记】 “unable to start ssh-agent service, error :1058“
ssh-agent启动失败问题
2022-03-09 19:51:07 2636 1
原创 【读书笔记】 - 《流畅的python》02-数据结构(列表、数组、元组、切片、队列)
容器序列:list、tuple、collections.deque这些序列可以存放不同类型的数据。扁平序列:str、bytes、bytearray、memoryview和array.array只能容纳一种类型。里面是一段连续的内存空间。可变序列(MutableSequence):list、bytearray、array.array、collections.deque、memoryview不可变序列(Sequence):tuple、str、bytes不可变序列有__get
2022-02-17 15:10:42 606
原创 【读书笔记】 - 《流畅的python》01-python数据模型(双下划线方法)
本文为我在阅读该书时做的整理,一些我个人觉得传播比较广泛的知识不会整理在其中。一 PYTHON数据模型1.1 特殊方法类中的双下划线方法,称为特殊方法/魔术方法,用于被python解释器调用。__len__若定义了一个类A的__len__方法,a是A类的实例,a = A(),则使用len(a)就是在调用该方法。__getitem__若定义了__getitem__方法,则a[0]就是在调用该方法。__contains__或者 if x in a 的in就是在调用该方法。若一个集
2022-02-03 15:57:24 558
原创 其他笔记 - 连续子序列之和为定值/最大最小的问题
连续子序列为定值问题给定一个数组nums和定值k,求连续子序列之和为k的个数。这个题,由于数组并不是排序号的递增整数数组,所以感觉用滑动窗口或者判断大小的方法来做不合适。但是由于你最关注的是等于k的子序列数目,关心的是和而不是下标,所以可以考虑用一个字典来存储状态,结果res则累加。sum为遍历到i时,从0到i的序列和。判断条件:当序列和等于k,也就是sum-k为0时,说明该连续子序列之和为k,符合条件,res+1,也可以再初始化的时候{0:1},这样避免每次都要判断一次再累加。arr更新条件
2022-01-14 14:15:52 849
原创 其他笔记 - Shell脚本相关(Linux)
最常见的shell脚本Bash(Bourne Again Shell)是sh(Bourne Shell)的增强版,shell是用于让用户与操作系统kernel沟通的一个界面软件。查看系统上可用的shell程序:cat shells命令用法示例history查询历史alias查询命令别名,设置命令别名alias *name*type查询命令是否为bash的内置命令type [-tpa] *name*echo打印变量echo $varuns
2021-12-29 14:37:40 526
原创 深度笔记 - Moco对比式学习 (Momentum Contrast for Unsupervised Visual Representation Learning)
一些废话:之前读完了MAE,对自监督学习有了新的认知。当初在看半监督学习时,发现MeanTeacher、semiGan也好,蒸馏学习也好,其实多多少少采用了相似的思想。而恺明大佬在MAE中对NLP任务和CV任务的分析与探讨也让人感受很深,首先有些方法不一定非常新颖,但如何得出这个方法,这个思考过程,是非常重要的。概述2017年,FAIR提出的Moco不仅逼近、甚至超越了部分有监督视觉任务的预训练模型。自监督学习可以粗略分为:基于上下文、基于对比的、基于时序这三种。入门可以阅读这篇博客:自监
2021-12-29 10:39:21 2778
原创 深度笔记 - 恺明的MAE(Masked Autoencoders are Scalable Vision Learners)
概述已经有很多人写文章做出了对MAE的解读,此处不加赘述,仅仅引用然后做个整理,方便有部分基础的人快速了解和回顾复习。因此可读性会比较差,欢迎提出建议。原文:Masked Autoencoders are Scalable Vision Learners简而言之,参考源自NLP中的思想,随机遮蔽(Mask)掉图像中的小块,然后实施图像重建任务。两个核心使得MAE可以提高大容量模型(例如ViT)的训练效率和准确性:使用非对称的编码-解码架构,未被遮蔽的图像小块输入编码器,再由一个更轻量的解码器输出
2021-12-05 17:39:14 3332
原创 其他笔记 - Electron代替品探索过程
目录前言替代品一览C# (.Net)C++DartGoJavaJSPythonsciter测试Ultralight前言Electron是基于 Node.js 和 Chromium的,可以把前端代码打包成桌面应用的工具,使得JavaScript, HTML和CSS跨平台部署。但是由于各种原因,不够精巧,体积太大,资源独占,发布不便,源码保护做的不好等等,所以不适用于某些场合。最近要做嵌入式上位机开发,于是挨个测试一下。替代品一览发现 electron其实有超多替代品的,来源参考Electron替代
2021-11-04 11:40:52 9764 2
原创 ROS2 -Windows编译ros2包(colcon)
步骤1 在windows上安装ROS2 FOXY。参考:windows安装ros安装时将对应版本名改为foxy即可。安装时最好保证已经安装了chocolatey和visual studio.快速安装chocolatey:Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::Se
2021-10-25 11:19:46 2083 2
原创 安装Influxdb的过程记录
1.5 influxdb引擎载入根据github issue这上面所说,可以安装influxdb相关引擎。但是又有人在StackOverflow上说只是用类似SQLalchemy的语法,并未真正符合sqlalchemy规范,无法直接引入。所以需要自己动手改文件。RuntimeError: PyPI’s XMLRPC API is currently disabled due to unmanageable load and will be deprecated in the near future.
2021-10-25 10:46:35 917
原创 初学者在树莓派上配置OPC-UA工业物联网套件
目录前言树莓派环境UA-IIoT-StarterKit1. 开发环境配置mosquitto下载:配置mosquitto2. 部署环境配置2.1 Raspberry Pi OS(Raspbian)2.2 .NET Core 5.0 SDK3. 编译部署3.1 主程序MqttAgent3.2 发布数据Python-opcua附录前言树莓派环境硬件设备:树莓派4B。原本打算使用debain或者ubuntu,最后想了下还是用最原始的Raspberry Pi OS(Raspbian)。我使用了无桌面的系统
2021-10-25 10:44:45 1390 1
原创 《OPC UA实践》 - 阅读笔记 3 OPC UA与产业升级
第三章 OPC UA与产业升级3.1 OPC UA对于控制层的意义和构想。OPC 为不同控制器之间以及控制器和MES/管理系统之间的通信打下了坚实的基础。大量的控制器(PLC)和MES系统厂商只专注于自己的专业领域,而OPC UA提供了一个纵向通信来打通这一点,并提供了标准的接口,且更加安全、实用。控制器层面所有的相关内容都可以被认为是面向服务控制(SoA-PLC)的基本准则。而控制器的实时性通常由发布-订阅模式来实现。由于TCP/IP协议的数据完整性需要通过重发来保证,因此缺乏PLC所需要的实
2021-09-27 17:53:40 634
原创 《OPC UA实践》 - 阅读笔记 2 OPC UA信息模型及建模
系列目录 - 阅读笔记 1 工业4.0基础与OPC UA的实践目录系列目录第二章 OPC UA理论基础2.5 OPC UA信息模型及建模信息模型实例信息模型创建步骤:2.6 在生产线中的引入第二章 OPC UA理论基础2.5 OPC UA信息模型及建模关于信息模型的基础二手知识可以看我之前的一篇博文:OPC UA 学习笔记(总览介绍与信息模型相关)OPC UA服务器的地址空间是一个完全互联的、以图状拓扑呈现的信息模型。信息模型:包括节点、节点本身特性以及之间的相互连接。节点集合:一组
2021-09-23 16:39:09 2269 4
原创 《通信统一架构OPC UA实践》 - 阅读笔记 1 工业4.0基础与OPC UA的实践
第一章 OPC UA——工业4.0基础1 . OPC UA能兼容上一代DA标准,也实现了跨平台数据交互,能够将自动化系统的垂直连接与机器之间的平行通信有有机整合在一起。2.OPC UA的信息模型以及建模能力提供了对现有行业进行重新整合的机会。3.与DDS(分布式数据服务)相比,OPC UA福娃保持数据传输的实时性。1.1、通信协议数据交换的两种机制:客户端-服务端(Server、Client):基于确认的点对点通信,有连接限制。采用TCP和HTTP。发布者-订阅者(PubSub):基于广
2021-09-22 18:26:55 903
原创 利用模型异步线程并行等方式优化多模型推理速度(方法整理)
目录训练时优化:DataParallel多进程 multiprocessing 或flask1. multiprocessing2. flasktf的案例pytorch例子多线程:set_num_threads和Ensemble1.多线程并行2. 两个不同的模型异步部署时优化附录训练时优化:DataParallel拥有多卡环境,利用DataParallel优化。优点:将相同的模型复制到所有GPU,其中每个GPU消耗输入数据的不同分区,可以极大地加快训练过程。缺点:不适用于某些模型太大而无法容纳单个
2021-09-13 17:52:24 2015 3
原创 其他笔记 - 如何利用superset部署一个可视化的数据平台 [ docker配置与测试记录 ]
superset配置与测试记录安装系统环境docker环境三级目录测试安装系统环境cat /etc/issueUbuntu 18.04.5 LTS \n \ldocker环境docker search superset选择docker pull amancevice/supersetdocker image ls可查看已下载的所有镜像。三级目录测试...
2021-08-17 16:49:44 1047
原创 .NET Core项目找不到包
问题找不到包System.IO.Packaging,源 Microsoft Visual Studio Offiline Packages 中不存在具有此ID的包解决打开 工具 - Nuget相关可以尝试再命令行里用 nuget restore但是这种情况应该是没有设置源。在选项里面,新建一个程序包源,填写以下源地址(或者其他nuget源)就能修复。Nuget源官方:https://api.nuget.org/v3/index.json官方离线源:C:\Program Files
2021-07-15 16:49:37 2521
原创 influxdb数据写入操作(python、C++实现)
基础概念PointPoint由时间戳(time)、数据(field)、标签(tags)组成。Point相当于传统数据库里的一行数据Point属性 传统数据库中的概念time 每个数据记录时间,是数据库中的主索引(会自动生成)fields 各种记录值(没有索引的属性)也就是记录的值:温度, 湿度tags 各种有索引的属性:地区,海拔python实现普通写入操作'<username>':用户名'<pwd>':密码'<dbname>':数据库名"<
2021-07-13 15:10:00 2120 2
原创 配置ssh下载git仓库的问题
报错Permission denied (publickey). fatal: Could not read from remoterepository.前提:已经配置好了ssh,配置方法是利用ssh-gen来生成密钥,再把公钥(也就是pub)文件粘贴到git仓库设置的ssh配置中。生成密钥方法:ssh-keygen -t rsa -C "email@example.com"解决:$ ssh-add -lCould not open a connection to your auth
2021-07-13 12:25:54 480 2
转载 物联网通信协议一览
物联网协议的选择发布/订阅服务更适合物联网环境下通信DDS、MQTT、AMQP和JMS都是基于发布/订阅模式,发布/订阅框架具有服务自发现、动态扩展、事件过滤的特点,它解决了物联网系统在应用层的数据源快速获取、物的加入和退出、兴趣订阅、降低带宽流量等问题,实现物的联接在空间上松耦合(双方无需知道通信地址)、时间上松耦合和同步松耦合。服务质量(QoS)是物联网通信中的重要考虑因素在服务策略的帮助下,DDS能够有效地控制和管理网络带宽、内存空间等资源的使用,同时也能控制数据的可靠性、实时性和数据的生存时
2021-05-25 16:32:14 323
原创 ROS Serial相关失误总结
1、连接失败ClientFailed to receive data from server 10054Failed to receive data from server 10054Failed to receive data from server 10054Send failed with error 10054Failed to receive data from server 10093Failed to receive data from server 10093Failed
2021-05-25 14:46:03 1118
转载 机器人操作系统、自动驾驶等研发工具整理
Awesome Robotic Tooling Communication and CoordinationDocumentation and PresentationRequirements and SafetyArchitecture and DesignFrameworks and StacksDevelopment EnvironmentCode and RunTemplateBuild and DeployUnit and Integration TestLint and FormatDebugg
2021-05-25 14:43:27 2402
原创 OPC UA 学习笔记(总览介绍与信息模型相关)
目录一 简介常用缩写术语:历史特征信息模型地址空间与节点网络结点属性Meta ModelCNC基本信息模型Robotics 信息模型参考目录一 简介本位将我前段时间所作分享PPT改成博文,文字数量会比较少,参考内容见文末。因为对工业互联网领域不熟,所以有任何疑问或者问题欢迎指出。OPC UA是由 OPC基金会提出的一套工业标准。OPC是OLE for Process Control的缩写。OLE(Object Linking and Embedding)。该标准分为三大部分,13份文档,如图
2021-05-24 10:22:30 2842
强化学习入门资料Algorithms for Reinforcement Learning
2022-04-29
nlpTool.tgz
2021-11-03
OPCUA_Nodeset+open62541.7z
2021-08-04
DR_ONE_V1.1_EVL_Windows.zip
2021-05-25
DR_ONE_V1.1_EVL_Linux.zip
2021-05-25
normalize.m
2020-12-02
Mendeley-Desktop-1.19.4-win32.exe.7z
2020-11-24
mendeleydesktop_1.19.4-stable_(32+64).deb.7z
2020-11-24
mendeleydesktop_1.19.4-linux(32+64)
2020-11-24
Zotero-5.0.93.dmg(macOC)
2020-11-24
Zotero-5.0.93_linux-x86_64.tar.bz2(linux64)
2020-11-24
Zotero-5.0.93_linux-i686.tar.bz2(linux32)
2020-11-24
Zotero-5.0.93_setup.exe
2020-11-24
EndNote X7.7z
2020-11-24
gazebo-gazebo9_9.15.0.tar.gz
2020-10-20
gazebo9源码编译所需依赖(Windows)
2020-10-20
Win10安装.iso
2020-10-16
sdformat-sdformat9_9.3.0.tar.gz
2020-10-16
sdformat-9.0.0.tar.bz2
2020-10-16
Lane-line-detectionData.zip
2020-09-23
willow-sans-whitelab-0.025
2020-09-23
sdk离线语音包Linux版本
2020-09-23
rosbridge_suite.7z
2020-09-01
react-nav2d-js.7z
2020-09-01
OpenGL教程
2015-06-10
三维重建-matlab
2015-06-10
InfiniBand与RoCE哪个更好
2023-12-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人