logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

危险的原子操作陷阱:std::atomic<bool> 为什么不能替代真正的互斥锁

在多核系统架构中,任何脱离硬件缓存体系与操作系统调度规律的“自以为是的优化”,最终都会变成刺向系统稳定性的尖刀。永远无法单枪匹马成为互斥锁。只有深刻理解总线一致性成本,将纳秒级轻量自旋与毫秒级休眠调度有机结合,我们才能打造出真正经受得住工业级极限风暴的高性能并发防线。

文章图片
非对称多核与超线程(SMT)调优:手写规避物理核共享资源争用的 GEMM 线程池

在高性能计算的极致赛道上,不加思索地堆砌线程数量不仅不是智慧,反而常常是对硬件物理特性的无知践踏。超线程技术是一把双刃剑,它为高 I/O 阻塞的多任务系统带来了吞吐红利,却在密集矩阵算子面前成为了撕裂缓存局部性的元凶。通过手写拓扑感知、物理核亲和绑定的专用算子线程池,我们把操作系统的随机调度权重新夺回到了应用程序手中。这种对物理微架构的严密敬畏与精准掌控,正是系统架构师不可替代的专业壁垒。

文章图片
极客眼中的操作系统与硬件边界:为什么现代算子正在逐步“架空”OS

十月中旬的一个深夜,机房监控大屏上的多项指标依然在有条不紊地跳动着。看着监控终端里的一行行数据,我注意到了一个颇具戏剧性的现象:在整台配备了 128 核心、512GB 内存的高性能服务器满载运行万亿参数大模型推理时,Linux 操作系统的 CPU 内核态占用率(sys%)几乎稳定在不可思议的,而上下文切换次数(Context Switches)更是接近于绝对的零。整个操作系统内核(Kernel),

文章图片
透明大页(THP)与 2MB/1GB 巨页调优:手写消除 DTLB Miss 的大模型显存映射器

在超大规模数据流面前,任何轻微的微架构损耗都会被放大为宏观层面的系统灾难。4KB 虚拟内存分页作为通用操作系统的基石,在大数据量、超长序列的现代 AI 计算中早已显露出疲态。通过主动接管内存映射层,用 2MB 与 1GB 静态巨页重塑数据底座,我们不仅抚平了硬件 MMU 的颠簸,更让 CPU 执行流水线在超大张量的方寸之间获得了前所未有的自由奔流。

文章图片
#人工智能#语言模型#后端 +1
NUMA 感知的高性能内存分配:避免跨 Socket 内存访问的节点绑定策略

当服务器核心数突破上百、内存容量迈向 TB 级别时,传统的“平坦内存假说”早已成为阻碍性能的绊脚石。现代高性能系统工程师必须将目光从代码逻辑扩展到服务器主板的物理布线与插槽拓扑之上。通过利用 C++23 强类型内存分配契约与操作系统底层 NUMA 调度工具,我们构建起了数据与算力协同驻留的微观秩序。对硬件物理边界的深刻洞察与精准适配,正是构筑顶尖系统护城河的核心密码。

文章图片
W2 阶段技术漫游:写了十年 C++,为什么我依然对每一颗晶体管心怀敬畏

现代计算机科学的整个繁荣,几乎全部建立在“抽象(Abstraction)”这一伟大基石之上。从晶体管逻辑门到微指令译码,从机器码到高级语言,从操作系统系统调用到底层运行库,每一层都试图向上层许下一个美好的诺言:“你不需要知道我是怎么实现的,你只要按照接口调用,我就会正确且高效地交付结果。然而,在追求极致性能的高性能计算(HPC)与大模型推理领域,物理规律会用最无情的方式打破这种虚假的安宁。这就是分

文章图片
#人工智能#语言模型#后端 +1
PagedAttention 核心架构揭秘:基于虚拟内存页式管理的 KV Cache 显存碎片消除

PagedAttention 是大模型系统工程中最具划时代意义的经典杰作之一。最顶级的系统架构创新,往往不需要去颠覆底层物理规律,而是把计算机科学经典领域的古老智慧(如操作系统的虚拟内存分页),以最高超的洞察移植到全新的问题领域中。深刻理解 PagedAttention 的页表映射与流式寻址机制,是每一位致力于攻坚大模型服务基础设施的底层架构师的必修课题。

文章图片
#人工智能#语言模型#后端 +1
内存页染色(Page Coloring)与 L3 缓存集冲突消除:手写防冲突映射分配器

物理地址中这属于 Set Index 但超出 4KB 页边界的比特位,在计算机科学中被称为页面的“颜色(Color)”。在上述例子中,9 个比特对应了 $2^9 = 512$ 种互斥的颜色:页染色的黄金法则如果我们将互不相关的计算数据(例如 GEMM 算子中的矩阵 A、矩阵 B、矩阵 C)分配给拥有不同颜色的物理页,它们在物理上就绝无可能落入相同的 Cache Set 中!集合冲突缺失在物理硬件层

文章图片
#人工智能#语言模型#后端 +1
物理内存与虚拟地址空间的交界处:一个系统工程师眼中的秩序之美

在大多数应用层开发者的心智模型中,内存往往是一个平坦、无限且廉价的数组。你调用一次new或malloc,系统就返回给你一个看似干净的十六进制指针(例如你顺着这个指针读写数据,操作系统和硬件仿佛隐形了一般,忠实地在背后完成一切支撑。然而,对于整天和高性能算子、大模型显存分配器打交道的底层系统工程师来说,这层平坦的表象之下,奔涌着一条充满精密规则与物理定律的壮阔河流。

文章图片
#人工智能#语言模型#后端 +1
单向屏障的艺术:用 Acquire-Release 语义手写一个高性能自旋锁

在操作系统内核、高性能网络数据面(如 DPDK)以及极致低延迟的实时算子调度引擎中,互斥锁(std::mutex)往往被视为“昂贵”的代名词。因为传统的std::mutex底层依赖于操作系统的 Futex(Fast Userspace Mutex)系统调用。当一个线程发生锁竞争失败时,它会触发从用户态陷入内核态的上下文切换,并将当前线程挂起并让出 CPU。这套线程睡眠与重新唤醒的开销,通常在级别。

文章图片
#人工智能#语言模型#后端 +1
    共 216 条
  • 1
  • 2
  • 3
  • 22
  • 请选择