博客
分类
标签
归档
关于
博客
分类
标签
归档
关于
Tau的博客
文章
分类
标签
归档
关于
FUSE: 让文件系统工作在用户空间
FUSE: 让文件系统工作在用户空间 读完这篇文章,你会理解:为什么文件系统必须住在内核里;这件事给"自定义文件系统"制造了什么根本矛盾;FUSE 如何用"内核空壳 + 用户态灵魂"的解耦化解这个矛盾;以及这种解耦的性能代价和适用边界。 从一个具体需求说起 假设你接到一个需求:把远程服务器的目录挂载成本地文件夹,让同事直接用 vim、grep、文...
2026-06-16
操作系统
操作系统
Read More
本周科技要闻
本周科技要闻 | 6.7–6.13 一周科技圈大事速览,国内外要闻一次看完。 1. Claude Fable 5 遭美国政府叫停 据 Anthropic 最新声明:因美国政府指令,公司正对所有用户暂停 Claude Fable 5 的访问,其余 Claude 模型不受影响。具体而言——在 Claude 各产品中,新会话将切换到用户默认模型或 Opus 4.8,已有的 Fable 5 会话会...
2026-06-13
科技资讯
科技资讯
Read More
工程实践:实现单机GPU-CPU混部
工程实践:实现单机 GPU/CPU 混部 这篇文章记录了我们在 GPU 训练机器上实现 CPU 任务混部的完整过程。读完之后,你会了解:GPU 训练任务的数据加载链路(DataLoader → 共享内存 → 锁页内存 → DMA → GPU HBM)中哪些环节对 NUMA 敏感;为什么 Linux 的 First-Touch 内存策略在混部场景下会产生问题,以及如何通过 MPOL_INTE...
2026-06-04
云原生
云原生
Read More
一次Kubernetes升级引发的Device Plugin注册失败
最近把一个 Kubernetes 集群从旧版本升级到了新版本,集群里跑着一个自研的 device plugin(以 DaemonSet 形式部署)。升级前一切正常,升级后这个 DaemonSet 一启动就疯狂报错: 12345Set vendor name: example.comSet resource name: cool-deviceSet device number: 8E Dev...
2026-05-29
Kubernetes
Kubernetes
Read More
从第一性原理理解NUMA
从第一性原理理解 NUMA 一、一个反直觉的现象 先看一个例子。 我们有一台双路服务器,里面装了两颗 CPU,跑一个内存敏感的服务。同样的硬件、同样的代码、同样的负载,做两件事: 不绑核:让操作系统自由调度 绑核:用 numactl 把进程绑到一颗 CPU 上 结果绑核的版本性能高了将近 30%。 奇怪吗?理论上"内存就是内存",访问哪一块都一样,为什么仅仅是&quo...
2026-05-10
操作系统
操作系统
Read More
从第一性原理理解分布式训练
从第一性原理理解分布式训练 这篇文章不打算从"DP / TP / PP / ZeRO"这些名词出发,而是反过来:先回到训练这件事的物理与数学约束,再让每一种并行策略和优化技巧"自己长出来"。 读完之后,希望你看到任何一种新的并行方案,都能立刻问出一个对的问题——它在解决哪个约束?代价是什么? 一、引子:为什么单卡装不下了? 训练一个深度学习模型,...
2026-05-09
Read More
浅谈Go的GMP模型
为什么需要 GMP? 根本问题:如何用少量 OS 线程,高效运行海量并发任务? 操作系统线程很重(栈默认 1-8MB,切换需要内核介入,创建销毁开销大)。但我们想要能轻松启动 百万级并发 的语言。 这逼出了一个核心设计决策:在用户态实现调度。 三个核心实体 G(Goroutine)— 任务 用户态"线程",初始栈仅 2-4KB,可动态增长 本质是一个描述"待...
2026-05-03
Go
Go
Read More
浅谈Go语言中的Channel
1. 根本问题:并发程序如何安全地共享数据? 并发的本质矛盾是:多个执行流(goroutine)需要协作,但同时访问共享内存会导致数据竞争。 解决思路有两条: 共享内存 + 锁:大家都能访问,但要抢锁(mutex) 消息传递:数据的所有权随消息转移,不共享 Go 选择了后者,并将其哲学浓缩为一句话: "Don't communicate by sharing memory; ...
2026-05-03
Go
Go
Read More
分享一个RabbitMQ MQTT插件的坑
背景知识 RabbitMQ RabbitMQ是一个基于高级消息队列协议 (Advanced Message Queue Protocal, AMQP) 的消息中间件,使用erlang开发,整体架构分为生产者(producer), 交换机(exchange), 队列(queue)和消费者(consumer),整体结构如下: 和常见消息队列不同,RabbitMQ中没有topic的概念,而是使用...
2024-05-25
MQ
MQ
Read More
【git篇】聊一聊git rebase和git checkout
前言 git作为日常开发中的必备工具,这篇文章主要介绍git的基本原理和一些常见的git使用场景。 git 分区介绍 在 Git 中,有三个主要的区域:工作区(Working Directory)、暂存区(Staging Area)和仓库(Repository)。工作区是当前正在编辑和修改的项目目录。 暂存区是 Git 仓库中的一个临时存储区域,当我们执行 git add 命令时,工作区中的...
2024-05-01
git
git
Read More
1 / 9
Next