自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 更通用的excel公式转python代码方法

之前 [导出excel中的公式,生成python代码](https://hi20240217.blog.csdn.net/article/details/138278188) 提到的方法,对表格的格式有比较强的要求.本文进行了优化:

2024-04-30 14:13:53 447

原创 导出excel中的公式,生成python代码

之前用excel制作了一个llm内存占用量的表格,希望把里面的公式提取出来,生成python代码,供别人使用,以下是demo。

2024-04-28 14:55:25 505

原创 streamlit data_editor学习之 LLM理论内存占用量计算器

根据用户设置的LLM参数,计算设备内存的占用量。以web的形式方便共享,可以插入多条记录,表格更新后,可以动态计算结果。

2024-04-26 12:20:10 593

原创 基于__torch_dispatch__机制的dump方法

之前拦截torch和torch.Tensor的办法,在处理backward时,不能看到aten算子的细节.以下基于__torch_dispatch__机制的方案更节约代码,且能看到调用栈。

2024-04-24 11:46:11 738

原创 拦截pytorch算子,dump输入输出

希望dump出pytorch每个算子的输入输出,但pytorch普通的hook机制只能拦截module.以下提供一种方法可以拦截torch.add,torch.Tensor.add这类算子.原理是通过模板替换,劫持torch和torch.Tensor中的算子.遍历next_functions调用register_hook拦截backward.

2024-04-23 22:01:51 621

原创 Megatron-LM 验证1F1B interleaved的效果

本文测试1F1B interleaved是否能挤掉空泡。因为所用的服务器不支持P2P,且PCIE为GEN1 X16 NCCL all_reduce_perf测试的性能仅为1.166GB/s。因此开启interleaved模式后,通信算子耗时占明显增加。

2024-04-22 21:30:04 542

原创 ptrace动态修改某个进程的数据

本文演示了如何基于ptrace机制,修改另一个进程的数据。

2024-04-22 09:43:41 257

原创 基于pytorch hook机制,生成一次前后向的timeline

本文通过pytorch hook机制,拦截所有子module的forward和backward,统计执行时间及内存使用情况。

2024-04-20 11:54:38 789 1

原创 LLM内存占用计算

LLM内存占用计算

2024-04-19 22:02:58 406

原创 pytest学习-pytorch单元测试

希望测试pytorch各种算子、block、网络等在不同硬件平台,不同软件版本下的计算误差、耗时、内存占用等指标.本文基于torch.testing._internal。

2024-04-17 20:38:13 832

原创 以pytorch pipeline并行为例,分析各kernel的耗时占比及性能瓶颈

以下DEMO演示了,pipeline多卡并行时,如何分析各kernel的耗时占比,如果nccl kernel占比过大,说明GPU有效利用率不高,主要分为以下步骤1.nsys profile 运行4卡pipeline并行demo2.用开源的nsys2json.py将nsys的sqlite-schema转成chrome event格式3.分析chrome event格式,按设备统计各kernel的耗时占比。

2024-04-15 10:09:56 620

原创 Superset环境搭建步骤-用于pytorch算子性能监测

希望监测不同硬件平台pytorch算子随软件栈更新的变化情况,出现性能回退时,邮件告警通知。本文提供了superset详细配置步骤(只需要修改SMTP配置部分,可直接运行).提供了mysql python demo用于插入算子的性能数据.

2024-04-13 17:10:26 677 1

原创 NCCL集合通信算子DEMO及性能测试

以下代码用于测试NCCL算子的性能及正确性。

2024-04-12 20:59:26 558

原创 如何在ngc中找到跟物理机驱动版本匹配的docker镜像

下文介绍了如何在ngc中找到跟物理机驱动版本匹配的docker镜像。

2024-04-09 20:30:16 350

原创 pytorch演示pipeline并行

单卡内存不够时,可以将网络切分成几段(stage),每个GPU负责一个stage。比如GPU0计算完之后将数据发送给GPU1算后续的stage;以上的方式,会导致GPU的利用率不高,可以将输入的batch切分成多份更小的batch,陆续送给GPU0,这样GPU0处理完micro batch0之后 可以处理micro batch1.如此便能提高GPU的利用率。

2024-04-08 21:08:03 720

原创 pytorch 演示 tensor并行

本文演示了tensor并行的原理。如何将二个mlp切分到多张GPU上分别计算自己的分块,最后做一次reduce。1.为了避免中间数据产生集合通信,A矩阵只能按列切分,算出全部batch*seqlen的部分feature2.因上面的步骤每张GPU只有部分feature,B矩阵可按行切分,与之进行矩阵乘,生成部分和3.最后累加每张GPU上的部分和,即最终的结果以下demo,先运行非分块的版本,然后模拟分块,最后是分布式的实现。

2024-04-07 20:42:04 635 1

原创 Megatron-DeepSpeed-GPU-多机训练

本文演示了Megatron-DeepSpeed-GPU-多机训练的操作步骤。

2024-04-04 20:31:35 783 1

原创 deepspeed学习-多机all_reduce

本文演示了如何采用deepspeed做多机torch.distributed.all_reduce。

2024-04-04 15:51:37 642

原创 ssh通过别名免密登录指定端口的服务器

ssh通过别名免密登录指定端口的服务器

2024-04-04 09:57:46 107

原创 llama2学习-预训练+SFT指令微调(单机单卡)

本文记录了llama2从预训练到指令微调的全过程,单文件形式,供入门阶段查阅。

2024-04-03 18:29:19 505

原创 Transformer学习-最简DEMO实现字符串转置

背景:调试AI加速卡在Pytorch训练时的精度问题,搭建了一个简单的Transformer,设置随机种子,保证每次重训练loss完全一致,可以直接对比各算子的计算误差。

2024-04-02 21:26:48 610 1

原创 通过nvtx和Nsight Compute分析pytorch算子的耗时

本文演示了如何借助nvtx和Nsight Compute分析pytorch算子的耗时。

2024-03-30 15:48:05 566 1

原创 Python耗时统计-可嵌套-生成Timeline-chrome://tracing/预览

本文演示了如何用chrome://tracing查看python嵌套代码的耗时成分

2024-03-30 15:17:41 916

原创 MPI 学习-环境搭建及测试DEMO

本文演示了如何在二台物理机上通过MPI实现多机通信,为了不破坏系统环境,分别在二台物理机上运行ubuntu22.04容器。

2024-03-28 16:04:06 715 1

原创 Windows11 安装confluence 7.4.0

本文是Windows11 安装confluence 7.4.0的步骤

2024-03-24 11:09:06 878 1

原创 ffmpeg开发异步AI推理Filter

本文旨在阐述如何开发一个FFmpeg Filter,该模块利用gRPC异步通信机制调用远程视频处理服务。这一设计实现了对ffmpeg filter功能的精简化整合,仅需通过配置ffmpeg命令行参数,即可实现不同算法间的灵活切换与串联。得益于此,ffmpeg无需频繁修改,同时服务端可采用任意编程语言开发,从而显著提升了整体的开发效率和部署便利性。此方案尤其适用于帧率相对较低、推理性能瓶颈明显且对延迟要求不苛刻的应用场景。

2024-03-21 10:37:21 1119 1

原创 基于gRPC实现的异步推理框架

该项目是基于gRPC实现的异步推理框架。服务端采用python实现,客户端封装了grpc,对外仅提供推理相关的三个c接口,可用于跨进程推理。

2024-03-19 16:05:14 550 1

原创 grpc python实现异步调用(不用grpc异步接口)

grpc同步调用更简单,但是在处理复杂任务时,会导致请求阻塞,影响吞吐。当然,可以采用异步的方式解决,本方采用另一种方式:服务端收到请求后放入请求队列,由独立的线程处理各个请求,之后调用客户端的服务,回复处理结果。即客户端也是服务端。

2024-03-18 22:02:18 571 1

原创 通过更新路书当前坐标下marker的icon来展示沿途的风景

本文演示了如何通过百度地图的路书功能,展示途经的风景。定时缩放,既有全局路径,又有当前位置和运动轨迹;可以显示当前坐标对应的图片。

2024-03-17 12:16:43 930 1

原创 mediapipe最小编译、插件开发及demo

我希望仅使用mediapipe框架,不要额外的功能,并将mediapipe编译成一个动态库,可以基于这个动态库开发插件和应用,下面介绍了完全的步骤。

2024-03-15 23:04:12 755 1

原创 获取微信联系人列表的一种方法

获取微信联系人列表的一种方法:截长图,模板匹配,ocr识别

2024-03-14 21:54:58 608

原创 以调试ffmpeg为例,演示gdb如何定位内存被修改

本文演示了如何使用gdb定位avformat_find_stream_info函数破坏codecpar变量的情况

2024-03-13 21:37:15 524

原创 硬件解码器封装Python api的踩坑记录

硬件解码器封装Python api的踩坑记录

2024-03-13 19:50:09 376

原创 linux进程disk sleep状态的定位方法

在调试设备驱动时,可能会遇到进程阻塞,kill不掉,查看进程状态为disk sleep,本文演示了如何定位原因。

2024-03-13 19:29:00 520

原创 SSD固态硬盘通过USB3.0接入超聚变2288H V6,拷贝数据时掉盘

将一款SSD固态硬盘通过USB3.0转接盒连到2288H V6,拷贝大量数据时出现掉盘。换另一款SSD固态盘正常。怀疑是供电问题,做此实验,以证实。

2024-03-11 11:04:18 410

原创 封装SDK时如何隐藏内部符号

在封装SDK,对外提供API时。希望不暴露内部符号,免得产生冲突,给集成带来麻烦.本文演示了二种方法。

2024-03-11 09:13:56 430

原创 yolov5训练coco数据集的部分类别

在测试yolov5系列不同类别的模型在各种加速卡上的精度和性能时,我们希望得到一个准确的评估结果。因此,本文从一个COCO数据集中创建一个子集,该子集仅包含特定的类别。具体来说,它首先从源数据集中读取JSON文件,然后过滤出所需的类别,并将它们保存到新的JSON文件中。接下来,它将所需的图像和标签复制到新的目标目录中。最后,它创建一个包含所有图像文件路径的文本文件,并更新数据集的YAML配置文件。以此为数据集,训练并测试模型,从而得到准确的评估结果。

2024-03-09 21:10:05 836 1

原创 整站下载保存为mhtml

MHTML格式具有独特的优点,它可以完整保留原始网页的所有布局元素以及嵌入图片,无需外部依赖即可呈现原始网页内容,增强了可读性和便捷性。下文将展示如何运用自动化技术,从一个网站的首页出发,采用递归爬取的方式遍历整个站点,并将抓取到的各个页面悉数保存为MHTML格式,同时按照URL的层级结构,将这些页面对应地存储到相应的目录层级中。

2024-03-08 20:36:59 987

原创 streamlit学习-如何修改css样式

streamlit默认的样式有时并不符合自己的要求。比如手机上的布局太浪费空间,我们希望一屏能放下所有的元素,本文演示了如何操作。

2024-03-07 12:14:02 667 1

原创 PCIE-X16如何变成PCIE-X8

用胶带(比如透明胶带)粘住这些pin脚以外的pin脚。注意别数漏了(没有金手指的地方得算进去)

2024-03-07 08:22:41 385

ffmpeg 异步推理filter源码

本文旨在阐述如何通过FFmpeg开发一个创新的滤镜模块,该模块利用gRPC异步通信机制调用远程视频处理服务。这一设计实现了对ffmpeg滤镜功能的精简化整合,仅需通过配置ffmpeg命令行参数,即可实现不同算法间的灵活切换与串联。得益于此,原始ffmpeg无需进行任何内部修改,同时支持服务端采用任意编程语言进行开发,从而显著提升了整体的开发效率和部署便利性。 此方案尤其适用于帧率相对较低、推理性能瓶颈明显且对延迟要求不苛刻的应用场景。在面对复杂的推理流水线时,若单台服务器资源足以应对计算需求,则可借助MediaPipe构建高效处理管道;而当需要扩展至多台服务器以提升并行处理能力时,则推荐采用Seldon框架部署微服务架构,确保系统的可扩展性和弹性伸缩能力。

2024-03-21

基于gRPC实现的异步推理框架

该项目是基于gRPC实现的异步推理框架。服务端采用python实现,客户端封装了grpc,对外仅提供推理相关的三个c接口,可用于跨进程推理。

2024-03-19

grpc v1.62.0

git clone --recurse-submodules -b v1.62.0 --depth 1 --shallow-submodules https://github.com/grpc/grpc

2024-03-19

百度地图路书功能演示DEMO

百度地图路书功能演示DEMO

2024-03-17

自动生成C结构体到json的序列化、反序列化代码的方法

自动生成C结构体到json的序列化、反序列化代码的方法

2024-02-24

C#实现的键盘记录后台程序,可运行在win10/win11系统.能记录各种键盘按键,并将字符保存到文件中

本文在https://github.com/lambdacasserole/silence 的基础上进行了兼容性调试,可以记录键盘按下的各种字符,并保存到文件中 主要修改点: 1.删除不需要的功能 2.隐藏窗口且不在任务栏显示 3.通过taskkill /im 结束进程 使用方法 1.使能Caps Lock(大写状态) 2.运行KMon.exe,点击隐藏按钮 3.所有的键盘按键都会记录在KMon.log文件里 4.执行taskkill /im KMon.exe关闭后台监控程序

2024-02-20

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除