Interesting numbers in CS and Femi estimation (WIP)

There are some important number in CS, remembering the level of these numbers can provide more depth understanding of computing system.

人是万物的尺度。对这些数字最好有个概念,就知道能处理的问题的量级是多少了,在书写项目书,指定相关指标的时候就能比较合理的进行估计。有了这些估计,我们可以用费曼估计法去快速推算一些比较复杂的问题。然后还能更好地理解计算机设备直接的unbalance的特性。

很多时候我们仅仅需要的是快速的量级的估计而不是精确的数字,这些问题都属于Feimi 估计的思路,比如最经典的某个城市大概有多少钢琴调音师等等。

Computing

Memory access

CPU cache read/write access. 不同的CPU和不同的Cache当然速度不同,这里有一张表格 https://www.quora.com/How-fast-can-the-L1-cache-of-a-CPU-reach L1 大概是2000GB/s的样子。L3大概是 200GB/s的样子,L3相比较RAM大概又有100倍的差距了。

RAM (Random access memory) read/write speed. RAM using a little bit different metric, it is called MHZ rating (how many times per second your RAM can access its memory). nowadays, this value is usually from 2400Mhz to 4400Mhz, which is 10 times faster than SSD I/O speed. 就是说1s大概能access 2400M 到 4400M 次,每次修改1B的数据的话,就是2400MB-4400MB左右。

SSD 通常所说的固态硬盘,read/write speed 200MB/s to 550MB/s。

HDD (hard disk) 通常所说的细节硬盘 read/write speed, from 80MB/s to 160MB/s

If we assume one picture taken by phone is around 2MB, SSD can transfer at least 100 photos per second and HDD can only transfer 40 photos.

从所花费的instruction time来看,disk I/O takes 5-10 ms, which is millions of instruction time (1000,000) Flash storage takes 10-100us, NVM may take 1us, which is still around 2000-3000 instruction times. 通常的3GHz的CPU, 1s 可以执行 3*10^9 个指令,一个instruction time 大概是0.003us

Memory size

Networking

从所花费的指令时间来看,在datacenter中,round-trip message 可以话费10-50us, 相当于n0,000的指令时间。wide area round trip 时间可能更长,要花费到10-100ms的时间。
(A philosopy of software design)

并行计算

大模型训练通常是万卡的级别,一个node 4-8张GPU的话,就是1250到2500个节点的数据中心的规模。一个机柜上下两层 (比如就像通常的衣柜那么大)通常可以放128 node (比如Frontier),那这个数据空间所需要的地方至少是10-20个机柜所占用的空间。

并行可视化的服务比较大的规模(比如VTK-m论文中所描述的) 最大在37000个AMD GPU上进行了验证,这可能是目前这个小领域最大的规模了。换成节点的话大概是9400多个节点,这就是目前的state of the art的级别。

推荐文章