作者johnjohnlin (LYSin8)
看板EE_DSnP
标题[请益] 礼拜三上课说的一句话
时间Fri Dec 24 16:36:41 2010
跟 project 无太大相关
我记得礼拜三上课的时候
老师好像有说过
同样的一个程式、演算法,人家写起来就是比你快
请问要做到这步,写程式的时候有哪些要注意的呢
例如;
如何提升 cache 的使用效率
降低 pipeline 之间的 bubble, branch penalty
这种东西有可能在写 C/C++ 的阶段去做实现吗
而不是 compiler 的 optimization
如果是可能的,又要如何实现呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.131.17.147
1F:推 ric2k1:我知道的就是尽量注意变数 allocation 的 locality. 12/24 16:41
2F:→ ric2k1:cache miss 的 rate 比你低,就会比你快了! 12/24 16:41
3F:推 ric2k1:(因为相同 page 的 data 会被一起 cache 起来) 12/24 16:42
4F:推 timrau:到图书馆借"Writing Effeicient Programs" 和 12/24 21:18
5F:→ timrau:"Hacker's Delight"来念 12/24 21:18
6F:→ timrau:前者教怎样压榨时间的常数项,後者教狗急跳墙的时候 12/24 21:19
7F:→ timrau:还能怎麽搞 (用bitwise op消灭for/if以避免pipeline stall) 12/24 21:20
8F:推 timrau:不过最好还是等到确认效能瓶颈後再使用这些技巧 12/24 21:23
9F:→ timrau:不然code会很肮脏... 12/24 21:23
10F:→ johnjohnlin:感谢,不过我想我应该没办法确认效能瓶颈,因为我 12/25 00:15
11F:→ johnjohnlin:要做的事是「优化一个计算二维阵列线性内插的回圈」 12/25 00:15
12F:推 timrau:准备个中等的testcase, 用gprof看看吧 12/25 00:48