恶补 CPU 知识之 Cache 和 TLB

即是知识回顾,也是最近学到知识的拓展延伸。 ARMv6 Manual: “The only architecturally-guaranteed way to invalidate all aliases of a physical address from a VIPT instruction cache is to invalidate the entire instruction cache.” Cache 的基本情况 Cache 也就是缓存,作为高速的 CPU 和低速的...

2024 Feb 18 · 6 min · vaaandark

恶补 CPU 知识之分支预测

前因 最近看了一篇介绍 Ventana 的 Veyron V1 核心的博客 HotChips 2023: Ventana 不寻常的 Veyron V1 ,里面出现了很多我没听说过或者不甚了解的名词,在阅读这篇博客和查找资料的过程中,我学...

2024 Feb 18 · 5 min · vaaandark

PAC2023娱乐赛

7.6 举办了 PAC2023 的开幕赛,以轻松娱乐为主,我还没有体验过在短时间内完成优化工作(不过今天的工作量倒也不大)。这场娱乐赛给了我别样的体验,也让我发现...

2023 Jul 06 · 4 min · vaaandark

CPU 流水线

流水线级 一条流水线的每个分步骤被称为流水线级。它们被流水线寄存器分开。下文中没有说明是流水线寄存器的都是普通 CPU 寄存器。 现代计算机流水线级数已...

2023 Apr 22 · 5 min · vaaandark

OpenMP进阶

继续学习 OpenMP 的使用,尤其是一些较新版本。 OpenMP 4.0 Controlling OpenMP thread Affinity 因为很多硬件如今是 NUMA 结构,分配线程的位置可以很大程度上影响性能。 与核绑定有关的 OpenMP 结构 proc_bind (master |...

2022 Aug 02 · 4 min · vaaandark

OpenMP入门

写 OpenMP 的时候总是感觉怪怪的,不知道什么时候该用什么,所以最近系统化地看一遍 OpenMP 的使用,主体为 OpenMP 2.0 和 3.0。 What is OpenMP? OpenMP Model 每个线程都有可以访问全局的共...

2022 Jul 29 · 3 min · vaaandark