日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

CPU,GPU,Memory调度

發布時間:2023/11/28 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CPU,GPU,Memory调度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CPU,GPU,Memory調度
HDD&Memory&CPU調度機制(I/O硬件性能瓶頸)

圖1. HDD&Memory&CPU調度圖
CPU主要就是三部分:計算單元、控制單元和存儲單元,其架構如下圖所示:

圖2. CPU微架構示意圖
換一種CPU表示方法:

圖3. CPU微架構示意圖
從字面上,也很容易理解,上面的計算單元主要執行計算機的算術運算、移位等操作以及地址運算和轉換;而存儲單元主要用于保存計算機在運算中產生的數據以及指令等;控制單元則對計算機發出的指令進行譯碼,并且還要發出為完成每條指令所要執行的各個操作的控制信號。
所以在CPU中執行一條指令的過程基本是這樣的:指令被讀取到后,通過控制器(黃色區域)進行譯碼被送到總線的指令,并會發出相應的操作控制信號;然后通過運算器(綠色區域),按照操作指令對輸入的數據進行計算,并通過數據總線,將得到的數據存入數據緩存器(大塊橙色區域)。過程如下圖所示:

圖4. CPU執行指令圖
CPU遵循的是馮諾依曼架構,其核心就是:存儲計算程序,按照順序執行。
在上面的這個結構圖中,負責計算的綠色區域占的面積似乎太小了,而橙色區域的緩存Cache和黃色區域的控制單元占據了大量空間。
結構決定性質,CPU的架構中需要大量的空間去放置存儲單元(橙色部分)和控制單元(黃色部分),相比之下計算單元(綠色部分)只占據了很小的一部分,所以,在大規模并行計算能力上極受限制,而更擅長于邏輯控制。
另外,因為遵循馮諾依曼架構(存儲程序,順序執行),CPU就像是個一板一眼的管家,總是一步一步來做,當做完一件事情才會去做另一件事情,從不會同時做幾件事情。但是隨著社會的發展,大數據和人工智能時代的來臨,對更大規模與更快處理速度的需求急速增加,這位管家漸漸變得有些力不從心。
能不能把多個處理器都放在同一塊芯片上,一起來做事,相當于有了多位管家,這樣效率不就提高了嗎?
GPU便由此而誕生了。
GPU
并行計算
并行計算(Parallel Computing),指同時使用多種計算資源解決計算問題的過程,提高計算機系統計算速度和數據處理能力的一種有效手段。基本思想是用多個處理器來共同求解同一個問題,即將被求解的問題分解成若干個部分,各部分均由一個獨立的處理機來并行計算完成。
并行計算可分為時間上的并行和空間上的并行。
時間上的并行是指流水線技術,比如說工廠生產食品的時候分為四步:清洗-消毒-切割-包裝。
如果不采用流水線,一個食品完成上述四個步驟后,下一個食品才進行處理,耗時且影響效率。但是采用流水線技術,就可以同時處理四個食品。這就是并行算法中的時間并行,在同一時間啟動兩個,或兩個以上的操作,大大提高計算性能。
空間上的并行是指多個處理機并發的執行計算,即通過網絡將兩個以上的處理機連接起來,達到同時計算同一個任務的不同部分,或者單個處理機無法解決的大型問題。
為了解決CPU在大規模并行運算中遇到的困難, GPU應運而生,GPU全稱為Graphics Processing Unit,中文為圖形處理器,GPU最初是用在個人電腦、工作站、游戲機和一些移動設備(如平板電腦、智能手機等)上運行繪圖運算工作的微處理器。
GPU采用數量眾多的計算單元和超長的流水線,善于處理圖像領域的運算加速。但GPU無法單獨工作,必須由CPU進行控制調用才能工作。CPU可單獨作用,處理復雜的邏輯運算和不同的數據類型,但當需要大量的處理類型統一的數據時,則可調用GPU進行并行計算。近年來,人工智能的興起主要依賴于大數據的發展、算法模型的完善和硬件計算能力的提升。其中,硬件的發展歸功于GPU的出現。
為什么GPU特別擅長處理圖像數據呢?這是因為圖像上的每一個像素點,都有被處理的需要,而且,每個像素點處理的過程和方式都十分相似,也就成了GPU的天然溫床。
GPU簡單架構如下圖所示:

圖5. GPU微架構示意圖
GPU的構成相對簡單,有數量眾多的計算單元和超長的流水線,特別適合處理大量的類型統一的數據。
但GPU無法單獨工作,必須由CPU進行控制調用才能工作。CPU可單獨作用,處理復雜的邏輯運算和不同的數據類型,但當需要大量的處理類型統一的數據時,則可調用GPU進行并行計算。
注:GPU中有很多的運算器ALU和很少的緩存cache,緩存的目的不是保存后面需要訪問的數據的,這點和CPU不同,而是為線程thread提高服務的。如果有很多線程需要訪問同一個相同的數據,緩存會合并這些訪問,然后再去訪問dram。
再把CPU和GPU兩者放在一張圖上看下對比,就非常一目了然了。

圖6. CPU微架構
GPU的工作大部分都計算量大,但沒什么技術含量,而且要重復很多很多次。
有個工作需要計算幾億次一百以內加減乘除一樣,最好的辦法就是雇上幾十個小學生一起算,一人算一部分,反正這些計算也沒什么技術含量,純粹體力活而已;而CPU就像老教授,積分微分都會算,就是工資高,一個老教授能頂二十個小學生,要是富士康,雇哪個?
GPU就是用很多簡單的計算單元去完成大量的計算任務,純粹的人海戰術。這種策略基于一個前提,就是小學生A和小學生B的工作沒有什么依賴性,是互相獨立的。
但有一點需要強調,雖然GPU是為了圖像處理而生的,但是,通過前面的介紹可以發現,它在結構上并沒有專門為圖像服務的部件,只是對CPU的結構進行了優化與調整,所以,現在GPU不僅可以在圖像處理領域大顯身手,還被用來科學計算、密碼破解、數值分析,海量數據處理(排序,Map-Reduce等),金融分析等需要大規模并行計算的領域。
所以,GPU也可以認為是一種較通用的芯片。
TPU
CPU和GPU都是較為通用的芯片:萬能工具的效率永遠比不上專用工具。
隨著計算需求越來越專業化,希望有芯片可以更加符合自己的專業需求,這時,便產生了ASIC(專用集成電路)的概念。
ASIC是指依產品需求不同而定制化的,特殊規格集成電路,由特定使用者要求和特定電子系統的需要而設計、制造。簡單來說,就是定制化芯片。
因為ASIC很“專一”,只做一件事,所以,就會比CPU、GPU等能做很多件事的芯片,在某件事上做的更好,實現更高的處理速度和更低的能耗。但相應的,ASIC的生產成本也非常高。
TPU(Tensor Processing Unit, 張量處理器),就是谷歌專門為加速深層神經網絡運算能力,研發的一款芯片,其實也是一款ASIC。
人工智能旨,在為機器賦予人的智能,機器學習是實現人工智能的強有力方法。所謂機器學習,即研究如何讓計算機自動學習的學科。TPU就是這樣一款專用于機器學習的芯片,Google于2016年5月提出的一個針對Tensorflow平臺的可編程AI加速器,其內部的指令集在Tensorflow程序變化,或者更新算法時,也可以運行。TPU可以提供高吞吐量的低精度計算,用于模型的前向運算而不是模型訓練,且能效(TOPS/w)更高。在Google內部,CPU,GPU,TPU均獲得了一定的應用,相比GPU,TPU更加類似于DSP,盡管計算能力略有遜色,但是,其大大降低,計算速度非常的快。然而,TPU,GPU的應用都要受到CPU的控制。
一般公司很難承擔為深度學習開發專門ASIC芯片的成本和風險的。
谷歌提供的很多服務,包括谷歌圖像搜索、谷歌照片、谷歌云視覺API、谷歌翻譯等產品和服務都需要用到深度神經網絡。基于谷歌自身龐大的體量,開發一種專門的芯片開始具備規模化應用(大量分攤研發成本)的可能。
如此看來,TPU登上歷史舞臺也順理成章了。
原來很多的機器學習以及圖像處理算法大部分都跑在GPU與FPGA(半定制化芯片)上面,但這兩種芯片都還是一種通用性芯片,所以在效能與功耗上還是不能更緊密的適配機器學習算法,而且Google一直堅信偉大的軟件將在偉大的硬件的幫助下更加大放異彩,所以Google便想,我們可不可以做出一款專用機機器學習算法的專用芯片,TPU便誕生了。
據稱,TPU與同期的CPU和GPU相比,可以提供15-30倍的性能提升,以及30-80倍的效率(性能/瓦特)提升。初代的TPU只能做推理,要依靠Google云實時收集數據并產生結果,而訓練過程還需要額外的資源;而第二代TPU既可以用于訓練神經網絡,又可以用于推理。
為什么TPU會在性能上這么牛逼呢?TPU是怎么做到如此之快呢?
(1)深度學習的定制化研發:TPU 是谷歌專門為加速深層神經網絡運算能力而研發的一款芯片,其實也是一款 ASIC(專用集成電路)。
(2)大規模片上內存:TPU 在芯片上使用了高達 24MB 的局部內存,6MB 的累加器內存,以及用于與主控處理器進行對接的內存。
(3)低精度 (8-bit) 計算:TPU 的高性能還來源于對于低運算精度的容忍,TPU 采用了 8-bit 的低精度運算,也就是說,每一步操作 TPU 將會需要更少的晶體管。

圖7. TPU 各模塊的框圖
TPU在芯片上使用了高達24MB的局部內存,6MB的累加器內存以及用于與主控處理器進行對接的內存,總共占芯片面積的37%。
這表示谷歌充分意識到了片外內存訪問是GPU能效比低的罪魁禍首,因此不惜成本的在芯片上放了巨大的內存。相比之下,英偉達同時期的K80只有8MB的片上內存,因此需要不斷地去訪問片外DRAM。
另外,TPU的高性能還來源于對于低運算精度的容忍。研究結果表明,低精度運算帶來的算法準確率損失很小,但是在硬件實現上卻可以帶來巨大的便利,包括功耗更低、速度更快、占芯片面積更小的運算單元、更小的內存帶寬需求等…TPU采用了8比特的低精度運算。

參考鏈接:
https://images2015.cnblogs.com/blog/430057/201511/430057-20151102143747180-1940496572.jpg
https://baijiahao.baidu.com/s?id=1706639922409916892&wfr=spider&for=pc

總結

以上是生活随笔為你收集整理的CPU,GPU,Memory调度的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。