GPU的SIMT执行模型:为什么32个线程必须执行同一条指令
在AI浪潮席卷全球的今天,GPU已经成为最关键的硬件基础设施。训练一个千亿参数的大语言模型需要数万张GPU协同工作,而每一张GPU内部又同时运行着数百万个线程。这种前所未有的并行能力从何而来?答案藏在GPU最核心的执行模型中——SIMT(Single Instruction Multiple Threads)。 ...
在AI浪潮席卷全球的今天,GPU已经成为最关键的硬件基础设施。训练一个千亿参数的大语言模型需要数万张GPU协同工作,而每一张GPU内部又同时运行着数百万个线程。这种前所未有的并行能力从何而来?答案藏在GPU最核心的执行模型中——SIMT(Single Instruction Multiple Threads)。 ...
一行代码的千里之行 当你写下 write(1, "Hello, World!\n", 14) 这行代码时,你实际上正在发起一场跨越两个世界的旅行。这行代码将穿越CPU的特权级边界,从你熟悉的用户空间进入神秘的内核空间,完成一次完整的系统调用。 ...
凌晨三点,调度系统报警。运维工程师打开监控面板,发现数千个定时任务处于"执行中"状态,但实际没有任何任务在运行。数据库连接池耗尽,CPU 利用率却接近零。这是典型的调度器"假死"现象——调度器认为任务正在执行,执行器却早已失去响应。 ...
2007年,第一代iPhone发布时,一个看似微小的设计决策,让移动Web开发者在接下来的十年里饱受困扰:当用户在移动设备上点击一个按钮时,浏览器会故意等待约300毫秒才触发点击事件。这段时间足够用户再点击一次——如果真的发生了第二次点击,浏览器就会执行双击缩放操作,放大页面内容。 ...
WebAssembly 从诞生之初就被设计为一种安全的执行环境。官方文档明确宣称它提供"沙箱隔离、内存安全、控制流完整性"三大安全保证。然而,从2020年USENIX Security的开创性研究到2024-2025年的最新学术论文,一系列研究揭示了WebAssembly安全边界的真实状况:它的沙箱不是金钟罩,而是一个充满漏洞的隔离层。 ...
1985年,英特尔发布386处理器时,4KB的页面大小是一个合理的选择。那时候一台电脑的内存不过几兆字节,4KB页面既能保证内存利用率,又不会给页表带来太大压力。四十年过去了,服务器内存已经从兆字节增长到太字节,增长了百万倍,但页面大小依然是4KB。这个遗留设计正在成为高性能系统的隐形瓶颈。 ...
你正在咖啡馆里用笔记本远程办公,突然需要访问公司内网的一个数据库。这个数据库只监听在服务器的 127.0.0.1:5432 上,没有暴露公网端口,防火墙也严密封锁了直接访问。你该怎么办? ...