DeepSpeed代码阅读笔记之:elasticity 本笔记是DeepSpeed代码阅读的第一篇笔记,本周的主要任务是阅读DeepSpeed python代码中的 DeepSpeed 部署DeepSpeed 部署的过程如下: 安装cuda与pytorch 按照requirements文件夹安装依赖: 12345pip install -r requirements/requirements-dev.txt pip install -r requi 2024-03-30 技术 科研 大模型 技术 大模型训练 课题组 笔记
大模型通信笔记2 数据并行传统的数据并行是让每个GPU分别进行FWD和BWD,然后把梯度进行聚合操作,然后再下发给每个GPU,称为All Reduce。 缺点 存储开销大。每块GPU上都存了一份完整的模型,造成冗余 通讯开销大。Server需要和每一个Worker进行梯度传输。当Server和Worker不在一台机器上时,Server的带宽将会成为整个系统的计算效率瓶颈。 异步梯度更新 Worker不等待梯度更新 2024-03-26 技术 通信 大模型 技术 大模型训练 博客 通信
大模型通信笔记1 流水线并行朴素层并行朴素层并行,将模型拆分为多个层,放在不同的GPU上执行但是问题很明显: GPU利用率低:任意时刻只有一个GPU在工作,其他GPU都在等待结果 计算和通信没有重叠 显存占用高,GPU1需要保存所有激活。等待参数更新完成 GPipeGpipe将整个minibatch分为4个microbatch,然后由GPU0进行计算,之后每个microbatch计算完直接传递给GPU1,以此类 2024-03-26 技术 通信 大模型 技术 大模型训练 博客 通信
操作系统学习笔记2:多线程 概述现代软件大多支持多线程,相比于进程切换,线程共享代码段,数据段以及其他系统资源,但是拥有单独的寄存器和堆栈。服务器采用多线程,可以减少创建进程的资源消耗,同时处理多个并发请求。 优点 响应性提高 资源共享 创建与切换更加经济 多核编程并行性 vs 并发性并行性:是同时执行多个任务并发性:是让每个任务都能取得进展,在单处理器上也能实现 Amdahl定理:程序中只有S%可以串行执行时,优化比$$ 2024-03-22 技术 操作系统 技术 博客 操作系统
操作系统学习笔记1 内核设计微内核微内核实现了一个功能较少,但是容易扩展的内核架构,客户程序和不同的功能之间提供消息传递功能。除了必须内核功能外,功能组件都作为用户程序来实现。 模块化例如Solaris,有7种可以在运行时加载的模块。 混合架构例子 MacOS X,其Mach内核提供了远程过程调用,进程间通信等功能。BSD内核提供了POSIX库和文件系统等功能。 iOS基于MacOSX,在系统的顶层提供了媒体服务用来 2024-03-22 技术 操作系统 技术 博客 操作系统
Linux学习笔记2 账号文件/etc/passwd存储了 账号信息 x(密码) UID GID 用户信息栏 家目录 shell /etc/shadow 账号名 密码 最近修改 不可修改天数 建议修改天数 警告天数 过期密码宽限 失效日期 忘记密码普通用户:passwdroot:单人启动模式 用户组/etc/group 组名 用户组密码 GID 支持的 2024-03-15 技术 Linux 技术 博客 Linux
Linux学习笔记1 Linux学习笔记1启动运行级Linux的/etc/rcX.d目录下存储着各个启动级的运行程序运行级1时进入单用户模式,仅仅进行文件系统维护。标准运行级为3。运行级为5时会启动X Window服务。切换启动级别可以使用runlevel命令来设置 内核模块Linux内有两种方法插入设备驱动: 编译进内核 可插入的设备驱动 linux内部有三种设备文件: 字符设备文件:包括终 2024-03-03 技术 Linux 技术 博客 Linux
课题组23-11-15周报 实验关于fp16参数转换速度的问题本周进行了一个实验,主要用于观察pytorch中对张量转移的各种方法的性能差异。 实验思路几种不同的传输方向 cpu -> cpu cpu -> gpu gpu -> cpu gpu -> gpu几种不同的数据 fp32 -> fp32 fp32 -> fp16调用half()函数,将fp32数据转换为fp16数据 fp16 - 2023-11-15 技术 科研 技术 课题组 周报 神经网络 pytorch
课题组第五周学习 高效直接访问主机内存的方法现有方法存在的问题通过加载后执行的方法面对巨大的模型参数规模,现有GPU的显存难以支撑大模型的训练。因此产生了一种通过加载后执行的方法,即将模型参数存储在主机内存中,每次训练时将参数加载到显存中,训练结束后将参数保存到主机内存中。这种方法的缺点是每次训练都需要将参数加载到显存中,这个过程会消耗大量的时间,例如在v100上,加载时间会是处理时间的4倍以上,导致训练效率低下。 2023-10-22 技术 科研 技术 课题组 周报 神经网络 pytorch