引用:
作者visionary_pcdvd
17樓長篇大論(懶得引全文  )了半天,但結論「未必盡然」跟廢話有何不同?K10的L1及L2都比K8快,照你的邏輯K10的效能未必比K8高,但事實正好相反  所以你還是「噴」你自己吧
|
敝人不敢說大學四年讀資訊工程是否真學到了些什麼
不過基礎的基本書總是看過幾遍
所以看到一些奇怪的敘述總是忍不住多說幾句話
基本上個人希望閣下可以認真看完
接下來的文章是為了殺時間所做
資料方面儘量有多少就引多少
一方面嘗試寫的科普點 一方面也讓明年考研究所有更多準備
那 我們就開始吧!
===========================================================
先從爭論的開始點來討論[如何論斷快取的速度]
今天我們要取得一筆資料
我們需要找到他(延遲) 如後再把它運送出來(大小/頻寬)
這兩者加總起來的時間才是我們得到這筆資料的時間
光討論延遲或是頻寬這兩者的其中之一是無法來評論速度的
當然就算兩者皆討論也還是沒法定義快取的速度
因為快取有所謂的命中率
也就是你所要的資料有多少機會在快取中
假設以單層快取 命中率70% 命中需要1MS 沒命中要100MS
那你需要花的時間的期望值是1 * 0.7 + 100 * 0.3 = 30.7MS
而假設我用更好的方法提升了快取的命中率為90% 但是不影響其他參數
此時獲取我所需資料所需的時間降為1 * 0.9 + 100 * 0.1 = 10.9MS
就算我因為提升快取的命中率而使快取命中時所需時間增加為5MS
讀取一筆資料所需的時間期望值仍為5 * 0.9 + 100 * 0.1 = 14.5MS < 30.7MS
講到這邊懂我意思吧
明明從第一顆CPU的快取中獲取一筆資料的時間較快
但是由於第三顆CPU的快取擁有較高的命中率 而使的整體的期望值較低
也因此 我會對閣下所謂1.5倍速度產生質疑
請問閣下所謂1.5倍是考慮到哪個層次時提出這樣的說法?
==========================================================
再者 閣下之後的疑問說
假設我前篇文章所述者為真 那K8和K10的效能應當如何理解?
我的回答如下
首先 我似乎沒有提過任何有關K8和K10兩者快取速度的評比
我第一篇文章只想跟你說 考慮快取速度應當不是這麼簡單的事
再者 這邊要提到所謂的Amdahl`s law
我這邊直接以算盤書的翻譯為準
算盤書上對這定律的簡單解釋為:對某一部份進行改良而得到的可能效能增進,會受限於被改良部分在整體中所佔的比重
聽起來很模糊 我舉個例子好了
假設你今天一件衣服要經過 洗衣 脫水 烘乾 三道手續
[我今天買了才三倍速洗衣機 所以我就可以用原來三分之ㄧ的時間就拿到乾淨能穿的衣服了]這句話對不對?
我想 所有看的人用x眼想都知道這是牛伯伯的....
因為你只改進了洗衣時間 而沒去動到脫水和烘乾的時間
相對的 就算某個CPU比另一顆CPU在資料傳輸上所花的時間更長
也不代表前者的效能就必定輸給後者(搞不好只有20%或更少的指令需要資料傳輸)
==========================================================
雖然有點停不大下來 不過我先打到這邊告個段落
基本上我是希望針對我的敘述進行攻擊 而不是....
最後要提的是
評估效能本身是十分困難的
有些場合我們注重的是反應時間
有些場合我們注重的是總體的輸出量
有些場合我們注重的是資源的公平性
不同的需求 導致了對同樣設備的不同看法
也因此 評估一個設備的效能 最直接的方式是把你的使用需求 使用習慣
這些都考慮進去了之後 直接的實際去run
但基本上沒人能做到這點 所以我們才會使用評效程式
但是評效程式常常被無意義的最佳化
好比說現在大家也不大會拿3D MARK的成績當作顯示卡的能力
因為你也偷吃步 我也偷吃步
現在看CPU測試為啥都要拿一堆程式來跑
就是為了儘量讓使用者可以從中找出自己日常所會使用的程式組合
然後來找出適合自己的設備
討論單一評效程式的結果通常是沒有意義的 除非你的設備只拿來跑那個程式
好比說 SUPERPI?
恩....繼續工作一下....