Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

FUSE: 让文件系统工作在用户空间 读完这篇文章,你会理解:为什么文件系统必须住在内核里;这件事给"自定义文件系统"制造了什么根本矛盾;FUSE 如何用"内核空壳 + 用户态灵魂"的解耦化解这个矛盾;以及这种解耦的性能代价和适用边界。 从一个具体需求说起 假设你接到一个需求:把远程服务器的目录挂载成本地文件夹,让同事直接用 vim、grep、文...

本周科技要闻 | 6.7–6.13 一周科技圈大事速览,国内外要闻一次看完。 1. Claude Fable 5 遭美国政府叫停 据 Anthropic 最新声明:因美国政府指令,公司正对所有用户暂停 Claude Fable 5 的访问,其余 Claude 模型不受影响。具体而言——在 Claude 各产品中,新会话将切换到用户默认模型或 Opus 4.8,已有的 Fable 5 会话会...

工程实践:实现单机 GPU/CPU 混部 这篇文章记录了我们在 GPU 训练机器上实现 CPU 任务混部的完整过程。读完之后,你会了解:GPU 训练任务的数据加载链路(DataLoader → 共享内存 → 锁页内存 → DMA → GPU HBM)中哪些环节对 NUMA 敏感;为什么 Linux 的 First-Touch 内存策略在混部场景下会产生问题,以及如何通过 MPOL_INTE...

最近把一个 Kubernetes 集群从旧版本升级到了新版本,集群里跑着一个自研的 device plugin(以 DaemonSet 形式部署)。升级前一切正常,升级后这个 DaemonSet 一启动就疯狂报错: 12345Set vendor name: example.comSet resource name: cool-deviceSet device number: 8E Dev...

从第一性原理理解 NUMA 一、一个反直觉的现象 先看一个例子。 我们有一台双路服务器,里面装了两颗 CPU,跑一个内存敏感的服务。同样的硬件、同样的代码、同样的负载,做两件事: 不绑核:让操作系统自由调度 绑核:用 numactl 把进程绑到一颗 CPU 上 结果绑核的版本性能高了将近 30%。 奇怪吗?理论上"内存就是内存",访问哪一块都一样,为什么仅仅是&quo...

从第一性原理理解分布式训练 这篇文章不打算从"DP / TP / PP / ZeRO"这些名词出发,而是反过来:先回到训练这件事的物理与数学约束,再让每一种并行策略和优化技巧"自己长出来"。 读完之后,希望你看到任何一种新的并行方案,都能立刻问出一个对的问题——它在解决哪个约束?代价是什么? 一、引子:为什么单卡装不下了? 训练一个深度学习模型,...

为什么需要 GMP? 根本问题:如何用少量 OS 线程,高效运行海量并发任务? 操作系统线程很重(栈默认 1-8MB,切换需要内核介入,创建销毁开销大)。但我们想要能轻松启动 百万级并发 的语言。 这逼出了一个核心设计决策:在用户态实现调度。 三个核心实体 G(Goroutine)— 任务 用户态"线程",初始栈仅 2-4KB,可动态增长 本质是一个描述"待...
Go

1. 根本问题:并发程序如何安全地共享数据? 并发的本质矛盾是:多个执行流(goroutine)需要协作,但同时访问共享内存会导致数据竞争。 解决思路有两条: 共享内存 + 锁:大家都能访问,但要抢锁(mutex) 消息传递:数据的所有权随消息转移,不共享 Go 选择了后者,并将其哲学浓缩为一句话: "Don't communicate by sharing memory; ...
Go

背景知识 RabbitMQ RabbitMQ是一个基于高级消息队列协议 (Advanced Message Queue Protocal, AMQP) 的消息中间件,使用erlang开发,整体架构分为生产者(producer), 交换机(exchange), 队列(queue)和消费者(consumer),整体结构如下: 和常见消息队列不同,RabbitMQ中没有topic的概念,而是使用...
MQ

前言 git作为日常开发中的必备工具,这篇文章主要介绍git的基本原理和一些常见的git使用场景。 git 分区介绍 在 Git 中,有三个主要的区域:工作区(Working Directory)、暂存区(Staging Area)和仓库(Repository)。工作区是当前正在编辑和修改的项目目录。 暂存区是 Git 仓库中的一个临时存储区域,当我们执行 git add 命令时,工作区中的...
git