- 博客(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
原创 基于pytorch hook机制,生成一次前后向的timeline
本文通过pytorch hook机制,拦截所有子module的forward和backward,统计执行时间及内存使用情况。
2024-04-20 11:54:38 789 1
原创 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
原创 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
原创 deepspeed学习-多机all_reduce
本文演示了如何采用deepspeed做多机torch.distributed.all_reduce。
2024-04-04 15:51:37 642
原创 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
原创 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
原创 以调试ffmpeg为例,演示gdb如何定位内存被修改
本文演示了如何使用gdb定位avformat_find_stream_info函数破坏codecpar变量的情况
2024-03-13 21:37:15 524
原创 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
原创 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
ffmpeg 异步推理filter源码
2024-03-21
grpc v1.62.0
2024-03-19
C#实现的键盘记录后台程序,可运行在win10/win11系统.能记录各种键盘按键,并将字符保存到文件中
2024-02-20
怎么能把CSDN上的博文自动生成短视频呢
2024-02-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人