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

第1章 為什么要學(xué)習(xí)GPU編程

事實(shí)表明,除了用于對(duì)視頻游戲進(jìn)行圖形渲染,圖形處理單元(GPU)還能為普通消費(fèi)者提供一種進(jìn)行大規(guī)模并行計(jì)算的捷徑。現(xiàn)在,人們只要從當(dāng)?shù)氐纳痰曩?gòu)買(mǎi)一塊價(jià)值2000美元的現(xiàn)代GPU,并將其插入家中的PC,就能輕松獲得強(qiáng)大的算力——在5年或10年前,只有頂級(jí)的企業(yè)和大學(xué)的超級(jí)計(jì)算實(shí)驗(yàn)室才有這種算力。近年來(lái),GPU的這種開(kāi)放的可及性已經(jīng)在很多方面顯現(xiàn)出來(lái)。實(shí)際上,我們只要留意一下新聞就可以發(fā)現(xiàn)——加密貨幣礦工使用GPU挖掘比特幣等數(shù)字貨幣,遺傳學(xué)家和生物學(xué)家使用GPU進(jìn)行DNA分析和研究,物理學(xué)家和數(shù)學(xué)家使用GPU進(jìn)行大規(guī)模的模擬,人工智能研究人員通過(guò)編寫(xiě)GPU代碼來(lái)撰寫(xiě)劇本及創(chuàng)作音樂(lè),谷歌和臉書(shū)等大型互聯(lián)網(wǎng)公司使用帶有GPU的服務(wù)器群來(lái)完成大規(guī)模的機(jī)器學(xué)習(xí)任務(wù)……類(lèi)似的例子簡(jiǎn)直不勝枚舉。

本書(shū)的編寫(xiě)初衷,就是幫助你快速掌握GPU編程。這樣,無(wú)論最終目標(biāo)是什么,你都可以盡快用上GPU的強(qiáng)大算力。

注意,本書(shū)旨在為你介紹GPU編程的核心要領(lǐng),而不是贅述復(fù)雜的技術(shù)細(xì)節(jié)及GPU的工作原理。第12章會(huì)列舉更多的資源,以幫助你了解細(xì)分,進(jìn)而為學(xué)到的GPU新知識(shí)找到用武之地。在本書(shū)中,我們將使用CUDA。CUDA是NVIDIA公司的通用GPU(General-Purpose GPU,GPGPU)編程框架,早在2007年就有了第一個(gè)版本。CUDA是NVIDIA GPU的專有系統(tǒng),是一個(gè)成熟、穩(wěn)定的平臺(tái),使用起來(lái)比較方便,并提供了一套無(wú)與倫比的第一方數(shù)學(xué)加速和人工智能相關(guān)的代碼庫(kù)。在安裝和集成方面,CUDA也是最便捷的。

目前CUDA編程領(lǐng)域出現(xiàn)了許多現(xiàn)成的標(biāo)準(zhǔn)化Python庫(kù),如PyCUDA和Scikit-CUDA,讓從事GPU編程的程序員更容易上手。基于上述原因,我們?cè)诒緯?shū)中選用了CUDA。


CUDA的發(fā)音通常是coo-duh,而非C-U-D-A!CUDA最初代表的是Compute Unified Device Architecture(計(jì)算統(tǒng)一設(shè)備架構(gòu)),但英偉達(dá)公司已經(jīng)放棄了這個(gè)首字母縮寫(xiě)詞的初始含義,轉(zhuǎn)而將CUDA作為全大寫(xiě)的專有名稱來(lái)使用。


現(xiàn)在,我們先介紹阿姆達(dá)爾定律,由此開(kāi)始GPU編程之旅。

阿姆達(dá)爾定律是一種簡(jiǎn)單而有效的方法,用于估計(jì)通過(guò)將程序或算法轉(zhuǎn)移到GPU上可能獲得的速度提升,進(jìn)而幫助我們判斷是否有必要通過(guò)重寫(xiě)代碼利用GPU提升程序的性能。在此之后,我們將簡(jiǎn)要學(xué)習(xí)如何使用cProfile模塊分析Python代碼的運(yùn)行情況,以找到代碼的瓶頸。

在本章中,我們將介紹下列主題:

● 阿姆達(dá)爾定律;

● 將阿姆達(dá)爾定律應(yīng)用到代碼中;

● 使用cProfile模塊對(duì)Python代碼進(jìn)行簡(jiǎn)單的性能分析。

主站蜘蛛池模板: 香港 | 岳阳县| 渝中区| 元氏县| 灵寿县| 大田县| 收藏| 双桥区| 伽师县| 都兰县| 昌乐县| 马鞍山市| 西丰县| 湖州市| 昭平县| 乌兰察布市| 汉阴县| 青海省| 北川| 咸宁市| 建宁县| 当阳市| 措美县| 玛多县| 本溪| 无极县| 临沧市| 鹤庆县| 衡南县| 五河县| 东山县| 舒兰市| 泌阳县| 阳曲县| 商水县| 临泉县| 布尔津县| 普兰县| 榕江县| 泸西县| 海兴县|