- 博客(45)
- 资源 (1)
- 收藏
- 关注
原创 【论文阅读】Efficient Memory Management for Large Language Model Serving with PagedAttention
高吞吐量的LLM服务需同时处理多个请求。但是现有系统非常困难,因为KV cache非常巨大并且是动态伸缩的,因为显存管理不善,导致碎片和重复,造成显存的巨大浪费,从而限制了batch的大小和吞吐量。为了解决这个问题,本文借鉴操作系统的分页内存管理方法,提出了PagedAttention。基于这个方法,实现了vLLM,它能够实现:1) 接近零的KV cache浪费;2) 同一请求内和不同请求间KV cache的灵活共享。实验证明本方法的吞吐量是SOTA系统的2-4倍。
2024-07-17 20:38:08
1083
原创 Transformer学习笔记
可以节省多少运算量?假设有一批输入序列,数量为b个,每个序列由N个生成的tokens和t个输入的tokens(总长度为 N+t)组成。对于这些序列的前 t+N-1 个 tokens,计算 KV 值是冗余的,也就是说,在生成步骤的第 N 步,我们可以为每个序列节省 t+N-1 次 KV 计算。如果不重新计算,那么在前 N 个生成步骤中,每个序列总共可以节省 N.t+N.(N-1)/2 次 KV 计算。通过 KV 缓存节省的运算数量与生成的 tokens 数量的平方成正比。
2024-07-17 20:34:10
1051
原创 Docker 安装以及常见操作
Ubuntu 下Docker安装以及常见操作,包括Dcoker的安装,卸载,配置用户组,常用命令,如查看版本,启动,关闭,重启,查看docker运行状态,镜像管理,日志管理等。
2024-07-10 17:06:24
555
原创 【论文阅读】Characterization of Large Language Model Development in the Datacenter
大语言模型(LLMs)在许多任务中表现出色。然而,要高效利用大规模集群资源开发LLM并非易事,常常伴随着频繁的硬件故障、复杂的并行化策略和资源利用不平衡等诸多挑战。为此,我们针对Acme GPU数据中心在为期六个月的LLM开发工作负载中所累积的跟踪数据,进行了一次深入的特征分析研究。我们特别探讨了LLM与以往深度学习(DL)工作负载之间的差异,研究了资源利用模式,分析了各种任务失败的影响,总结了所遇到的难题,并揭示了优化LLM系统的潜在机会。
2024-07-10 17:02:08
1055
2
原创 使用torch.profiler记录模型训练的轨迹,并使用Tensorboard可视化和分析
使用 torch.profiler记录模型训练轨迹,并使用Tensorboard进行可视化分析,首先导入需要的库,准备模型和数据集,设置记录器,生成json格式的文件,最后通过Tensorboard可视化。
2024-05-01 16:27:05
796
原创 vscode 使用code runner 运行代码输出乱码
解决vscode使用code runner 乱码的问题,主要保持代码的编码方式和终端编码方式一致。可以通过设置终端默认编码方式或代码文件默认编码方式解决。
2024-05-01 16:23:32
1062
原创 【论文阅读】Energy Efficient Real-time Task Scheduling on CPU-GPU Hybrid Clusters
主要工作:通过动态电压和频率缩放研究了新兴CPU-GPU混合集群的节能问题。 + 首次分析GPU特定的DVFS模型。 + 设计了一种新的调度算法:1)利用GPU DVFS来节省能源而不违反任务期限;2)有效将一组任务打包到多个服务器上,以减少动态能耗;3)智能调节DVFS设定,更有效地节省能源。 + 仿真测试,可以节省多达36%的能耗。
2024-03-16 17:14:24
574
原创 【论文阅读】MICCO: An Enhanced Multi-GPU Scheduling Framework for Many-Body Correlation Functions
首先对数据重用和负载平衡的相互作用进行了全面的研究,并提出了局部重用模式和重用边界两个新概念,研究两者之间实现最佳权衡的机会。在此基础上,MICCO提出了一种启发式调度算法和一种基于机器学习的回归模型来生成重用边界的最优设置。
2024-03-16 17:05:35
463
原创 【论文阅读】Mystic: Predictive Scheduling for GPU Based Cloud Servers Using Machine Learning
提出一个干扰感知调度器Mystic,用于在基于GPU 的集群和云服务器上高效地协同执行应用程序。Mystic识别新应用程序和正在执行的应用程序之间的相似之处,并指导调度器将干扰最小化并提高系统吞吐量。
2024-03-14 09:50:46
448
原创 【论文阅读】
Analysis of Large-Scale Multi-Tenant GPU Clusters for DNN Training Workloads 论文阅读笔记,主要工作是描述了Microsoft中一个多租户GPU集群两个月的工作负载特征,研究影响多租户集群上DNN训练工作负载的集群利用率的三个问题:+ 队列调度和局部性约束对队列的影响。+ 局部性对GPU利用率的影响。+ 训练期间的故障问题。
2024-03-13 13:52:23
487
原创 markdown 常用符号大全
markdown 常用符号大全,包括数学符号,逻辑符号,运算符号,多行公式,希腊字母,矩阵,括号,表格,真值表、流程图
2024-03-11 19:31:20
3004
原创 【论文阅读】THEMIS: Fair and Efficient GPU Cluster Scheduling
AiGiPi⋅)RGGi{01}PiPi⋅)P≤1P1−ff∈01)ikkPKiPiN1PiNCPTidTshTidTshP≤1调度架构分为两个级别,包括多个应用程序调度器和一个称为ARBITER的跨应用程序调度程序:PPf∈01。
2024-03-11 19:27:57
1267
原创 Ubuntu20.04安装conda和pytorch
在Ubuntu 20.04上安装Anaconda 3 ,创建虚拟环境并安装pytorch。并指出一些常见的问题并给出解决办法。主要问题有,下载Aanconda后无法激活环境。pytorch版本和C湖大版本不匹配。
2024-01-27 18:56:53
1586
1
原创 【强化学习】使用Q-Learning 和 Sara 解决GridWorld 炸弹环境
使用Q-Learning 和Sara算法解决GridWorld炸弹环境,分为两个类:gridWorld.py和Agent.py:环境类:继承gym.Wrapper,主要实现了render(显示每次的地图)。step(和环境交互,计算奖励值)Agent类:包括两种算法,主要实现了learn(学习方法,每次更新Q-table)predict(根据输入的观察值,预测输出的动作)。sample(根据输入的观察值,采样输入的动作)整体步骤为,首先根据grdiWordl创建出环境,每次机器人根据环境选择动作并更新
2024-01-27 18:51:39
640
原创 win 11 将wsl转为wsl2并安装Ubuntu20.04到指定位置,挂载Ubuntu文件夹
win11 使用wsl安装Ubuntu20.04子系统到指定位置,并将wsl升级为wsl2。同时将Ubuntu文件系统生成挂载盘,方便使用
2024-01-18 15:30:33
1604
原创 【论文阅读】Deep Learning Workload Scheduling in GPU Datacenters:Taxonomy, Challenges and Vision
论文阅读笔记Gao W, Hu Q, Ye Z, et al. Deep Learning Workload Scheduling in GPU Datacenters: Taxonomy, Challenges and Vision[J]. 讨论了数据中心负载作业的特征以及相关工作
2023-11-11 21:42:25
457
原创 使用Monkey进行软件测试(随机测试+脚本测试)
文章目录一、基础概念二、monkey测试的优缺点2.1 优点2.2缺点2.3 解决方案2.3.1 二次开发2.3.2 指定测试页面2.3.3 调整各种事件的比例2.3.3 编写自定义测试脚本2.3.4 分析APP特性,选择合适的方案三、monkey测试的基本过程3.1 环境准备3.1.1环境3.1.2 配置过程3.2 测试adb程序3.2.1 连接设备3.2.2 获取包名3.2.3 使用monkey测试3.2.4 日志内容解析3.3脚本自动化测试3.3.1需求分析3.3.2 获取坐标3.3.3编写脚本3.3
2021-12-30 17:54:42
18473
原创 决策树原理详解
使用的例子:人员眼睛颜色头发颜色所属人种1黑色金色白种人2蓝色黑色黄种人3灰色金色白种人4蓝色金色白种人5灰色金色白种人6黑色黑色黄种人7灰色黑色黄种人8蓝色黑色黄种人决策树的基本思想是从一颗空的决策树开始,选择某一属性作为测试属性,该测试属性对应决策树中的决策顶点,再在剩下的数据集上递归选择另一属性建立决策顶点。一。决策树学习算法大体上可以分为两个阶段:建模阶段和预测阶段建模阶段可
2021-11-30 10:40:37
875
原创 实现一个可以写加减乘除和括号的计算器
使用栈,当遇到加减乘除时,从栈顶取出一个数计算后圧入栈顶,如果有括号,则递归调用括号内的字符串,如果是数字,则取出该数字。#include<iostream>#include<stack>using namespace std;int calculate(string s,int& i){ int num=0; char operation='+'; if(s[i]=='-') operation='-'; stack<int&
2021-11-19 22:00:55
645
1
原创 BIOS中断介绍
BIOS中断号中断号功能入口参数返回值13H磁盘读取AH:2表示读扇区,3表示写扇区AL=读/写的扇区数 ;CH=磁道号;CL=扇区号;DH=磁头号;DL=驱动器号 0:软驱A,1:软驱B, 80H:硬盘C,81H:硬盘D ES:BX 指向接收从扇区读入数据的内存区/写入磁盘的数据成功:AH=0 AL=读取/写入的扇区数 失败:AH=出错码16H键盘操作AH=0 从键盘读入字符送入AL,
2021-11-17 09:31:06
1318
原创 NASM语言更改中断向量表
中断向量是中断服务程序的入口地址,每条中断信息包含四个字节,低两个字节存放中断程序的偏移地址 IPIPIP ,高两个字节存放中断程序的段地址 CSCSCS , CPUCPUCPU 在执行完一条指令都会检查中断,如果有中断发生,则通过 中断号*4 找到中断向量表中的中断信息,按照高高低低的原则载入 CS,IPCS,IPCS,IP 寄存器,从而执行中断程序。示例:修改时钟中断使用中断是08h08h08h,对应程序的IPIPIP和CSCSCS分别存储在中断向量表的ES:08h∗4ES:08h*4ES:08h∗
2021-11-12 17:37:13
314
原创 TFIDF的原理及实现
【算法原理】TFIDF由TF和IDF相乘而来,TF是指某个单词在一个文档中出现次数归一化后的结果;IDF是一个单词普遍重要性的度量。它基本原理是单词的重要性随着它在文档中出现的次数而增加,随着它在所有文档中出现的频率而下降。one-hot矩阵是单词编码的一种方式,它先根据单词在所有文档中的出现顺序建立一个词汇表,然后每个文档对应one-hot矩阵的一行,每行长度为词汇表的大小。根据词汇表中每个单词是否出现在某一篇文档中,如果出现,对应的位置就为1,否则为0。但one-hot矩阵只表示某个单词是否在文档
2021-11-11 20:19:30
2102
原创 动态规划:完全背包问题
6.完全背包问题有N件物品和一个容量为W的背包,第i件物品的重量是weight[i],价值是value[i],每件物品都有无限个,求解可以装下的最大价值总和。区别:01背包中物品只能选一次,完全背包中每个物品可以选无数次dp数组及下标含义:dp[i]表示用容量为i的背包可以装的最大价值总和。递推公式:dp[j] = max(dp[j], dp[j-weight[i]] + value[i])遍历顺序:外层循环,从前往后遍历物品;内层循环,从前往后遍历背包容量。两层循环的顺序可以颠倒,但遍历
2021-11-10 20:53:41
142
原创 动态规划:背包问题
01背包问题有N件物品和最多可以装W的背包,第i件物品质量为weight[i],价值为value[i]。每个物品只用一次,求怎么装才能获得最大价值。二维dp数组:dp数组及下标含义:dp[i][j]表示从下标为[0-i]的物品里任意取放进容量为j的背包,价值总和的最大值。递推公式:dp[i][j]有两种方式推出来不放物品i:由dp[i-1][j]推出,即背包容量为j,只在[0-(i-1)]中取的最大价值总和。放物品i:由dp[i-1][j-weight[i]]+value[i],即考虑不放物品
2021-11-10 20:52:53
57
原创 c语言+nasm语言混合编程
C语言中调用nasm函数汇编程序头部加上关键字 globalglobalglobal 将该函数声明为全局函数:global _asmfunC语言程序头部要加上关键字 externexternexternextern void asm_fun();汇编中调用c语言函数在汇编程序头部加上关键字 externexternextern ,C语言程序无需额外操作extern _cfun()参数传递和返回值对于C语言函数int cfun(int a,int b);调用函数时会按..
2021-11-09 22:19:31
1205
原创 打开docker的实验性功能
echo $'{\n "experimental": true\n}' | sudo tee -a /etc/docker/daemon.json;systemctl restart docker
2021-11-09 21:38:47
997
原创 有序数组 二分查找
704.二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1示例:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4class Solution {public: int search(vector<int>& nums, int target) {
2021-11-06 16:53:46
160
原创 使用BIOS中断加载软盘内容到内存并执行
使用BIOS中断的13H中断中的02H功能示例代码mov AH,02h ;功能号 mov AL,01h ;扇区数 mov DL,0 ;驱动器号,软盘为0,硬盘和U盘为80H mov DH,0 ;磁头号 mov CH,0 ;柱面号 int 13h ...
2021-11-06 16:47:00
112
原创 引导扇区程序
环境:vscode 作为编辑器用于编写代码,为了提高写程序的效率,在vscode中下载NASM插件,该插件可以提供NASM代码高亮和代码修正功能。NASM汇编器,用于对写好的代码进行汇编产生COM文件 。WinHex用于查看和修改二进制文件。VMware Workstation 用于创建虚拟机并测试扇区引导程序。原理软盘的第一个扇区是0面0道1扇区,或者说是0头0柱1扇区,这个扇区称为主引导扇区。读取的主引导扇区数据有512字节,ROM-BIOS程序将它加载到逻辑地
2021-11-06 16:40:14
802
强化学习使用Q-Learning 和 Sara 解决GridWorld 炸弹环境
2024-01-27
AI人机互动,调用科大讯飞星火大模型
2023-10-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人