- 博客(79)
- 资源 (32)
- 问答 (1)
- 收藏
- 关注
原创 子像素卷积优化记录
子像素卷积是一种通过重排列特征图的通道来实现上采样的方法。它通过将低分辨率特征图的多个通道重新排列成高分辨率图像的空间维度,从而实现上采样。在PyTorch中,可以使用torch.nn.PixelShuffle来实现子像素卷积。
2025-03-14 19:01:55
209
原创 【UE5 Linux】vulkan failed to select pyhisical device after passing profile check.
建议:host环境最好与docker版本一致,否则容易出现这类兼容问题。这次终于有有用的信息,vulkaninfo打印的内容太少了。下载了strace,用strace查看,信息太多不好筛查。用ldd查看了,so文件和icd文件都没问题。但是vulkaninfo还是找不到。看到gcc版本太老了,是2.35。增加vulkan的文件映射。安装vulkan和查看工具。
2024-12-25 15:50:08
446
原创 【深度笔记】LRU Cache
因为经常使用LRU(Least Recently Used,最近最少使用)或其他缓存替换策略来管理存储在KV Cache中的数据,保证高效的数据访问。在Transformer等深度学习模型中,KV Cache被广泛应用于存储Self-Attention机制中的中间计算结果,如注意力权重和值。实现了一个简单的LRU缓存,使用了一个双向链表 lruList 来维护访问顺序,以及一个 unordered_map cacheMap 用来存储键值对和对应的链表迭代器。
2024-07-01 16:01:16
314
原创 【一些神金】怎么缓解工作压力?使用VS-code彩虹屁插件
使用:ctrl+shift+p输入RainbowFart命令,点开弹窗,在弹出网页中授权。然后关闭默认语音包,导入对应的插件素材压缩包,开启即可。在此明确:尤其的对于仓库中多媒体资源,您有(单独)标明资源作者(@JustKowalski 提供。基于 MIT 开源,包括所有设计资源及音频资源。由于仓库中的音频资源大部分由真人录音,并且根据 MIT。安装:在vscode扩展栏搜索RainbowFart,安装。其实吃点好的,多睡一会儿,再锻炼锻炼身体就好。我这边的音频素材来源:FGO WIKI。
2024-04-24 15:59:57
552
原创 【分布式通信论文阅读】xCCL: A Survey of Industry-Led Collective Communication Libraries for Deep Learning-2
由于深度神经网络训练的规模变得太大,无法在单个计算节点上执行,一些最先进的深度学习框架,如TensorFlow[62]、Caffe[69]、PyTorch[57]、CNTK[70]和MXNet[71],已经通过使用NCCL实现了在多个节点上的分布式训练。通过在不同的CUDA流中调度NCCL操作,可以在等待网络通信完成的同时,让GPU执行其他操作。类似于NVIDIA的CUDA,NCCL提供了一个C语言的API,因此程序员可以在现有的C项目中使用NCCL,或者甚至在像Python这样的高级语言中使用C绑定。
2024-04-24 15:10:27
2423
1
原创 【分布式通信论文阅读】xCCL: A Survey of Industry-Led Collective Communication Libraries for Deep Learning-1
但,有时用户预定义的一些预定操作里,可能改变数据类型,来执行复杂Reduce-Scatter操作,所以All-reduce操作中,该算法适用于所有大小的数据。Reduce集合指的是一个过程,在这个过程中,单个节点从系统中的每个节点接收数据,并对这些数据应用一些操作,从而产生单个输出。这个操作在特定场合下,相较于broadcast有更好的优势,因为有些时候不同进程需要分发不同的任务,这样更能节省带宽。Reduce-Scatter集合操作,可以被描述为Reduce操作和Scatter操作按给定顺序的组合。
2024-04-18 20:13:08
1623
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
789
原创 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
470
原创 【分布式】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
1781
3
原创 【乱写的】收集一些和GPU以及NCCL相关的定义(持续更新)
SHArP 论文,其实没必要细看。简单来说,SHArP是一个软硬结合的通信协议,实现在了NVIDIA Quantum HDR Switch的ASIC里。它可以把从各个node收到的数据进行求和,并发送回去。再说的通俗一点,通过使用SHArP,我们把求和(聚合/Reduce,随便怎么叫)的操作交由交换机完成了。这种做法,业界叫做In-network Computing(在网计算)。用术语展开来讲,就是将计算卸载到网络中进行。更多相关的知识可以看这个英伟达的汇报。
2024-01-09 18:46:03
1702
原创 【分布式】小白看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
4084
2
原创 【灌水】自动跑团机器人
除此之外,还要附上调查人的个人信息,因此个人信息由用户填写,每次填写完毕保存后隐藏相关按钮。简单实现了追书人的基本流程,最后的活动和结局经过一定缩减,因为chatgpt输入的prompt数量太大会反应很慢。这他妈是什么idea收集器,你们就是靠这个收集idea吗,那我就说一个绝对不赚钱的了。当使用者回应时,根据关键词加载对应调查地点的信息,加入prompt,删除调查动作。追书人的调查阶段一共有6个调查地点,建立包含结束调查在内的7个调查动作。每次到了一定的节点,就加载相应的promtp。
2023-11-23 19:08:54
709
原创 【分布式】大模型分布式训练入门与实践 - 04
数据并行DDP\模型并行\Pipeline并行可以看到,G-pipe将1个mini-batch切分成多个micro-batch(上图是8),前向时每个micro-batch从device1流向device4,DDP就是这么做的。
2023-10-23 14:30:47
2318
原创 【分布式】入门级NCCL多机并行实践 - 02
大模型和分布式训练对数据的吞吐量以及并行度都有很高的要求,NCCL就是在这个背景下诞生的。如果你是一个只会写写Python,调用PyTorch和Horovod的算法萌新,可能对于分布式底层的东西不太了解,在下岗热潮中被主管逼着转变成算子或者通讯库的搬砖工,就会像我一样两眼蒙蔽。因此本文只对自己踩到的坑做一个整理,如果有说错的地方,那就是我说错了。以PyTorch为例,其中spmd接口下的相关定义是用于处理分布式的。但主要是处理单机多CPU情况,因此我们今天只考虑多机(多节点)情况。其中用于实现多节点分布式的
2023-10-20 17:53:03
7052
7
原创 自编译的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
867
1
原创 读书笔记 - CUDA编程指南5.0 + 练习编译运行 01
前言:会根据CUDA编程指南一点点更新,欢迎讨论。图形处理的需求,推动可编程图形处理器(GPU)向着高并行度和多线程演化。从图形处理走向通用并行计算。GPU和CPU浮点计算能力的差异: GPU并行度高,晶体管更多用于数据处理而非缓存和流控。数据并行处理:将数据映射到并行处理的线程上,并进行加速。CUDA:一种通用并行计算架构CUDA核心的三个重点抽象(能提供犀利的的数据、任务并行):线程组层次、共享存储器和栅栏同步threadIdx是一个有三个分量的向量(1d,2d,3d)以上为两段代码,分别是一维向量和
2022-06-19 22:42:32
1050
1
原创 【tensorflow】‘BatchDataset‘ object has no attribute ‘make_one_shot_iterator‘
tensorflow v2下运行tf1的sess, dataset迭代器无法使用
2022-05-18 17:59:26
3681
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
185
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
7764
1
原创 【其他笔记】 “unable to start ssh-agent service, error :1058“
ssh-agent启动失败问题
2022-03-09 19:51:07
2729
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
703
1
原创 【读书笔记】 - 《流畅的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
596
原创 其他笔记 - 连续子序列之和为定值/最大最小的问题
连续子序列为定值问题给定一个数组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
1029
原创 其他笔记 - 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
667
原创 深度笔记 - Moco对比式学习 (Momentum Contrast for Unsupervised Visual Representation Learning)
一些废话:之前读完了MAE,对自监督学习有了新的认知。当初在看半监督学习时,发现MeanTeacher、semiGan也好,蒸馏学习也好,其实多多少少采用了相似的思想。而恺明大佬在MAE中对NLP任务和CV任务的分析与探讨也让人感受很深,首先有些方法不一定非常新颖,但如何得出这个方法,这个思考过程,是非常重要的。概述2017年,FAIR提出的Moco不仅逼近、甚至超越了部分有监督视觉任务的预训练模型。自监督学习可以粗略分为:基于上下文、基于对比的、基于时序这三种。入门可以阅读这篇博客:自监
2021-12-29 10:39:21
3035
原创 深度笔记 - 恺明的MAE(Masked Autoencoders are Scalable Vision Learners)
概述已经有很多人写文章做出了对MAE的解读,此处不加赘述,仅仅引用然后做个整理,方便有部分基础的人快速了解和回顾复习。因此可读性会比较差,欢迎提出建议。原文:Masked Autoencoders are Scalable Vision Learners简而言之,参考源自NLP中的思想,随机遮蔽(Mask)掉图像中的小块,然后实施图像重建任务。两个核心使得MAE可以提高大容量模型(例如ViT)的训练效率和准确性:使用非对称的编码-解码架构,未被遮蔽的图像小块输入编码器,再由一个更轻量的解码器输出
2021-12-05 17:39:14
3469
原创 其他笔记 - Electron代替品探索过程
目录前言替代品一览C# (.Net)C++DartGoJavaJSPythonsciter测试Ultralight前言Electron是基于 Node.js 和 Chromium的,可以把前端代码打包成桌面应用的工具,使得JavaScript, HTML和CSS跨平台部署。但是由于各种原因,不够精巧,体积太大,资源独占,发布不便,源码保护做的不好等等,所以不适用于某些场合。最近要做嵌入式上位机开发,于是挨个测试一下。替代品一览发现 electron其实有超多替代品的,来源参考Electron替代
2021-11-04 11:40:52
10301
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
2738
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
1125
原创 初学者在树莓派上配置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
1755
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
785
原创 《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
3026
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
1185
原创 利用模型异步线程并行等方式优化多模型推理速度(方法整理)
目录训练时优化:DataParallel多进程 multiprocessing 或flask1. multiprocessing2. flasktf的案例pytorch例子多线程:set_num_threads和Ensemble1.多线程并行2. 两个不同的模型异步部署时优化附录训练时优化:DataParallel拥有多卡环境,利用DataParallel优化。优点:将相同的模型复制到所有GPU,其中每个GPU消耗输入数据的不同分区,可以极大地加快训练过程。缺点:不适用于某些模型太大而无法容纳单个
2021-09-13 17:52:24
2822
3
强化学习入门资料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
nccl-test出现overrun怎么排查
2024-04-25
InfiniBand与RoCE哪个更好
2023-12-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人