BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

深挖ASIC 芯片設計成本,我們問了ProgPow 核心開發團隊九個問題

Moni
Odaily资深作者
本文約7074字,閱讀全文需要約11分鐘
雖然ASIC 芯片設計不是太高深的事情,但想要深入理解也並非那麼容易。
AI總結
雖然ASIC 芯片設計不是太高深的事情,但想要深入理解也並非那麼容易。

本文來自Medium二級標題

Odaily 譯者| Moni

概述

概述

本文來自

二級標題

Odaily 譯者| Moni

二級標題

概述

概述

只要與ProgPow 和Ethash 算法有關,市場上就會出現各種對礦機硬件設計和開發成本的推測,通常後面還會跟上一個權威聲明:請相信發表預測的作者,因為他/她在相關行業領域裡擁有豐富經驗。這些推測有時會與加密貨幣ASIC 芯片生產有關,還有些時候則是關於集成電路設計。

程序員總是會給人一種無所不能的感覺,從編寫腳本到開發iPhone APP,從嵌入式系統到Windows 操作系統。但是,會寫代碼開發應用程序不代表你能成為APP Store 應用商店後端(或改善系統效率)的權威人士,能夠開發實時多任務操作系統(RTOS)也不代表你能成為擴展Windows 操作系統成本權衡領域裡的達人。

二級標題

當然,作為ProgPow 算法核心開發團隊,IfDefElse 在此並不是說Windows 設計師不是“優秀的程序員”,但必須要說明的是,由於不同人的技術背景不同,很容易造成對不同領域的理解和假設偏差,特別是在討論規模經濟話題的時候。

同樣地,一名硬件設計師可能也會涉獵不同的領域,比如為一款電動牙刷設計芯片,或是為網絡設備構建一個芯片架構(silicon architect)。生產10 萬個電動家牙刷芯片的工程師可能不會理解生產100 萬個芯片的網絡工程師所考慮的可用規模經濟,同樣一個加密貨幣ASIC 芯片設計師可能對GPU-ASIC 芯片設計知之甚少——這些行業彼此之間的聯繫並不是很多,有的甚至是國與國之間的差距。

在概述中我們還要提的最後一點,就是編程和工程其實都是一種技巧,除非你每天都在編程寫代碼,否則很快就會落後、無法成為權威,因為這方面的知識更新迭代很快。或許這也是為什麼新的加密貨幣ASIC 製造商很難進入基於SHA-256 算法的挖礦市場,畢竟一個新手程序員想要赶超已經研究SHA-256 算法六年的工程師是不太可能的。

有些“硬件磚家”正在竭盡全力向軟件工程師保證他們能夠戰勝加密貨幣生態系統——我們已經在門羅幣(Monero)、比特幣(Bitcoin)、以及ZCash 等加密貨幣上看到了這種情況已經出現。但現實是,這種挑戰至今仍沒有發生,想想看,如果比特大陸或Innosilicon 試圖製造CPU,你認為他們能夠戰勝英特爾和AMD 嗎?

二級標題

二級標題

解析ASIC 芯片設計成本

規模經濟總是普遍存在的——不管是從成本角度,還是經驗角度。對於ASIC 芯片設計成本, 芯片設計師們似乎總是存在很大爭論,下面就讓Odaily 君(微信:o-daily)帶大家一起看看解析一下受到業內關注的九個問題:

問題一:不管挖礦算法是ProgPow,還是ETHash,哈希值都是由外部動態隨機存取存儲器(DRAM)的存儲帶寬決定的,是這樣嗎?

事實並非如此。 ProgPow 的哈希值是由兩個因素決定的:

1、計算核心

2、內存帶寬

這就是為什麼Ethash 和ProgPow 之間存在差異,如下圖1 和圖2 所示:

圖1 :英偉達芯片產品挖礦哈希率比較

圖2 :AMD 芯片產品挖礦哈希率比較

現階段,ETHash 挖礦更有利可圖,針對該算法的內存需求明顯增加,對於高帶寬存儲器的需求不斷增長也促使下一代高速存儲器技術被開發了出來,比如GDDR6(帶寬速度達到768 GB/s ) 和HMB2(帶寬速度達到256 GB/s)。

對於高帶寬內存的需求並非全部來自“Ethash”,整個高帶寬內存市場規模高達150 億美元,其中只有很少一部分來自採礦行業。高帶寬內存的核心市場需求主要包括:GPU、現場可編程門陣列(FPGA)、人工智能(AI)、高性能計算(HPC)、以及遊戲。相比於1.2 萬億美元的人工智能市場、300 億美元的PC 遊戲市場、350 億美元的手持遊戲機市場、以及290 億美元的高性能計算市場,挖礦行業的高帶寬內存需求真的是“微不足道”。

問題二:由於ProgPow 現有架構和算法與ETHash 存在相似之處,Innosilicon 的下一款ASIC 芯片將會為ProgPow 量身定制嗎?

事實上,ProgPow 和ETHash 之間唯一的相似之處就是在全局內存(global memory)中使用了無環圖(DAG)。從計算的角度來看,ETHash 只需要一個固定的“keccak_f1600”內核和一個模數函數(modulo function)。另一方面,ProgPow 需要的則是能夠執行16 通道寬的隨機數學序列,同時還要能夠訪問高帶寬一級緩存(L1 cache)。設計一個能夠執行ProgPow 數學序列的計算內核,比設計一個能夠實現類似“keccak”這樣的固定函數哈希要難得多。

另外需要注意的是,ETHash 的哈希值只取決於內存帶寬,而ProgPow 算法則同時取決於內存帶寬和隨機數學序列的核心計算——理解這一點非常重要。

工作量證明(PoW)的本質其實是通過耗費硬件和能源成本進行數學計算證明,作為一種算法,ETHash 在數學證明中並不會耗費大部分硬件費用(計算引擎)。相反,ETHash 只捕獲內存接口,這就是為什麼你可以使用一個用於加密貨幣挖礦的ASIC 芯片來把數學計算中沒有被捕獲到的部分給消減掉。

問題三:由於GPU 是通用加速芯片,因此設計、製造和測試GPU 的周期通常需要大約十二個月,而且還需要進行大量硬件模擬和軟件開發工作,使其能夠覆蓋不同的計算方案和場景。

ProgPoW 希望能夠捕獲全部硬件成本(盡可能地做到),由於該算法更新的部分能夠捕獲運行不同計算場景的計算硬件——直到架構褶皺(architectural wrinkles)——因此對於ASIC 芯片設計來說,可能需要耗費不止3-4 個月的時間。

由於時間跨度較長,隨之會引發出另一個問題:為什麼浮點運算(floating point operation)被省略掉了?這個問題的答案其實也非常簡單:浮點運算不能跨芯片移植,不同芯片往往會以不同方式來處理與特殊值(比如下確界、非數字數值、以及相關變體等)相關的邊界案例( corner case)。邊角案例也被成為病態案例(pathological case),是指其操作參數在正常範圍以外的問題或是情形,而且多半是幾個環境變數或是條件都在極端值的情形,即使這些極端值都還在參數規格範圍內(或是邊界)。其中最大的分歧在於非數字數值(NaN)的處理,這會在使用隨機輸入時自然發生,引用維基百科頁面的解釋:

如果有多個非數字數值(NaN)輸入,其有效負載結果應該來自其中一個非數字數值輸入,但標準卻沒有具體說明。

這意味著,如果要使用浮點運算的話,基本上每個浮點都需要進行“if(is_special(val))val = 0.0”檢查配對,這種檢查通常可以在硬件中完成,因此也會讓用於加密貨幣挖礦的ASIC 芯片從中受益。

接下來,哈希率(Hashrate)和“hash-per-watt”又是什麼呢?

哈希率是衡量能源成本的指標,只要每個人都以同樣的方式進行衡量,每單位的能源消耗就不那麼重要——礦工也會繼續投入盡可能多的能源挖礦。不過即便你把測量單位從1 ETHash (較小單位,比如焦耳)切換成1 ProgPow-hash(較大單位,比如卡路里),運營成本的經濟性其實也不會發生變化。全局哈希率(Global Hashrate)會評估每個人對保護網絡共享的總經濟權重,只要每個人的貢獻都被公平地衡量且使用相同的單位,對於普通礦工來說,切換到ProgPow 算法不會帶來什麼變化。

當然,有人會說如果以太坊實施了ProgPow 算法可能會有助於把礦工集中在擁有高端GPU 的大礦場裡,同時也會刺激礦場把GPU 升級到最新型號。但是ProgPow 算法開發團隊IfDefElse 需要再次重申的是:規模經濟永遠都會存在,而且也是現實世界裡無法避免的事實。

問題四:相比於GPU,ASIC 芯片生產商可以使用較小的GDDR6 內存來獲得成本優勢。在保持內存成本水平的同時,16 個GDDR6 4GB 的內存條能夠實現兩倍的帶寬優勢,是這樣嗎?

首先,擁有兩倍的帶寬優勢就需要兩倍的計算,這其實是一種線性擴容(linear scaling),並不能看做是一種優勢。Compare Logic-Array To ASIC-Chip Cost per Good Die其次,我們目前應該還沒有為GDDR6 準備好生產4GB 內存芯片的準備。全球第三大內存芯片廠商Micron(美國美光)只生產8GB 芯片,三星則生產8 GB和16 GB芯片。對於內存芯片而言,GDDR6 IO 接口區域是非常昂貴的,而且與存儲器單元相比,每一代接口都佔用了更多的實際存儲器管芯,由於端口物理層(PHY)不能像存儲器單元那樣通過工藝手段縮小。

不可否認,真正推動內存市場的是一些“長週期買家”,比如游戲機、GPU 等,他們也傾向於支持容量更大的內存。事實上,如今的內存供應商沒有動力去大批量生產一個4GB 的內存,畢竟市場對這種內存容量的需求並不大。

問題五:RTX2090 芯片中有許多模塊佔用了大量芯片模片區面積,而且對ProgPow 毫無用處,包括PCIE、NVLINK、L2Cache、3072 分片單元、64 個ROP、192 個時間測量單元(TMU)等,如何看待這個問題?

RTX2080 不是討論這個問題的好參照物,由於一些新功能,英偉達(Nvidia)的RTX 系列芯片中有些模塊佔據了大部分芯片模片區面積,比如光線追踪核心等。 ProgPow 設計則是與英偉達和AMD 生態系統中的存量芯片產品搭配使用的,因此無法使用英偉達和AMD 新款芯片產品中的新功能。

如果想有一個更好類比的話,或許AMD RX 5xx 系列或是英偉達GTX 1xxx 系列是個不錯的參照。正如我們之前所述,GPU 中也有部分功能沒有被ProgPow 利用,比如:浮點邏輯、二級(L2)緩存、以及紋理緩存和ROP 等。分片單元是向量數學被執行的地方,這絕對是ProgPow 所要求的。用於加密貨幣挖掘的ASIC 芯片還希望添加能夠實現“keccak”功能的區域。作為ProgPow 算法的開發團隊,我們估計ProgPow ASIC 芯片的模片區面積會比同等GPU 小30%——但是,即便是在最好的情況下,其功耗最多也只會降低20%。相比之下,雖然GPU 上有些邏輯模塊沒有被充分應用而造成部分芯片模片區面積浪費,但功耗卻是最小的。

問題六:與大芯片相比,小芯片的收益會更高嗎?

怎麼說好呢,這聽上去像是在普及芯片製造知識,或許我們需要寫一篇《芯片製造101》的培訓文檔。此外,對於收益計算公式可以參考一篇2006 年發表的文章《

》,其中你會發現,早在13 年之前芯片收益和流程控制就已經有很大創新了。

對於具有單個功能單元的芯片,模片區面積較小的芯片收益會比模片區面積較大的芯片更高。但是對於現代GPU 來說,情況並非如此。如今的GPU 幾乎可以任意恢復、組合,小型複制單元的缺陷基本上可以忽略。只要每個可壓縮功能單元足夠小,那麼GPU 芯片收益幾乎可以和功能模塊更大的芯片一樣高(甚至更高)。

為了更好地解釋這個概念,我們可以舉一個簡單的腦洞實驗:

1、假設你有一個大芯片“Giant ChipA”,它佔據了整個晶片。這個“Giant ChipA”是由10 萬個可拆卸子組件組成,但是其中必須確保80% 的子組件是無缺陷的,才能保證“Giant ChipA”正常工作,而在嵌入過程中,壞的子組件會被繞過。

2、另外,假設你還有一個小芯片“Tiny ChipB”,它只有一個功能模塊(不可嵌入)組成,但是這個小芯片卻小到足以在同一個晶片上裝配10 萬個子組件。在這種情況下,只要一個子組件壞了,意味著整個“Tiny ChipB”芯片就是壞的。

3、如果每個晶片上平均分佈了2 萬個有缺陷的子組件,那麼“Giant ChipA”的收益可以為100%,因為他們可以將20% 有缺陷的子組件拆掉,而“Tiny ChipB”的收益可能僅為80%,因為他們無法拆掉有缺陷的子組件。

如果你看看AMD 的Polaris 20 系列產品和英偉達的GP 104 產品,會在模擬鏡頭下發現這些GPU 中部署了大量微小的“可拆卸”子模塊組成。

問題七:ASIC 礦機電壓可以很輕鬆地降低到0.4V,只有GPU 的二分之一……這樣低電壓的ASIC 設計已經被比特幣挖礦設備ASIC 礦機製造商所採用,所以現在我們沒有理由不相信他們不會把這種策略應用在ProgPow ASIC 礦機上,能談談這個問題嗎?

當芯片僅由計算構成,那麼低電壓設計才能奏效,比如一個專門針對SHA256d 挖礦算法計算的ASIC 礦機。集成其他原件——比如SRAM,這也是ProgPow 數據緩存所必需的——的難度極大,也不可能在低電壓下工作。

問題八:同樣的節能效果也能在LPDDR4x DRAM 上實現,其功耗比GDDR6 還低,談談這個問題吧。

不能僅考慮能耗問題,LPDDR4x 的帶寬比GDDR6 低很多,前者每個引腳帶寬是4.2Gb / s,後者則是16Gb / s。 LPDDR4x 計算芯片上需要四倍的內存芯片和四倍的內存接口才能達到GDDR6 相同的性能,這樣一算,其成本其實是顯著增加的。

值得注意的是,高帶寬計算芯片的接口通常是有限的,這意味著芯片模塊面積必須要足夠大,週邊幾乎不允許任何信號從芯片脫落到印製電路板(PCB)上,LPDDR4x 設計需要大約四倍的芯片週長焊盤數才能達到相同的帶寬,也就是說,其成本不僅僅在存儲芯片上,計算芯片區域的成本同樣也要計算在裡面,所以綜合算下來其實總成本並不低。更糟糕的是,由於任何芯片都是以速度為導向的,當芯片模塊面積更大的時候,意味著浪費的功率也會更多。

ETH
歡迎加入Odaily官方社群