- 博客(151)
- 资源 (33)
- 收藏
- 关注
转载 GPU内存结构解析与优化方法
2024-01-14 20:00江西01GPU内存基本概念涉及对物理内存和逻辑内存的理解。物理内存指的是计算机中的实际硬件内存,如RAM模块和硬盘驱动器(HDD/SSD),而逻辑内存,又称虚拟内存,是操作系统和程序所访问的地址空间。在于,后者不总是与前者一一对应,而是由操作系统管理地址映射,为系统程序分配和管理内存。在GPU的逻辑内存中,块和线程被视为逻辑概念。要深入探讨如何在GPU上分配和管理内存,理解这些概念非常重要。接下来引入一个关键概念——scope。
2025-05-29 17:23:39
12
转载 UltraEdit-32 恢复到初始默认样式配置
002、然后找到打开“IDM Comp” 文件夹,将里面的文件夹“UltraEdit”整个给删除了,003、再打开 UltraEdit-32 就会发现UltraEdit-32就变成刚装完时候的样子了!001、打开“%APPDATA%” (不包括引号、复制到地址栏,然后回车就出来了),
2025-04-23 10:00:07
40
转载 使用 SSHFS 将远程服务器目录挂载到 Windows 本地
下载 WinFsp 和 SSHFS-Win 程序,安装好后,打开我的电脑,右键添加网络位置。
2025-04-14 15:35:16
80
原创 nccl中的LL、 LL128和Simple是指什么 (来自deepseek)
用于优化 GPU 之间的集体通信(如 AllReduce、Broadcast、ReduceScatter 等)。export NCCL_ALGO=Simple # 强制使用Simple。export NCCL_ALGO=LL,LL128,Simple # 按优先级选择。中等规模的参数同步(如大模型的梯度聚合)。,如模型梯度更新(小batch训练)。:最小化通信延迟(Latency)。使用更小的数据块(如8字节/线程)。(如1MB/块),减少通信次数。,适用于不同的通信场景。
2025-03-28 16:19:53
418
原创 nccl的框架结构图 (来自deepseek)
使其成为多 GPU 分布式训练的高性能通信库。)、TensorFlow、Horovod 等通过 NCCL API 调用集体通信。:NVIDIA 专用硬件集合通信网络(如 DGX 中的 NVSwitch)。数据分块(Chunking)、流水线(Pipelining)提高吞吐。:跨节点 RDMA(GPUDirect RDMA 绕过 CPU)。:NCCL 根据 GPU 数量、数据大小和拓扑自动选择最优算法。基于 Warp 优化的 GPU 内核(见前文解释)。:传统 GPU-CPU/GPU-GPU 通信。
2025-03-26 16:29:09
1012
原创 nccl中的proxy是指什么 (来自deepseek)
将通信任务(如数据搬运、同步)交给专门的代理线程(Proxy Thread)处理,允许计算线程(如 CUDA Kernel)继续执行。,以优化多 GPU 或多节点间的集体通信(如 AllReduce、Broadcast)的性能和资源利用率。在复杂的多 GPU 通信场景(如多线程调用 NCCL)中,Proxy 统一管理通信顺序,防止资源竞争。在非全连接的 GPU 拓扑(如多机多卡)中,Proxy 协调数据的中转路由。:统一调度跨 GPU 或跨节点的通信请求,减少竞争和死锁风险。
2025-03-26 16:11:46
363
原创 nccl-tests 调用参数 (来自deepseek)
nccl-tests是 NVIDIA 提供的一个测试套件,用于验证和评估 NCCL(NVIDIA Collective Communications Library)的功能和性能。它包含多种集合通信操作(如ncclReduce等)的测试程序。以下是nccl-tests。
2025-03-10 15:03:14
950
转载 nccl-test 使用指引
在 all-reduce 操作中,所有的节点都有一个输入值,然后这些值被归约(例如,通过求和或者求最大值)成一个单一的值,然后这个值被发送回所有的节点。在 reduce-scatter 操作中,所有的节点都有一个输入值,然后这些值被归约成一个单一的值,然后这个值被分散到所有的节点。在 reduce 操作中,所有的节点都有一个输入值,然后这些值被归约成一个单一的值,然后这个值被发送到一个指定的节点。在 all-to-all 操作中,每个节点都发送一个值给所有其他的节点,并从所有其他的节点接收一个值。
2025-03-07 14:38:20
394
原创 mpi 和nccl 之间是什么关系 (来自deepseek)
MPI 和 NCCL 各有侧重,MPI 适用于通用并行计算,NCCL 专注于 GPU 通信。在深度学习中,两者常结合使用以提升性能。
2025-03-06 20:07:42
392
原创 NCCL中的ROCE是指?(来自deepseek)
RoCE是 NCCL 中支持的一种高性能网络协议,基于以太网实现 RDMA 功能。RoCE 提供了接近于 InfiniBand 的性能,同时可以利用现有的以太网基础设施,降低成本。在分布式深度学习训练中,RoCE 可以显著加速多节点间的通信。
2025-03-05 09:43:05
833
原创 NCCL中的IB网络是指?(来自deepseek)
IB 网络在 NCCL 中指的是InfiniBand 网络,它是一种高性能、低延迟的网络技术。NCCL 利用 InfiniBand 的 RDMA 和高带宽特性,优化了分布式深度学习训练中的通信效率。启用 InfiniBand 支持需要正确的硬件、软件配置以及环境变量设置。
2025-03-05 09:23:22
839
原创 npm : 无法加载文件 D:\nodejs\npm.ps1,因为在此系统上禁止运行脚本
这样只有本地脚本和经过签名的远程脚本会被允许执行。,你需要设置一个更宽松的执行策略。
2024-12-01 21:43:20
2045
原创 linux下将一个中断号绑定到一个或多个cpu上
echo cpu1,cpu2,cpu3 > /proc/irq/中断号/smp_affinity_list。echo cpux > /proc/irq/中断号/smp_affinity_list。
2024-11-25 13:38:51
282
原创 error: possibly undefined macro: AC_PROG_INTLTOOL
【代码】error: possibly undefined macro: AC_PROG_INTLTOOL。
2024-11-12 15:31:36
276
原创 结构体和类的区别
类和结构体在不同的编程需求和场景中有各自的优势。类更适合于复杂的对象建模和面向对象编程,而结构体更适合于简单的数据封装和快速访问。
2024-11-11 17:23:59
725
原创 WebRTC REMB算法
定义:REMB是一种RTCP(Real-time Transport Control Protocol)反馈消息,作为接收方,它告诉发送方可以接收的带宽是多少。这是一种简单的拥塞控制方法,当接收方无法接收更多数据时,会通知发送方降低发送速度。原理:REMB基于接收端对视频数据的缓存情况和网络状况等信息,动态地估计可用的带宽,并向发送端发送估计值。发送端可以根据该估计值适当地调整视频的码率和分辨率,以达到最佳的视听体验。
2024-11-08 17:09:46
774
原创 udp为什么会比tcp 有更低的延迟
UDP(User Datagram Protocol,用户数据报协议)相比TCP(Transmission Control Protocol,传输控制协议)具有更低的延迟,这主要归因于UDP协议的设计特点和机制。
2024-11-08 16:06:25
912
原创 libuv的调用例子
这个例子展示了如何使用 libuv 创建一个简单的 TCP 服务器和客户端,并进行基本的读写操作。libuv 提供了更多高级功能,比如文件 I/O、定时器、信号处理等,你可以参考 libuv 官方文档 了解更多。Libuv 是一个多平台的异步 I/O 库,旨在提供事件驱动的编程模型,类似于 Node.js 的底层机制。以下是一个简单的例子,展示了如何使用 libuv 来创建一个 TCP 服务器和客户端。首先,确保你已经安装了 libuv。客户端会发送一条消息到服务器,服务器会接收消息并回复客户端。
2024-11-07 14:43:18
460
原创 Irqbalance处理中断迁移过程
通过遍历/sys/bus/pci/devices/0000:00:[**].[*]/下irq以及msi,建立各个irq的数据,并结合proc/irq/下文件初始化中断数据结构。通过遍历/sys/devices/system/cpu/cpu[*]/cache/index[max]/shared_cpu_map决定有多少CACHE对象。通过遍历/sys/devices/system/cpu/cpu[*],以及是否online,决定有多少CPU的对象。遍历该层所有孩子节点,并将其迁移到负载最小的孩子节点上。
2024-10-31 15:16:40
855
转载 webrtc服务端如何录像
Srs是强大的开源多媒体流服务器,支持webrtc sfu功能,并且还支持rtc2rtmp的功能(opus转码成aac),opus转码成aac对cpu的消耗不小,一个转码大概消耗2%左右的cpu。如上图,这里主要讨论,如何建立一个mediasoup mcu服务,从sfu中拉取用户A和用户B的音视频流,并且录像后,上传到对应的文件存储系统(如阿里云,腾讯云等的存储系统)。本文主要考虑性能问题,介绍旁路录像的方案,也就是启动一个服务,从Srs拉取webrtc的音视频流,并保存成mpegts文件。
2024-10-17 22:04:38
244
转载 如何写Linux PCI驱动
Warning此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。Note如果您发现本文档与原始文件有任何不同或者有翻译问题,请联系该文件的译者, 或者请求时奎亮的帮助:
2024-09-30 18:02:46
222
原创 利用windows api生成缩略图
/ 在这里可以使用生成的缩略图进行其他操作,比如保存到文件或显示在界面上。// 初始化Shell API。// 初始化GDI+
2024-09-26 09:52:38
491
原创 UTC Time To Local Time
SYSTEMTIME tUTC; SYSTEMTIME tLocal; TIME_ZONE_INFORMATION timeZomeInfo; ::GetTimeZoneInformation(&timeZomeInfo); ::SystemTimeToTzSpecificLocalTime(&timeZomeInfo, &tUTC, &tLocal);
2024-07-17 19:20:23
133
转载 时间同步协议NTP-原理和实践
是一种用于网络时间同步的协议。它旨在确保计算机和其他网络设备具有准确的时间,并通过与时间服务器进行通信来同步其时钟。NTP服务器: 是提供时间服务的特定服务器,它们通过网络向客户端提供准确的时间信息。这些服务器通常与原子钟或其他高精度时间源同步,以确保提供高度准确的时间。ntpd作为守护进程运行在后台,默默校正本地系统与时钟源服务器之前的时间,以便保证本地系统时间的准确性。本文简单介绍了NTP时间同步协议的发展历程和工作原理。
2024-07-17 16:10:34
805
转载 PTP简介
PTP简介在通信网络中,许多业务的正常运行都要求网络时钟同步,即整个网络各设备之间的时间或频率差保持在合理的误差水平内。网络时钟同步包括以下两个概念:l 时间同步:也叫相位同步(Phase synchronization),是指信号之间的频率和相位都保持一致,即信号之间的相位差恒为零。
2024-07-16 16:07:05
755
转载 TCP BBR拥塞控制算法深度解析
然而,这种查找和确认的工作太令人感到悲哀,读懂代码是容易的,移植代码是无聊的,因为时间卡的太紧!如果是噪声丢包,在收到reordering个重复ACK后,由于bbr并不区分一个确认是ACK还是SACK引起的,所以在bbr看来,即时带宽并没有降低,可能还有所增加,所以一个数据包的丢失并不会引发什么,bbr依旧会给出一个比较大的cwnd配额,此时虽然TCP可能已经进入了Recovery状态,但bbr依旧按照自己的bw以及调整后的增益系数来计算cwnd的新值,过程中并不会受到任何TCP拥塞状态的影响。
2024-04-29 09:40:22
1443
2
转载 WebRTC GCC基于丢包动态阈值的带宽估计原理
WebRTC GCC-基于丢包的码率估计原理一文发布已有三年之久,随着webrtc 代码的不断更新,拥塞控制部分谷歌也一直在更新。当前基于丢包的码率估计部分已经额外新拓展了两个分支,总共已有三套算法。其中最原始的算法基于静态丢包阈值进行计算,本文分析分析简称为V1版本,从代码来看主要是对丢包阈值进行了动态化处理。本文首先简单总结基于Base版本基于丢包的码率估计原理。在分析之前先简单回顾最原始的版本的核心原理001.png在论文中有定义如上策略。当丢包率小于%2的时候码率按照。
2024-02-19 09:34:47
422
原创 Windows全盘文件搜索
/从缓冲区起始地址开始。printf("固定磁盘: %s\n", szSingleDrive);printf("网络磁盘: %s\n", szSingleDrive);puts("未知的磁盘类型");puts("可移动磁盘");puts("内存映射盘");puts("路径无效");// 获取下一个驱动器号起始地址。puts("光驱");puts("获取容量信息失败");//获取逻辑驱动器号字符串。//处理获取到的结果。
2024-02-18 13:21:08
1038
转载 Windows文件系统的性能就是要比Linux慢
Windows在文件系统里搜索的时候,会搜索一部分文件内容,会展开搜索一部分压缩包(比如CAB文件)的内容,并不是只搜索文件名,所以搜索负担更重(要打开文件并读取内容)。被测的目标目录是VirtualBox6.1.32的源码包含4万多个文件和目录,总大小1G多,Windows和Linux虚拟机都在同一个磁盘上,存储介质速度是一致的(准确的说Linux会更慢,因为是虚拟机)。最后,Windows文件系统访问慢,是代码的问题,不是NTFS的问题,有兴趣的同学可以试试在Linux下使用NTFS,你。
2024-02-17 14:08:09
483
转载 驱动开发:实现驱动加载卸载工具
工具,如果驱动程序需要对外发布那我们必须自己编写实现一个驱动加载工具,当需要使用驱动时可以拉起自己的驱动,如下将实现一个简单的驱动加载工具,该工具可以实现基本的,安装,加载,关闭,卸载等操作日常使用完全没问题。本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。驱动程序加载工具有许多,最常用的当属。
2024-02-06 14:06:56
240
android下选择图片文件夹并显示
2022-08-14
libplist for android
2022-05-27
ice-rfc5245.webarchive
2021-11-18
IEEE1588_v1_v2.pdf
2021-01-27
libexif 0.6.21 的windows的运行库
2019-02-23
exiv2 debug和release库 (版本号 0.23)
2018-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人