Skip to content
Gains Summary
Main Navigation 首页 / Home
C++ 编程 / C++ Programming
系统与高性能 / Systems & Performance
Web 开发 / Web Development
人工智能 / Artificial Intelligence
工业软件 / Industrial Software
其他内容 / Other Topics
C++ 编程 / C++系统与性能 / SystemsWeb 开发 / Web人工智能 / AI工业软件 / Industrial

外观

Sidebar Navigation

← 系统与高性能 / Systems & Performance

计算系统 / Computing Systems

1. 计算系统:计算机如何执行与加速程序

2. 从 C++ 源码到 CPU 执行

3. CPU 流水线、乱序执行与分支预测

4. Cache、一致性、伪共享与 NUMA

5. GPU、SM、Warp 与显存

6. 计算执行模型:程序怎样映射到机器

7. SIMD 与编译器向量化

8. C++ 多线程与 OpenMP

9. CUDA 平台与编程模型

10. CUDA Kernel、内存与性能

11. CPU-GPU 异构流水线

12. MPI 与分布式并行

13. 并行算法模式

14. 性能模型与工具

15. 递进学习项目:从单线程到集群

历史完整正文 / Original Deep Dives

1. 历史完整正文:统一前文章逐篇保留

原体系结构与硬件 / Original Architecture

1. 硬件编程与高性能计算:一张可走通的学习地图 / A Practical Learning Map for Hardware Programming and HPC

2. 计算机体系结构:CPU、内存与 GPU / Computer Architecture: CPUs, Memory, and GPUs

3. 计算机架构基础——为什么 GPU 比 CPU 更快 / Computer Architecture Fundamentals: Why GPUs Outperform CPUs

4. 并行计算理论——30 天训练能优化到多快? / Parallel Computing Theory and the Limits of Training Acceleration

5. GPU 架构深入——上万个核心如何分工协作 / GPU Architecture and Massive Parallel Execution

6. CUDA 编程模型——把矩阵乘法映射到 GPU / The CUDA Programming Model for Mapping Matrix Multiplication to GPUs

7. CUDA 内存管理——百亿参数如何装进显存 / CUDA Memory Management for Large Models

8. CUDA 性能优化——从 30 天缩短到 10 天 / CUDA Performance Optimization

9. CPU 并行编程——OpenMP 与 SIMD 向量化 / CPU Parallel Programming with OpenMP and SIMD

10. HPC 集群与 MPI——多节点分布式训练 / HPC Clusters and MPI for Distributed Training

11. 异构计算——CPU 与 GPU 如何协同工作 / Heterogeneous Computing with CPUs and GPUs

12. 深度学习训练优化实战——从 30 天到 3 天 / Deep Learning Training Optimization from Thirty Days to Three

13. 性能分析工具——找到真正的瓶颈 / Performance Analysis Tools for Finding Real Bottlenecks

14. NPU 全景——昇腾/寒武纪/TPU/苹果生态 / The NPU Landscape: Ascend, Cambricon, TPU, and Apple

15. 未来趋势——2030 年的计算机会是什么形态 / Future Computing Trends Toward 2030

16. 硬件与高性能计算:从“程序为什么慢”开始 / Hardware and HPC Starting from Why Programs Are Slow

原并行计算 / Original Parallel Computing

1. 并行计算:从 SIMD 到 MPI / Parallel Computing from SIMD to MPI

2. 并行计算全景:从晶体管、CPU、GPU 到计算集群 / Parallel Computing from Transistors, CPUs, and GPUs to Clusters

3. 并行计算基础:任务分解、加速比与可扩展性 / Parallel Computing Fundamentals: Decomposition, Speedup, and Scalability

4. 处理器体系结构:从指令流水线到多核芯片 / Processor Architecture from Instruction Pipelines to Multicore Chips

5. CPU 并行:多线程、SIMD、Cache 一致性与 NUMA / CPU Parallelism with Threads, SIMD, Cache Coherence, and NUMA

6. 内存层次:Cache、带宽、局部性与一致性 / Memory Hierarchies, Bandwidth, Locality, and Coherence

7. GPU 体系结构:SIMT、Warp、SM 与吞吐优先设计 / GPU Architecture with SIMT, Warps, and Streaming Multiprocessors

8. CUDA 编程模型:Thread、Block、Grid 与内存协作 / CUDA Threads, Blocks, Grids, and Cooperative Memory Access

9. 并行算法模式:Map、Reduce、Scan、Stencil 与任务图 / Parallel Patterns: Map, Reduce, Scan, Stencil, and Task Graphs

10. 异构计算:CPU、GPU、NPU 如何协同工作 / Heterogeneous Computing with CPUs, GPUs, and NPUs

11. 分布式并行:MPI、集合通信、RDMA 与多机多卡 / Distributed Parallelism with MPI, Collective Communication, and RDMA

12. 性能工程:测量、Roofline、瓶颈定位与优化闭环 / Performance Engineering with Measurement, Roofline, and Bottleneck Analysis

13. 并行计算实战:AI、CAE、图像与科学计算 / Parallel Computing for AI, CAE, Imaging, and Scientific Computing

14. 并行计算实践路线:从单核优化到多机多卡 / A Parallel Computing Project Path from Single-Core to Multi-Node GPUs

本页目录

历史完整正文:统一前文章逐篇保留 ​

这里保存课程统一前提交 f2cdf30 中的完整 Markdown 原文。它不是摘要,也不是重新概括后的版本;两个目录中的历史文章按原文件逐篇复制,用来保证任何细节、ASCII 图、代码、案例和面试说明都不会因课程重组而消失。

text
历史完整正文
├── 01-architecture-originals
│   ├── 原体系结构与硬件目录的 16 篇 Markdown
│   ├── CPU、Cache、NUMA、GPU、CUDA、OpenMP、MPI
│   └── NPU、训练优化、性能工具与趋势
│
└── 02-parallel-originals
    ├── 原并行计算目录的 14 篇 Markdown
    ├── 并行基础、CPU/GPU、CUDA、异构与分布式
    └── 并行模式、性能工程、案例与学习项目
1
2
3
4
5
6
7
8
9
10

归档、备份与当前文档的区别 ​

三者解决不同问题。

类型目标是否日常编辑主要验证
当前文档提供最新权威知识是内容准确、链接和构建
归档保留可查阅历史版本很少来源、完整性和可读性
备份灾难后恢复数据否可恢复性与保留策略

归档需要稳定入口和上下文。 仅把旧文件压缩保存虽然可以备份,却不方便读者搜索、链接和比较。

当前文档允许重构、合并和更新。 归档则优先保持来源可追溯,不能无记录地改写历史语义。

为什么知识库需要历史层 ​

课程重构通常会:

  • 合并重复主题;
  • 统一术语;
  • 调整编号;
  • 缩短冗余内容;
  • 更新 API 与工具;
  • 改变学习顺序;
  • 删除失效示例。

这些修改提高当前课程质量,却可能隐藏历史细节和决策过程。

历史层允许回答:

  • 某个旧链接原来指向什么;
  • 某段代码在哪个版本出现;
  • 当前结论与旧结论有什么差异;
  • 合并时是否遗漏了图、案例或边界;
  • 某个术语为什么被替换;
  • 旧性能数字来自什么环境。

来源提交 ​

本归档声明来源为 Git 提交 f2cdf30。

提交哈希提供仓库内可验证定位。 它比“2025 年旧版”更精确。

bash
git show --stat f2cdf30
git ls-tree -r --name-only f2cdf30
git show f2cdf30:path/to/file.md
1
2
3

查证时应使用仓库实际对象,而不是依赖网页缓存或本地记忆。

文件集合完整性 ​

集合完整性检查原目录中的每篇文章都进入归档。

步骤包括:

  1. 列出来源提交目标目录;
  2. 列出当前归档目录;
  3. 规范化路径分隔符;
  4. 比较文件名集合;
  5. 检查重命名映射;
  6. 记录新增、缺失和额外文件;
  7. 人工复核特殊 README 与 Overview。
text
source paths
  - archived paths
  = missing

archived paths
  - source paths
  = extra or renamed
1
2
3
4
5
6
7

文件数量相同不代表集合相同。 必须比较路径和映射。

单文件完整性 ​

单文件完整性关注内容是否在复制、编码和格式化中损坏。

检查:

  • 标题;
  • Frontmatter;
  • 段落;
  • 代码围栏;
  • ASCII 图;
  • 表格;
  • 图片;
  • 站内链接;
  • 外部链接;
  • 文件结尾;
  • 编码和换行。

可以比较 Git Blob 或规范化后的哈希。 如果为了修复链接而改动,应记录差异原因。

路径映射 ​

课程合并后,旧目录与新目录可能不是一一对应。

text
old architecture article
  -> current unified article
  -> archived original copy
1
2
3

映射表至少记录:

  • 旧路径;
  • 归档路径;
  • 当前权威路径;
  • 迁移类型;
  • 是否需要重定向;
  • 备注。

迁移类型可能是直接移动、合并、拆分、替代或仅归档。

站内链接策略 ​

归档文章中的相对链接可能因目录移动而失效。

处理方式按优先级:

  1. 保留原链接并提供兼容重定向;
  2. 在归档复制中修复路径并记录变更;
  3. 添加“当前版本”链接;
  4. 无目标时明确标记历史缺失;
  5. 禁止生成不存在的替代链接。

修复链接不能改变正文技术结论。

外部链接与引用 ​

外部文档可能移动、下线或更新语义。

归档应保留原引用,并在必要时增加:

  • 原访问日期;
  • 对应软件版本;
  • 新地址;
  • 存档地址;
  • 当前替代资料;
  • 失效说明。

不要把新版文档链接直接替换旧版后,继续声称它支持原文的版本相关结论。

代码示例的历史环境 ​

旧代码可能依赖:

  • 已弃用语言标准;
  • 旧编译器;
  • 旧 CUDA Toolkit;
  • 特定 MPI;
  • 已变化的构建系统;
  • 旧操作系统;
  • 不再可用的硬件。

归档代码首先用于理解历史正文。 如果要运行,应明确复现环境。

可以补充现代迁移说明,但不要把原代码完全替换后仍称为原文。

性能数字的解释 ​

性能数字只对记录的工作负载和环境成立。

归档数字需要尽量保留:

  • CPU/GPU 型号;
  • 内存和拓扑;
  • 编译器和选项;
  • 输入规模;
  • 线程、进程和设备数;
  • 预热和样本;
  • 正确性标准;
  • 测量命令。

缺少环境时,数字只能作为历史叙述,不能用于当前选型。

术语变化 ​

硬件和并行领域术语会随标准与厂商资料演进。

维护者可以增加术语注释:

text
historical term
  -> current preferred term
  -> reason or scope difference
1
2
3

注释应与原文区分,避免读者误以为旧文当时使用了现代术语。

安全与隐私修订 ​

历史归档不是泄漏信息的理由。

发现以下内容必须处理:

  • 真实密钥;
  • Token;
  • 内部账号;
  • 私有服务器地址;
  • 个人敏感信息;
  • 不应公开的数据;
  • 有危险副作用的无警告命令。

删除或脱敏后应留下修订说明,但不能继续暴露原值。

构建与渲染验证 ​

归档文章仍进入 VitePress 构建,因此必须保证 Markdown 可解析。

重点检查:

  • Frontmatter 语法;
  • 围栏是否闭合;
  • 表格结构;
  • 标题层级;
  • 站内链接;
  • 图片路径;
  • 不支持的代码语言;
  • HTML 使用策略。

语法高亮降级警告与构建错误应区分。 归档可保留冷门语言标签,也可以按当前渲染支持注明降级。

搜索与导航 ​

归档内容可能在站内搜索中与当前文章同时出现。

标题、摘要和页面提示应让读者知道:

  • 这是历史内容;
  • 当前权威入口在哪里;
  • 来源版本是什么;
  • 哪些内容可能过时;
  • 如何进行比较。

仅隐藏侧边栏不能解决搜索歧义。

维护变更分类 ​

归档允许的变更分为:

无语义修复 ​

  • 断链;
  • 编码;
  • 围栏;
  • 图片路径;
  • 安全脱敏。

注释性补充 ​

  • 当前入口;
  • 版本边界;
  • 术语变化;
  • 复现环境;
  • 已知失效。

内容迁移 ​

把仍有价值的知识核验后补到当前权威文章。 归档原文保持不变或记录迁移标记。

归档评审清单 ​

  • 来源提交明确;
  • 文件集合完整;
  • 路径映射可查;
  • 单文件无截断;
  • 链接有处理策略;
  • 代码环境有说明;
  • 性能数字不过度外推;
  • 敏感信息已清理;
  • 当前权威入口明确;
  • VitePress 构建通过。

怎样阅读 ​

  • 第一次学习:先按上级目录的 00~14 权威课程阅读,它负责由浅入深建立统一心智模型。
  • 查找旧内容:进入下面两个原文分组,标题和正文保持统一前版本。
  • 核对内容:本目录以 Git 提交 f2cdf30 为来源,可用 Git blob/hash 再次验证。

两套原文 ​

  1. 原“计算机体系结构与硬件”全部文章
  2. 原“并行计算”全部文章

课程合并只改变学习入口与知识顺序,不再以删减旧正文作为代价。

为什么需要历史正文 ​

知识库重组常把重复主题合并为一条学习路径,但“内容重复”不代表“表达细节等价”。旧文可能保存了具体代码、图示、面试追问、工具命令和当时使用的术语。直接删除会让旧链接失效,也会使读者无法追溯新文章为何作出某种取舍。因此本目录承担的是可审计归档,而不是第二套持续演进的权威课程。

归档与备份不同。备份用于灾难恢复,通常按整个仓库恢复;归档用于日常查阅,需要稳定路径、来源说明和清晰边界。这里记录来源提交 f2cdf30,使读者能够用 Git 比较内容,确认归档不是后续重新生成的摘要。

权威课程与归档的关系 ​

text
历史提交 f2cdf30
        │ 原文复制与路径保留
        v
15-original-deep-dives
        │ 提供细节查阅和差异核对
        v
当前权威课程 00~14
        │ 统一术语、消除重复、组织学习顺序
        v
后续维护只进入权威课程
1
2
3
4
5
6
7
8
9
10

新读者应先读当前权威课程,因为它建立统一概念和前置关系;当需要旧案例、旧图或迁移前的完整论述时,再进入归档。维护者发现归档中的有效内容尚未被吸收,应把事实核验后补到权威文章,而不是直接编辑历史快照。否则归档会失去“可与原提交核对”的意义。

查阅和核对方法 ​

阅读归档时先确认文章属于体系结构原文还是并行计算原文,再检查同主题的当前文章。两者结论冲突时,以标准、硬件厂商文档和当前已核验正文为准;历史正文反映的是当时记录,不自动代表最新事实。可以使用 git show f2cdf30:<path> 查看源版本,使用 git diff f2cdf30 -- <path> 判断内容是否完全对应。

归档保留不意味着所有旧说法都应继续传播。版本相关 API、硬件参数和工具界面可能变化,旧性能数字也只对原工作负载有效。引用归档内容时,应同时说明来源版本和适用边界。

完整性的验收原则 ​

本目录应保持两类完整性:文件集合完整,确保原目录中的文章没有漏失;单文件内容完整,确保代码块、ASCII 图和链接上下文没有被截断。目录页负责解释来源、用途和阅读方法,各原文页负责保存细节。只有明确的安全问题或法律原因才应修改归档,并留下变更说明。

通过这种分层,课程可以继续演进,同时保留可追溯证据。读者既获得清晰入口,也不会因为一次目录重构失去过去积累的技术材料。

使用归档时的实际场景 ​

当外部笔记或旧书签仍指向迁移前文章时,归档提供稳定落点;当新课程删去了一个过细但仍有参考价值的案例时,可以在这里找到完整上下文;当维护者怀疑课程重写改变了技术结论时,可以把当前正文、归档快照和来源提交三方比较。归档因此同时服务于链接兼容、知识恢复和编辑审计。

它不适合作为新内容的默认落点。新的实验、勘误和版本更新应写入当前权威课程,并在必要时从权威文章链接到历史材料。若直接在归档中持续追加,新旧版本会再次分叉,读者也无法判断哪一份值得信任。

维护归档还要关注资源可读性:相对图片和站内链接在目录移动后可能失效,代码依赖的版本可能已停止支持。修复链接时应尽量保持正文语义,并在修改影响历史一致性时留下说明。对于无法运行的旧示例,应标注其历史环境,而不是悄悄改写成当前 API 后仍声称是原文。

最终判断很简单:需要系统学习或最新结论时读权威课程,需要追溯旧内容和重构证据时读本目录。两者目的不同,才能在避免重复维护的同时保留知识连续性。

最后更新于:

Pager
上一篇15. 递进学习项目:从单线程到集群
下一篇1. 硬件编程与高性能计算:一张可走通的学习地图 / A Practical Learning Map for Hardware Programming and HPC

持续记录,持续成长

Copyright © Tidenflow