CPU代替GPU挖礦
1. 為什麼越來越少人用CPU/GPU挖礦
可能樓主去的是一個新的伺服器吧,或者就是傳說中的「鬼服」,那裡聯盟和部落人數極度不協調。去一個老伺服器,譬如說二區的「達斯雷瑪」,這樣的伺服器穩定而且聯盟和部落人數相當。
2. 為什麼挖礦要用gpu而不是cpu
挖礦的軟體,從編程原理上來說,講究的是大規模並行運算。
顯卡GPU的流處理器數量非常多,比如古老的HD5770內置了800個流處理器,相當於擁有800個計算核心。而近幾年的主流高端顯卡,內置的流處理器個數更多,計算性能更加的強大。利用GPU進行挖礦運算,流處理器進行的就是並行運算,並且挖礦程序還對GPU並行運算進行了專門的優化,運算效率特別高,挖出比特幣的效率獲得了大大的提升。
CPU的核心是比較少,目前最牛逼的主流桌面級處理器核心數也不超過一二十個(很多還是超線程技術虛擬出來的邏輯核心),並行計算能力遠遠不如GPU。
3. 為什麼挖礦只用顯卡不用cpu
原因是因為btc所執行的任務是很簡單的一個解密碼的計算, 並不需要太多的指令.也就是說,btc的任務只需要一些特定的晶體管就可以執行了.
用cpu執行挖礦的任務,cpu因為需要很多晶體管來執行各種不同的指令,一個周期內很多晶體管都是閑置的.速度慢正常.
顯卡為了加強顯示圖像的能力,省掉了很多與顯示功能無關的晶體管,所以顯卡只能顯示畫面,但是在顯示畫面這個任務上,比cpu快很多. 而btc所需要執行的任務和顯卡正好差不多,所以顯卡挖礦比cpu快. 同是顯卡,a卡的任務的執行方式比n卡更接近btc的計算方式,所以a卡更適合挖礦.
4. 為什麼現在更多需要用的是 GPU 而不是 CPU,比如挖礦甚至破解密碼
現在更多被需要的依然是CPU,只是GPU在大規模並發計算中體現出其一技之長所以應用范圍逐漸變得廣泛,並成為近些年的熱點話題之一。
為什麼二者會有如此的不同呢?首先要從CPU和GPU的區別說起。
CPU和GPU之所以大不相同,是由於其設計目標的不同,它們分別針對了兩種不同的應用場景。CPU需要很強的通用性來處理各種不同的數據類型,同時又要邏輯判斷又會引入大量的分支跳轉和中斷的處理。這些都使得CPU的內部結構異常復雜。而GPU面對的則是類型高度統一的、相互無依賴的大規模數據和不需要被打斷的純凈的計算環境。
5. 為什麼挖礦用的是 GPU 而不是 CPU
CPU和GPU之所以大不相同,是由於其設計目標的不同,它們分別針對了兩種不同的應用場景。CPU需要很強的通用性來處理各種不同的數據類型,同時又要邏輯判斷又會引入大量的分支跳轉和中斷的處理。這些都使得CPU的內部結構異常復雜。而GPU面對的則是類型高度統一的、相互無依賴的大規模數據和不需要被打斷的純凈的計算環境。
GPU採用了數量眾多的計算單元和超長的流水線,但只有非常簡單的控制邏輯並省去了Cache。而CPU不僅被Cache占據了大量空間,而且還有有復雜的控制邏輯和諸多優化電路,相比之下計算能力只是CPU很小的一部分。
所以與CPU擅長邏輯控制和通用類型數據運算不同,GPU擅長的是大規模並發計算,這也正是密碼破解等所需要的。所以GPU除了圖像處理,也越來越多的參與到計算當中來。
中本聰的希望挖礦的這些編碼計算是很多互相獨立的快速計算的積累,這樣可以保證不同的挖礦者挖到的量按算力平攤,而不是讓算力最強的那些人挖走全部的礦。而這種類型的計算通常很適合用GPU這種大規模並行的處理器處理。
參考資料:https://www.hu.com/question/21231074/answer/17598768
6. CPU既然能處理圖像數據,為什麼非得用GPU
首先我們來區分一下GPU和CPU的區別。
GPU是一個擁有上千核心的晶元,而CPU通常只有4-8核。
你可以吧CPU理解為4-8個博士學歷核心,而GPU則是一兩千個小學生核心
CPU可以處理指令集並且給電腦里其他核心分配工作。而GPU只能處理一些最簡單的數據,比如浮點數運算。如果用生活中的例子來講,就是計算1+1,1+2,做乘法口訣速算。單純是這種級別的運算,幾千個小學生肯定是比8個博士快得多得多。
一塊GTX 1660ti可以一秒內處理5.4兆個浮點數。而最頂級消費級CPU,I9 9900k只能在一秒內處理2360億個浮點數數據。我們可以看出,一個中端的顯卡,他的浮點數處理能力甚至比最高端的CPU還要高出23倍。
游戲的畫面拆分下來,地圖的多邊形數據,貼圖,動作,物理計算,都是浮點數的計算。而這些恰好是GPU的專長,所以理所當然圖像數據用GPU來處理。
說個題外話,之前很火的挖礦之所以都是用GPU,就是因為區塊鏈計算就是以浮點數為基礎的。所以大家都用GPU來挖礦而不是CPU。
7. 挖礦疑問解答:挖礦為什麼用顯卡不用cpu
沒說CPU不能挖啊,最開始都是用CPU挖,但是隨著對挖礦演算法的深入研究,大家發現原來挖礦都是在重復一樣的工作,而CPU作為通用性計算單元,裡面設計了很多諸如分支預測單元、寄存單元等等模塊,這些對於提升算力是根本沒有任何幫助的。
另外,CPU根本不擅長於進行並行運算,一次最多就執行十幾個任務,這個和顯卡擁有數以千計的流處理器差太遠了,顯卡高太多了,因此大家慢慢針對顯卡開發出對應的挖礦演算法進行挖礦。
以BTC為例,它最基本的演算法原理就是,把已有的10分鍾內的所有交易作為一個輸入,加上一個隨機數,當10分鍾內所有交易記錄加上你的這個隨機數計算出一個SHA256的hash。裡面幾乎都是整數運算,這個根本就像是為顯卡特別打造一樣,顯卡非常適合這種無腦性演算法,流處理器數目越多約占優勢。
就Hash計算而言,它幾乎都是獨立並發的整數計算,GPU簡直就是為了這個而設計生產出來的。相比較CPU可憐的2-8線程和長度驚人的控制判斷和調度分支,GPU可以輕易的進行數百個線程的整數計算並發(無需任何判斷的無腦暴力破解乃是A卡的強項)。
OpenCL可以利用GPU在片的大量unified shader都可以用來作為整數計算的資源。而A卡的shader(流處理器)資源又是N的數倍(同等級別的卡)
不過到了後來大家發現,顯卡還是太弱了,直接上ASIC大規模堆ALU單元就能極大程度提升算力,巴掌大的算力板的算力已經是顯卡的好幾十倍,所以現在比特幣不用專門的ASIC礦機根本挖不動。
盡管後期的幣種LTC所使用的Scrypt演算法還引入了大量相互依賴的、隨機的訪存指令,當Footprint足夠大時,還會在GPU的L2級別、甚至TLB級別出現大量的緩存失效,從而產生更多的DRAM訪問,以弱化礦機(ASIC/FPGA)相較於GPU在整數運算性能上的優勢,但是依然被人針對性研發出礦機,目前也只有專門礦機才能挖。
不過像第二代虛擬貨幣(比如說是ETH、ZEC這種)由於吸取了前輩們被爆演算法的經驗,在挖掘演算法上做了更加特別優化,防止出現無腦的運算,對於顯存要求特別高,因此可以有效抵抗礦機的入侵。
也因為ETH這種只能靠顯卡挖礦,造成了2017年下半年開始的顯卡漲價潮、缺貨潮,很多礦主都賣了成千張顯卡回去組建礦機挖掘這些虛擬貨幣。
久而久之,大家都認為CPU不能挖礦,其實只是效率、效益太低了而已。