CUDA 编程系列之三:内存墙与分块(tiling)的诞生

一张 H100 显卡的纸面算力是 66.9 TFLOPS(FP32)。 现在请它跑一个最简单的程序——向量加法 C[i] = A[i] + B[i]——然后测量它实际达到了多少 TFLOPS。 你会得到一个让人怀疑人生的数字:个位数都不到。用直觉说,就是这张卡只发挥了百分之几的力气。 ...

October 3, 2026 · mayulu

CUDA 编程系列之二:SM、warp 与那个反直觉的占用率

当你写下这行代码: myKernel<<<1000, 256>>>(...); 你其实是在说:“给我 25.6 万个线程,去把这件事干了。” 问题来了:这 25.6 万个线程,具体在哪里跑?谁决定谁先谁后?有多少个是同时真的在跑的? ...

October 2, 2026 · mayulu

CUDA 编程系列之一:网格、线程与数据的对位

写 CUDA 的人,遇到的第一个真正意义上的门槛,往往不是语法,而是空间感。 CPU 上写循环写惯了,你的脑子里是一条线:for (int i = 0; i < n; i++),从头到尾,一件事接一件事。而 CUDA 要求你换一副眼镜:你要把一整个数组,一次性地摊开在几千、几万个执行单元面前,然后回答一个问题—— ...

October 1, 2026 · mayulu

Jev模型技术的原理和启示

从ChatGPT诞生以来,我们被一个固有认知绑定:AI模型就该生成文字。各类大模型所有的技术迭代、场景落地、商业化探索,都围绕着自回归文本生成展开。行业默认:统一的文本输入、文本输出,是通用人工智能的唯一标准。 ...

September 22, 2026 · mayulu

异星心智

我们尚未完全理解的智能 2023 年年中,在 “RLSlow” 研究项目中,我们拿到第一批实验结果。这些结果让我们确信,我们可以扩大推理模型的训练规模,释放预训练模型构建自身思维链的能力。当晚,我与希蒙(Szymon)留在办公室。我们没有畅想这项技术将会带来惊艳的基准测试分数、各类产品或是科研突破,而是在消化一个令人清醒的现实:在我们的有生之年,就会出现显著超越人类智慧的机器,而这类系统的雏形已经出现。我们也在思索,该如何向世人点明这件事的重大意义。 ...

September 7, 2026 · mayulu

通往AGI之路:关于大语言模型、强化学习、持续学习、元学习、具身智能的观点和逻辑

引言:AGI范式拐点,规模虽未到头,却需新建机制 过去数年,全球AGI研发长期被规模涌现理论主导。行业普遍信奉:持续扩大预训练数据、算力、模型参数,叠加更大规模的离线强化学习(RL),就能不断解锁新能力,最终自然涌现通用人工智能。这一范式支撑了GPT系列、主流大模型的快速迭代,催生了CoT思维链、智能Agent等里程碑技术,让AI的推理、规划、工具使用能力实现跨越式提升。 ...

August 6, 2026 · mayulu

Jeff Dean 提出的每个工程师都该懂的AI系统核心数字

从事分布式、后端系统开发的工程师几乎没人不知道 Jeff Dean 的传世清单 Latency Numbers Every Programmer Should Know。这份诞生于十余年前的延迟对照表,用直观的纳秒、微妙、毫秒量级对比,讲清了CPU缓存、内存、SSD、磁盘、跨地域网络之间巨大的性能鸿沟,成为系统架构设计的速算手册,无数工程师把它打印贴在工位做性能预判基准。 ...

August 1, 2026 · mayulu

Sebastian Raschka 对 Kimi K3 架构的观察笔记要点

站主按:Sebastian Raschka(塞巴斯蒂安.拉什卡)是全球极具影响力的机器学习、大模型科普作家与研究者,拥有计算生物学博士学位,横跨学术界与产业界。他曾任职威斯康星大学麦迪逊分校统计学终身助理教授,如今在 AI 企业 Lightning AI 担任大模型研究工程师,专注 LLM 架构、推理模型与落地工程实践。他著有多本人工智能经典教材:全球畅销书《Python 机器学习》、爆款实战书籍《从零构建大模型》,配套开源项目 LLMs-from-scratch 在 GitHub 收获超高星标,用清晰代码拆解大模型底层原理。他长期深耕前沿大模型架构解读,撰写大量专业笔记剖析 Kimi、DeepSeek、Nemotron 等主流开源模型,擅长把复杂 AI 理论通俗化,是开发者、科研人员公认的优质学习资源创作者。 ...

July 29, 2026 · mayulu

llama.cpp 系列之三:目录组织

现代软件工程中,目录结构从来不仅限于文件的分类和组织,而是系统架构的物理映射。 llama.cpp 相对完整的目录结构如下图: ├── app │ ├── CMakeLists.txt │ ├── download.cpp │ └── llama.cpp ├── benches ├── cmake │ ├── arm64-apple-clang.cmake │ ├── arm64-linux-clang.cmake │ │ ...... │ └── x64-windows-llvm.cmake ├── CMakeLists.txt ├── CMakePresets.json ├── CODEOWNERS ├── common │ ├── arg.cpp │ ├── arg.h │ ├── base64.hpp │ ├── build-info.cpp │ ├── build-info.cpp.in │ ├── build-info.h │ │ ...... │ ├── speculative.cpp │ ├── speculative.h │ ├── unicode.cpp │ └── unicode.h ├── conversion │ ├── __init__.py │ │ ...... │ └── youtuvl.py ├── convert_hf_to_gguf_update.py ├── convert_hf_to_gguf.py ├── convert_llama_ggml_to_gguf.py ├── convert_lora_to_gguf.py ├── docs ├── examples │ ├── batched │ ├── batched.swift │ │ ...... │ ├── sycl │ ├── training │ └── ts-type-to-grammar.sh ├── flake.nix ├── ggml │ ├── cmake │ ├── CMakeLists.txt │ ├── include │ └── src ├── gguf-py ├── grammars ├── include │ ├── llama-cpp.h │ └── llama.h ├── Makefile ├── media ├── models │ ├── ggml-vocab-aquila.gguf │ ├── ggml-vocab-baichuan.gguf │ │ ...... │ ├── ggml-vocab-viking.gguf.inp │ ├── ggml-vocab-viking.gguf.out │ ├── templates │ └── tokenizers ├── mypy.ini ├── pocs │ ├── CMakeLists.txt │ └── vdot ├── pyproject.toml ├── pyrightconfig.json ├── README.md ├── requirements ├── requirements.txt ├── scripts │ ├── apple │ ├── bench-models.sh │ ├── build-info.sh │ │ ...... │ ├── tool_bench.sh │ ├── ui-assets.cmake │ ├── verify-checksum-models.py │ └── wc2wt.sh ├── SECURITY.md ├── skills │ ├── add-new-model │ └── code-review ├── src │ ├── CMakeLists.txt │ ├── ggml.c │ ├── llama-adapter.cpp │ ├── llama-adapter.h │ ├── llama-arch.cpp │ ├── llama-arch.h │ ├── llama-batch.cpp │ ├── llama-batch.h │ ├── llama-chat.cpp │ ├── llama-chat.h │ ├── llama-context.cpp │ ├── llama-context.h │ ├── llama-cparams.cpp │ ├── llama-cparams.h │ ├── llama-ext.h │ ├── llama-grammar.cpp │ ├── llama-grammar.h │ ├── llama-graph.cpp │ ├── llama-graph.h │ ├── llama-hparams.cpp │ ├── llama-hparams.h │ ├── llama-impl.cpp │ ├── llama-impl.h │ ├── llama-io.cpp │ ├── llama-io.h │ ├── llama-kv-cache-dsa.cpp │ ├── llama-kv-cache-dsa.h │ ├── llama-kv-cache-dsv4.cpp │ ├── llama-kv-cache-dsv4.h │ ├── llama-kv-cache-iswa.cpp │ ├── llama-kv-cache-iswa.h │ ├── llama-kv-cache.cpp │ ├── llama-kv-cache.h │ ├── llama-kv-cells.h │ ├── llama-memory-hybrid-iswa.cpp │ ├── llama-memory-hybrid-iswa.h │ ├── llama-memory-hybrid.cpp │ ├── llama-memory-hybrid.h │ ├── llama-memory-recurrent.cpp │ ├── llama-memory-recurrent.h │ ├── llama-memory.cpp │ ├── llama-memory.h │ ├── llama-mmap.cpp │ ├── llama-mmap.h │ ├── llama-model-loader.cpp │ ├── llama-model-loader.h │ ├── llama-model-saver.cpp │ ├── llama-model-saver.h │ ├── llama-model.cpp │ ├── llama-model.h │ ├── llama-quant.cpp │ ├── llama-quant.h │ ├── llama-sampler.cpp │ ├── llama-sampler.h │ ├── llama-vocab.cpp │ ├── llama-vocab.h │ ├── llama.cpp │ ├── models │ ├── unicode-data.cpp │ ├── unicode-data.h │ ├── unicode.cpp │ └── unicode.h ├── Testing │ └── Temporary ├── tests ├── tools │ ├── batched-bench │ ├── cli │ ├── CMakeLists.txt │ ├── completion │ ├── cvector-generator │ ├── export-lora │ ├── fit-params │ ├── gguf-split │ ├── imatrix │ ├── llama-bench │ ├── mtmd │ ├── parser │ ├── perplexity │ ├── quantize │ ├── results │ ├── rpc │ ├── server │ ├── tokenize │ ├── tts │ └── ui ├── ty.toml └── vendor ├── cpp-httplib ├── miniaudio ├── nlohmann ├── sheredom └── stb llama.cpp 的目录结构高度吻合其高性能 C/C++ 推理框架的定位,展现了克制、务实且高度模块化的架构设计。它没有盲目追求理论上的完美架构,而是针对 C/C++ 语言的特性、硬件加速的复杂性以及大模型推理的业务场景,做出了适度的权衡。 ...

July 24, 2026 · mayulu

llama.cpp 系列之二:架构

本文按逻辑分层结构的方法分析 llama.cpp。 重点是把 API / Runtime / Kernel / Backend / Model Loader / Tool 这些模块分开,注意不要把目录名、可执行文件、库、设备代码混在一起。分析以模块为主,目录只作参考。 ...

July 23, 2026 · mayulu