官术网_书友最值得收藏!

在深入挖掘GPU的潛力之前,我們首先要說明的是,與Intel/AMD公司的中央處理器(CPU)的算力相比,GPU的優勢在哪里。GPU的優勢并不在于擁有比CPU更高的時鐘頻率,也不在于單個內核的復雜性或特殊設計。與現代單個CPU內核相比,單個GPU內核其實很簡陋,這方面它并不占優勢,因為CPU內核應用了很多復雜的工程技術,比如通過分支預測來降低計算的延遲等。這里所謂的“延遲”,指的是執行一次計算從開始到結束所用的時間。

GPU的強大之處在于它比CPU擁有多得多的內核,這意味著其吞吐量有了巨大的進步。這里的“吞吐量”指的是可以同時進行的計算數量。下面讓我們通過類比來進一步理解這到底意味著什么。GPU就像一條非常寬闊的城市道路,可以同時通過很多輛行駛較慢的汽車(高吞吐量、高延遲),而CPU就像一條狹窄的公路,只能同時容納幾輛汽車,但可以讓每一輛車更快地抵達目的地(低吞吐量、低延遲)。

對于新發行的GPU設備,我們只需考察其內核數量,就能大體了解其吞吐量的提升情況。舉例來說,Intel或AMD公司的CPU平均只有2~8個內核,而入門級、消費級NVIDIA GTX 1050 GPU則有640個內核,新的頂級NVIDIA RTX 2080 Ti則有4352個內核!因此,只要我們知道如何正確地并行化需要加速的程序或算法,就可以充分利用GPU巨大的吞吐量所帶來的優勢。所謂的“并行化”,指的是通過重寫程序或算法,將其工作負載分割成更小的單位,以便同時在多個處理器上并行運行。下面讓我們來思考一個現實生活中的例子。

假設你正在建造一所房子,并且已經準備好了所有的設計資料和建材。如果你只聘請1個工人的話,那么建造這座房子估計需要100小時。假設這所房子的建造方式比較特殊,即相關工作可以完美地分配給額外增加的每個工人——也就是說,聘請2個工人建造這座房子需要50小時,聘請4個工人需要25小時,聘請10個工人需要10小時。那么,建造房子的所需小時數等于100除以所聘請的工人數量。這就是一個可并行化任務的例子。

我們注意到,與1個工人獨自建造(串行建造)房子相比,2個工人完成這項任務的速度是其2倍,而10個工人一起完成(并行完成)這項任務的速度則是其10倍——也就是說,如果N是工人的數量,那么建造速度將是原來的N倍。在本例中,N被稱為任務的串行版本的并行加速比。

對于給定的算法,在開發并行化版本進行之前,通常我們需要先估計并行化的潛在加速比,以確定是否值得花費資源和時間來實現程序的并行化。現實生活中的例子比這個例子要復雜得多,我們顯然很難對程序的所有部分完美地并行化。在大多數情況下,只有一部分程序可以被很好地并行化,而其余的部分則不得不串行運行。

主站蜘蛛池模板: 达日县| 高清| 新建县| 民乐县| 宁夏| 无锡市| 南阳市| 黑河市| 景宁| 南开区| 满洲里市| 二连浩特市| 德钦县| 隆子县| 高雄市| 康马县| 绥滨县| 基隆市| 将乐县| 乌审旗| 枞阳县| 宜丰县| 通许县| 辉县市| 平乡县| 兴安盟| 海门市| 南充市| 阜宁县| 桂阳县| 平顺县| 牙克石市| 林口县| 博野县| 安多县| 上饶县| 深圳市| 西和县| 志丹县| 两当县| 宁远县|