自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 CUDA C++ Best Practices Guide读书笔记

(少数线程,跑得快)(海量线程,用并发掩盖延迟)

2026-03-18 18:30:22 194

原创 Matrix Multiplication Tiling

CostnaiveCosttiled2mnk2mnkbbCosttiled​Costnaive​​b2mnk​2mnk​b结论引入大小为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

原创 LeetCode之路

参考官方提供的一个。

2026-02-10 15:59:26 335

原创 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

原创 AI编译器技术栈

参考博文:知乎

2025-12-19 15:48:11 385

原创 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

原创 Bazel搭建CUDA工程入门

工程目录:测试输出:参考仓库:CUDA rules for Bazel 及 examples

2025-03-07 19:39:29 689

原创 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

原创 FlashAttention+KvCacheSlice算子共存问题

FlashAttention和KvCacheSlice算子共存问题

2025-02-24 20:35:15 213

原创 torch-xla动态shape——通过torch.nonzero分析mhlo实现

【代码】torch-xla动态shape——通过torch.nonzero分析mhlo实现。

2025-02-16 17:25:46 564

原创 XLA中生成Causal Mask上三角-inf矩阵

生成CausalAttentionMask的上三角。

2024-11-07 20:06:50 394

原创 使用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

原创 基于XLA_GPU的llama7b推理

docker和conda两种方式均测试OK。

2023-12-25 19:22:23 734

原创 由于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

原创 TMP: 利用std::tuple完成运行期的if...else替换

client code:

2023-08-25 15:21:35 168

原创 XLA-mhlo-transpose

HLO在编译期的transpose,常量折叠优化后,从row-major变为了column-major。转换为MHLO后,由于丢弃了layout信息,MHLO沿用row-major,导致运行期出错。

2023-08-10 19:56:13 309

原创 利用指向数据成员的指针实现容器对象数据成员的筛选

【代码】利用指向数据成员的指针实现容器对象数据成员的筛选。

2023-06-19 14:19:37 165

原创 evaluate pre-trained keras ResNet50 on imagenet2012

【代码】evaluate pre-trained keras ResNet50 on imagenet2012。

2023-04-25 19:15:28 445

原创 记一次HEAP CORRUPTION DETECTED问题及解决

一次HEAP CORRUPTION DETECTED问题及解决

2022-08-18 16:33:43 1289 1

原创 读书笔记系列2:《More Effective C++》

More Effective C++书摘及代码示例

2022-07-21 21:15:03 1440

原创 读书笔记系列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

Claude Code Skill /paper

Claude Code Skill /paper

2026-03-18

CUDA 11.7 samples

用以测试系统cuda是否可用

2024-08-28

module-0982.SyncTensorsGraph.9515.sm-8.0-gpu-after-optimizations

D:\Workspace\XLA-GPU CodeGen\streaming_llm\gen2\opt\module_0982.SyncTensorsGraph.9515.sm_8.0_gpu_after_optimizations.txt

2024-06-04

module-0004.SyncTensorsGraph.7578.sm-8.0-gpu-after-optimizations

D:\Workspace\XLA-GPU CodeGen\pytorch-tpu-infer\bucketing128_1\module_0004.SyncTensorsGraph.7578.sm_8.0_gpu_after_optimizations.txt

2024-06-04

指针与内存(PointersAndMemory)

出自斯坦福大学在线cs文档库,指针与内存,对学习指针的使用非常有帮助。

2018-11-06

空空如也

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

TA关注的人

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