作者小头像 Lv.7
更多个人资料
9096 成长值
30 关注
86 粉丝
+ 关注 私信

个人介绍

菠萝菠萝蜜,急急如律令

感兴趣或擅长的领域

自动化运维、人工智能、测试、网络技术
个人勋章
  • 活跃之星
  • 考证狂人
成长雷达
6490
1611
525
450
20

个人资料

个人介绍

菠萝菠萝蜜,急急如律令

感兴趣或擅长的领域

自动化运维、人工智能、测试、网络技术

达成规则

以上满足项可达成此勋章

  • 博客
  • 关注
  • 粉丝
  • 论坛
全部时间
全部时间
最近三天
最近一周
最近一月
  • 全部
  • TorchNpu
  • MindSpore
  • CUDA
  • DeepSeek
  • 昇腾
  • DPDK
  • 监控观察
  • 网络基础
  • 流媒体
  • Firewall
  • 数据安全
  • IoT
  • 编程语言
  • 鸿蒙
  • 虚拟化
  • 鲲鹏
  • Linux
  • AI
  • 大数据-数仓
  • 网络安全
mssanitizer: 典型案例与 FAQ 排雷手册
系列四 · 第 15 篇这是本系列的最后一篇,不展开新原理了,把前面散落的实战要点和几个高频坑收拢成一份速查,方便你上手后少走弯路。先说检测顺序。官方建议的姿势是:先 memcheck 查内存,再 racecheck 查竞争,接着 initcheck 查未初始化,最后 synccheck 查同步。这个顺序有它的道理——内存问题最基础也最常见,先扫清底层雷,再上更耗时、更依赖时序的检测,免得被...
作者小头像 黄生 2026-09-18 10:03:07
3
0
0
2026-09-18 10:03:07
3
0
0
开放接口与生态接入——从单算子到 PyTorch、Triton
系列四 · 第 14 篇一个检测工具光自己好用还不够,得能走进用户千奇百怪的用法里。昇腾算子有各种被调起来的方式:直接写 Ascend C 单算子、经框架的 AclNN 接口、从 PyTorch 走 TorchNPU、乃至用 Triton 写 kernel。msSanitizer 为这些场景准备了两类对外接口。第一类叫 sanitizer 接口,本质是给 CANN 软件栈用的一组"替身"。它...
pytorch
作者小头像 黄生 2026-09-18 10:01:24
3
0
0
2026-09-18 10:01:24
3
0
0
插件化架构与并行处理——工具自身的工程素养
系列三 · 第 13 篇一个工具能跑通和"好维护、好扩展"是两回事。msSanitizer 有四种(外加隐形的第五种)检测,以后难免再加新的,代码的组织方式直接决定了加一种新检测要动多少刀。它选择的是经典的插件化套路:工厂 + 注册器。每种检测算法都实现同一套接口(基类叫 SanitizerBase),方法名整齐划一——初始化设备信息、初始化算子信息、处理一条记录、处理在线错误、收尾清理。真...
任务调度
作者小头像 黄生 2026-09-18 09:37:30
6
0
0
2026-09-18 09:37:30
6
0
0
指令解析——工具是怎么"读懂"一条昇腾指令的
系列三 · 第 12 篇前面反复提到"探针",它们要记录内存访问,可一条昇腾指令究竟碰了哪块内存、多大范围,工具是怎么知道的?答案藏在一个反直觉的事实里:工具不是靠"反汇编"去猜指令语义,而是让编译器直接把答案递到你手上。昇腾的算子源码,最终要经过一个叫 CCE(Cube Compute Engine)的编译器,翻译成 NPU 能跑的指令。而上层的算子代码本质是 C++ 风格的内建函数——搬...
昇腾
作者小头像 黄生 2026-09-18 09:31:48
9
0
0
2026-09-18 09:31:48
9
0
0
动态插桩——不重编译,也能给算子"装监控"
系列三 · 第 11 篇上篇埋了个钩子:工具在 rtKernelLaunch 这个口子、算子真正开跑前,做了一件事。这件事,就是本篇的主角——动态二进制插桩(DBI)。先回到一个矛盾。第 2 篇说过,要检测就得在编译时插桩,因为那些记录事件的"探针"是编译期埋进去的。可总有些场景没法重编译——算子二进制是别人给的,或者重编一次的代价太大。怎么办?答案是:不改源码、不重编译,直接对着已经编译好...
昇腾
作者小头像 黄生 2026-09-18 09:23:08
9
0
0
2026-09-18 09:23:08
9
0
0
运行时劫持——在不动你代码的前提下"接管"算子
系列三 · 第 10 篇前面都在说工具"能查出什么",这篇换个视角,讲它"凭什么能插手"。你明明没把工具代码塞进算子里,它却能在算子运行时耳聪目明,越界、竞争一堆细节尽收眼底。秘密在于一个老牌的 Linux 机制:LD_PRELOAD。LD_PRELOAD 的作用,是允许你"顶替"动态库里的某些函数。具体到昇腾:算子在 host 侧干活时,要调用 runtime 提供的一堆接口——申请内存、...
任务调度
作者小头像 黄生 2026-09-18 09:11:00
4
0
0
2026-09-18 09:11:00
4
0
0
同步检测与寄存器复位——SetFlag/WaitFlag 的配对、冗余与卡死
系列二 · 第 9 篇Ascend C 算子里,不同流水线之间靠一对原语接头:SetFlag 发信号,WaitFlag 等信号。配对的它们像"暗号 + 回应"——一条流水说"我这边数据好了",另一条回应"收到,我开始读"。这套同步一旦乱了套,下游不是数据竞争就是整个算子卡死。synccheck 就是盯着这对暗号找茬的,找茬分三招。第一招,查配对。每个 SetFlag 都该有对应 WaitFl...
作者小头像 黄生 2026-09-18 09:09:38
4
0
0
2026-09-18 09:09:38
4
0
0
数据竞争检测(下)——扫描线与四种战场
系列二 · 第 8 篇上篇解决了"谁先谁后"(并发),这篇补齐另一半:“有没有踩到同一块内存”(重叠),再把两种判定合起来看个全景。判断重叠,最朴素的想法是两两比较:把每个访问和所有其他访问都问一遍"你俩重不重、并不并发"。小算子里这能转,可一旦访问事件成千上万,两两配对就是天文数字。msSanitizer 用的是"扫描线算法"。想象一条地址轴,从低地址扫到高地址。每个内存访问都拆成两个端点...
作者小头像 黄生 2026-09-17 21:33:34
9
0
0
2026-09-17 21:33:34
9
0
0
数据竞争检测(上)——向量时钟与"谁先谁后"
系列二 · 第 7 篇从这篇起,我们进入四大检测里技术含量最高的一块:数据竞争(racecheck)。先明确它要回答的问题。两个内存访问,一个读一个写(或者都写),如果它们之间没有明确的先后顺序,就会在运行时"抢",谁先执行谁后执行由调度说了算,结果无法复现——这就是数据竞争。所以竞争检测的命门就两个词:重叠(它们指向同一块内存吗)+ 并发(它们之间有先后吗)。这篇先啃最硬的骨头:怎么判断"...
作者小头像 黄生 2026-09-17 21:32:56
9
0
0
2026-09-17 21:32:56
9
0
0
未初始化检测——追着"从没被写过"这件事不放
系列二 · 第 6 篇写过算子的同学都知道,拿到一块新内存,里面的内容是不确定的——可能是上一轮算子的残留,也可能是随机垃圾。要是不小心读了这种内存,读出来的值就是隐藏的地雷。msSanitizer 的 initcheck,就是专门抓"读了从没写过的东西"的。它的底气,还是来自第 3 篇那张影子账本。回想一下,账本里每个字节的状态有几个关键取值:NOACCESS(不可访问)、UNDEFINE...
作者小头像 黄生 2026-09-17 21:04:41
9
0
0
2026-09-17 21:04:41
9
0
0
总条数:429
10
10
20
50
100
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • ...
  • 43

上滑加载中

https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=0&rsv_idx=1&tn=baidu&wd=sed%20%E6%9B%BF%E6%8D%A2%E5%AD%97%E7%AC%A6%E4%B8%B2&rsv_pq=c7db61a600035dc5&rsv_t=5e19yEsbV9N5fIvdlGRU
作者小头像
作者小头像
快速交付
+ 关注