看到这里你应该明白了:任何多核程序的加速比都存在一个上限,即便是核心数量无限多,最后的性能也只取决于单线程的部分。
现在是有意思的一点,我们来比较两个平台:
A: 单线程性能是1, 有256个核心
B: 单线程性能是1.5,有16个核心
哪个平台性能强呢?看起来1 * 256远大于1.5*16。实际结果呢?
A: 1 / (0.2 + 0.8 / 256) = 4.92
B: 1 / (0.2 / 1.5 + 0.8 / (16 * 1.5)) = 6
惊讶吗?16核心的B平台的性能远高于256核心的A平台。
最后,你可能要问:有没有一个程序有100%是可以并行化的呢?
答案是,没有。尤其是侧重于IO的程序,永远不能做到100%并行化。
什么是IO? GPU就是一个IO,磁盘也是IO,甚至内存系统对CPU来说,也是一个IO。
服务器系统的扩展性好,一个原因是服务器系统的IO是分布的。而桌面PC决定了IO是串行为主的系统,尤其是GPU。游戏只要需要和GPU密切打交道,就永远不可能高度并行化。
未来的理想CPU,是不对称的CPU,即若干个强大的单线程CPU + 大量多线程卫星CPU。
把单线程理解为低音炮,多线程理解为卫星喇叭,是不是好理解一点?这不是最佳性能,但却是最佳性价比。
推土机就相当于AMD卖给你一套全部是卫星喇叭组成的7.
0家庭影院系统。
原帖地址
http://tieba.baidu.com/p/2301182707I