- 博客(64)
- 资源 (1)
- 收藏
- 关注
原创 CUDA性能指标
内存时钟频率(Hz) × 总线位宽(bytes) × 2(双倍速率)= (读字节数 Br + 写字节数 Bw) ÷ 10⁹ ÷ 时间(s)这个比值是衡量内存优化效果最直接的数字。比值低,说明内存访问模式有问题。这是硬件物理上限,你的 kernel 永远无法超过这个值。GFLOPS = 浮点运算次数 / 时间(s) / 1e9。理论带宽(Theoretical Bandwidth)有效带宽(Effective Bandwidth)= 有效带宽 / 理论带宽。
2026-03-23 12:56:19
81
原创 框架执行模式及对比
开发调试期:坚持使用Eager Mode,快速排除算法逻辑错误。TPU 训练:必须学习并配置torch-xla,理解mark_step的节奏。GPU 生产加速:在代码头部加入尝试无感提速。端侧部署:将成熟的模型导出为ONNX静态图。文档生成于:2026年3月20日。
2026-03-20 17:34:19
282
原创 Matrix Multiplication Tiling
CostnaiveCosttiled2mnk2mnkbbCosttiledCostnaiveb2mnk2mnkb结论引入大小为bbb的分块策略,可以将总内存访问次数减少为原来的1b1/b1/b。也就是说,块越大,内存访问越少,理论性能提升越明显。
2026-03-16 18:53:41
398
原创 策略A题解
对于 “两数之和” 问题,经典的优化方法是使用 哈希表 (Hash Map / Dictionary) 来。不足,复杂度O(n^2),leetcode:超出时间限制。不足:最差情况复杂度O(n^2);第一时间没有想到解法;,将复杂度降低到 O(n)。
2026-03-04 17:42:05
103
原创 LeetCode 策略A
上午(2小时)复习Week 1所有模板整理错题重做2-3道卡住的题下午(1.5小时)定时练习(40分钟做2道Medium)定时练习题目题号题目难度要求75Medium20min内AC143Medium20min内AC328Medium加练148Sort ListMedium加练(归并排序)Week 1 总结Checklist双指针模板能默写滑动窗口模板能默写链表反转能秒写快慢指针能灵活运用前缀和技巧理解透彻。
2026-03-04 09:14:52
440
原创 通过dlopen解决static变量初始化中加载库找不到库的问题
阶段sdk 在 RTLD_GLOBAL??结果静态init(修复前)否NULL找不到→FATAL静态init(修复后)是(dlopen提升)NULL(不自动更新)找到 → 早退正常构造函数是可能非NULL找到 → 早退正常。
2026-03-02 16:38:38
1015
原创 Linux中LD_PRELOAD工作原理及使用示例
LD_PRELOAD是 Linux 系统中的一个环境变量,它允许你在程序运行前指定要优先加载的动态链接库(.so 文件)。这个机制是动态链接器(ld-linux.so)提供的功能。大多数C程序使用printf输出时都会被hook到。LD_PRELOAD是一个强大的工具,可以在不修改程序的情况下改变其行为。通过hookprintf监控程序输出添加调试信息修改输出格式实现日志增强这种技术在调试、性能分析、安全审计等场景中非常有用。
2026-02-27 16:53:04
1190
原创 DAG (Directed Acyclic Graph)
在编译器设计中,DAG(Directed Acyclic Graph,有向无环图)是一种用于中间代码优化的重要数据结构,尤其在基本块(Basic Block)的局部优化中广泛应用。
2025-12-22 16:58:38
273
原创 putty配置密钥登录
打开PuTTYgen,选择上述的私钥~/.ssh/id_rsa,点击save private key为~/.ssh/id_rsa-putty.ppk点击save public key为/.ssh/authorized_keys中配置ssh选项如下。
2025-12-19 18:48:57
554
原创 pytorch自定义backend
pytorch tutotial Facilitating New Backend Integration by PrivateUse1相关api:torch.utils.rename_privateuse1_backendpytorch tutorial Customize Process Group Backends Using Cpp Extensions相关api:torch.distributed.Backend.register_backendtorch.distributed.init
2025-11-30 11:32:39
391
原创 LLM多batch推理时mask的处理
其中attention_mask由2部分构成:左边为(seq_len, pad_len),值全部为-inf,右边为(seq_len, max_seq_len - pad_len)值为0。即final_mask = input.attention_mask + casual_attention_mask。14 padding到seq_len=20: pad_len = 6。14 padding到seq_len=15: pad_len = 1。
2025-03-07 19:19:53
546
原创 torch-xla动态shape——通过torch.nonzero分析mhlo实现
【代码】torch-xla动态shape——通过torch.nonzero分析mhlo实现。
2025-02-16 17:25:46
564
原创 使用Google开源工具gperftools进行堆内存占用分析
背景:项目中有多卡训练的需求,多进程时每个进程都需要编译,占用内存过大,需要找出内存占用多的点并尝试优化。目标程序是python的多进程程序,多卡训练,程序包含python及c++库,尝试过其他工具发现并不合适,最终采用此工具。This is the heap profiler we use at Google, to explore how C++ programs manage memory. This facility can be useful for:有2种使用方式,这里采用非侵入式的方式,即通
2024-10-10 17:39:04
786
原创 XLA之HloModule“合并”
项目里有这样的一个需求,后端要求将特定模式的的算子融合为传下去。例如下面的HLO计算图,需要将省略部分之间的算子融合为CustomCall。
2024-04-25 23:54:32
702
原创 pytorch-tpu/llama推理优化之input prompt bucketing
数据更新:python脚本(注意分支):HLO图分析KV-Cache更新:KV-Cache作为HLO图的输入输出:bf16[1,2048,32,128]{3,2,1,0} 128x, 2x32x2。
2024-04-01 15:50:31
506
原创 torch-xla在多GPU下NCCL ncclUniqueId的生成过程
生成过程:在rank 0上创建MeshService,也就是GRPC的服务端,每个rank创建一个MeshClient,即GRPC的客户端,客户端通过GRPC请求向服务端获取ncclUniqueId(因为多进程环境,所以请求天然是多线程的,响应也同理,线程安全);由于一个通信组内的请求参数replicas(即rank列表,例如2个rank时:0,1)相同,所以总是得到相同的ncclUniqueId。这是一个典型的ncclUniqueId生成和应用场景。对于不能提供CPU侧通信机制。
2024-03-07 16:28:05
787
原创 torch-xla - op appears to be a view operator, but it has no implementation for the backend “xla:0“
查阅torch-xla issues,2.0版本这些算子没有对应的op lowering(实现)。结合2.0上运行非常慢(耗时~=2.1的几十倍),是否会因此将图拆的很碎?导致慢的真正原因是?测试pytorch-tpu/llama推理时,其模型Attention层在前向时,会多次调用。具体解决参见 MR 4887或2.1版本实现。下面为2.1(左)和2.0(右)的HLO对比。
2023-12-29 22:08:17
655
原创 CentOS7升级内核后,NVIDIA driver出错解决(重新安装)
再次安装时,出现了gcc版本不匹配的问题。由于未安装与kernel相同版本的kernel-devel,导致安装出错。从报错看,应该是NVIDIA driver出错。此时再次安装,成功。
2023-12-29 13:13:23
1664
原创 由于CUDA OOM,对XLA(HLO)内存分配过程的一点总结
单卡(A800, 80GB)测试llama7B时出现CUDA OOM,从日志看,是分配preallocated temp allocation时,出现了OOM。
2023-12-20 19:39:40
1210
原创 pthread_create返回值错误码11 (EAGAIN)或libgomp: Thread creation failed: Resource temporarily unavailable错误
分析:此主机多用户使用,资源占用非常大,且大多数情况下在docker容器内操作,不容易遇到这类问题(root与非root用户限制不同);且同样的配置下,在docker内,确实也不会出现上述问题。参考ChatGPT给出的方案,注意需要。
2023-12-18 14:40:13
2115
原创 运行torch_xla时,提示找不到cuda相关库(torchvision版本错误)
注意到torchvision,对比docker下的正常环境,发现torchvision版本略有差异,大胆猜测是torchvision导致,直接下手干!
2023-12-16 15:13:30
3355
原创 解决多卡机器CUDA Error Code 802(CUDA_ERROR_SYSTEM_NOT_READY)
解决多卡机器安装完CUDA后,出现802错误码:Fabric Manager需要和Driver具有完全一致的版本号。
2023-12-14 16:11:55
4518
原创 Load mlir(mhlo/lmhlo) and execute on GPU
【代码】Load mlir(mhlo/lmhlo) and execute on GPU。
2023-11-30 20:44:41
1176
原创 XLA-mhlo-transpose
HLO在编译期的transpose,常量折叠优化后,从row-major变为了column-major。转换为MHLO后,由于丢弃了layout信息,MHLO沿用row-major,导致运行期出错。
2023-08-10 19:56:13
309
原创 evaluate pre-trained keras ResNet50 on imagenet2012
【代码】evaluate pre-trained keras ResNet50 on imagenet2012。
2023-04-25 19:15:28
445
原创 读书笔记系列1:《C++必知必会》
时间来到2022年4月13日,已过而立,回忆之前的生涯,如过眼浮云,平淡而不知所踪。此刻尝试记录工作和学习中的点滴,就从第一篇读书笔记开始吧。本文是读书笔记系列的第一篇,书名是《C++必知必会》,英文名《C++ Common Knowledge: Essential Intermediate Programming》。......
2022-04-18 11:12:37
789
原创 Unity 自动化构建方案:一键实现版本管理与打包、压缩
个人感觉Unity打包过程有些不人性化,最近受到频繁的Unity打包的困扰,思考有没有类似于AndroidStudio那样的通过动态脚本对打包,升级版本号,及压缩的管理方案,网上搜了一下,有相关的实现方案,拿来修改之后,最终算是实现了项目的打包管理,打包过程简化了不少,脚本如下:using UnityEngine;using UnityEditor;using System;using S...
2019-01-25 10:57:32
5254
原创 Unity使用Mesh组件画圆环
最近项目中有画圆环的需求,这里把代码贴上来。转载请注明出处。效果//调用void Start () { Material material = Resources.Load<Material>("Materials/GreenLine"); DrawUtils.DrawRing(new GameObject(),Vector3.zero,40,1.2f,0.2f,...
2018-10-22 22:55:34
3340
原创 上拉查看详情和下拉隐藏详情
项目商品详情页的需求,实现上拉显示和下拉隐藏详情的功能,最终效果图。核心代码 //上拉组件 @Bind(R.id.xscrollview) XScrollView mXscrollview; @Bind(R.id.scrollContainer) LinearLayout scrollContainer; //下拉组件 @Bind(R.id.sc
2017-05-08 14:05:03
17914
3
module-0982.SyncTensorsGraph.9515.sm-8.0-gpu-after-optimizations
2024-06-04
module-0004.SyncTensorsGraph.7578.sm-8.0-gpu-after-optimizations
2024-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅