Fiori-like Prototype ( Nvidia CUDA C / C++ )

Fiori-like Prototype ( Nvidia CUDA C / C++ )

Play with Visual C / C++

Play with Visual C / C++

Model rendering

Model rendering

Demos / Prototypes / Mockups

ZFiori Studio ( Nvidia CUDA C/C++ Mockups ) S1

ZFiori Studio ( Nvidia CUDA C/C++ Mockups ) S1

Nvidia CUDA Community

Fiori-like Prototype ( Nvidia?CUDA? C/C++ )

CUDA 是 NVIDIA 發(fā)明的一種并行計算平臺和編程模型藐石。它通過利用圖形處理器 (GPU) 的處理能力壮虫,可大幅提升計算性能。

2006 年 11 月,NVIDIA? 推出了 CUDA?纯命,這是一種通用并行計算平臺和編程模型,它利用 NVIDIA GPU 中的并行計算引擎以比 CPU 更有效的方式解決許多復(fù)雜的計算問題。

CUDA 附帶一個軟件環(huán)境,允許開發(fā)人員使用 C++ 作為高級編程語言伙单。

如下圖所示,支持其他語言哈肖、應(yīng)用程序編程接口或基于指令的方法吻育,例如 FORTRAN、DirectCompute淤井、OpenACC布疼。

GPU Computes

可擴展的編程模型

多核 CPU 和眾核 GPU 的出現(xiàn)意味著主流處理器芯片現(xiàn)在是并行系統(tǒng)。挑戰(zhàn)在于開發(fā)能夠透明地擴展可并行的應(yīng)用軟件币狠,來利用不斷增加的處理器內(nèi)核數(shù)量游两。就像 3D 圖形應(yīng)用程序透明地將其并行性擴展到具有廣泛不同內(nèi)核數(shù)量的多核 GPU 一樣。

CUDA 并行編程模型旨在克服這一挑戰(zhàn)漩绵,同時為熟悉 C 等標(biāo)準(zhǔn)編程語言的程序員保持較低的學(xué)習(xí)曲線器罐。

其核心是三個關(guān)鍵抽象——線程組的層次結(jié)構(gòu)、共享內(nèi)存和屏障同步——它們只是作為最小的語言擴展集向程序員公開渐行。

這些抽象提供了細(xì)粒度的數(shù)據(jù)并行和線程并行,嵌套在粗粒度的數(shù)據(jù)并行和任務(wù)并行中铸董。它們指導(dǎo)程序員將問題劃分為可以由線程塊并行獨立解決的粗略子問題祟印,并將每個子問題劃分為可以由塊內(nèi)所有線程并行協(xié)作解決的更精細(xì)的部分。

Nvidia NVLink

這種分解通過允許線程在解決每個子問題時進行協(xié)作來保留語言表達能力粟害,同時實現(xiàn)自動可擴展性蕴忆。實際上,每個線程塊都可以在 GPU 內(nèi)的任何可用multiprocessor上以亂序悲幅、并發(fā)或順序調(diào)度套鹅,以便編譯的 CUDA 程序可以在任意數(shù)量的多處理器上執(zhí)行站蝠,如下圖所示,并且只有運行時系統(tǒng)需要知道物理multiprocessor個數(shù)卓鹿。

這種可擴展的編程模型允許 GPU 架構(gòu)通過簡單地擴展multiprocessor和內(nèi)存分區(qū)的數(shù)量來跨越廣泛的市場范圍:

高性能發(fā)燒友 GeForce GPU 菱魔,專業(yè)的 Quadro 和 Tesla 計算產(chǎn)品 。

SM: Streaming Multiprocessors

注意:GPU 是圍繞一系列流式多處理器 (SM: Streaming Multiprocessors) 構(gòu)建的(有關(guān)詳細(xì)信息吟孙,請參閱硬件實現(xiàn))澜倦。 多線程程序被劃分為彼此獨立執(zhí)行的線程塊,因此具有更多multiprocessor的 GPU 將比具有更少多處理器的 GPU 在更短的時間內(nèi)完成程序執(zhí)行杰妓。

英偉達GPU硬件架構(gòu)

在英偉達的設(shè)計里藻治,多個核心組成一個Streaming Multiprocessor(SM),一張GPU卡有多個SM巷挥。從“Multiprocessor”這個名字上也可以看出SM包含了多個處理器桩卵。實際上,英偉達主要以SM為運算和調(diào)度的基本單元倍宾。

Pascal微架構(gòu)示意圖:一個GPU中有多個SM雏节,每個SM里有計算核心、Shared Memory和L1 Cache

英偉達不同時代產(chǎn)品的芯片設(shè)計不同凿宾,每代產(chǎn)品背后有一個微架構(gòu)代號矾屯,微架構(gòu)均以著名的物理學(xué)家為名,以向先賢致敬初厚。當(dāng)前比較火熱的架構(gòu)有:

Ampere 安培2020年5月發(fā)布專業(yè)顯卡:Telsa A100

Turing 圖靈2018年發(fā)布消費顯卡:GeForce RTX 2080 Ti件蚕、Titan RTX

Volta 伏特2017年末發(fā)布專業(yè)顯卡:Telsa V100 (16或32GB顯存 5120個CUDA核心)

Pascal 帕斯卡2016年發(fā)布專業(yè)顯卡:Telsa P100(12或16GB顯存 3584個CUDA核心)

Telsa微架構(gòu):Tesla V100共有84個Streaming Multiprocessor

上圖為Tesla V100的設(shè)計,它共有84個SM产禾。圖中密密麻麻的綠色小格子就是GPU計算核心排作,多個計算核心一起組成了一個SM。將SM放大亚情,單個SM如下圖所示妄痪。

V100 SM:單個SM有各種不同類型的計算核心,包括浮點運算楞件、整型運算以及專門為深度學(xué)習(xí)設(shè)計的Tensor Core

可以看到一個SM中包含了計算核心衫生、存儲等部分:

針對不同類型計算的小核心,包括64位浮點核心(FP64)土浸,整型核心(INT)罪针,32位浮點核心(FP32),優(yōu)化深度學(xué)習(xí)的Tensor Core黄伊。

計算核心直接從寄存器(Register)中讀寫數(shù)據(jù)泪酱。

調(diào)度和分發(fā)器(Scheduler和Dispatch Unit)。

L0和L1級緩存。

具體而言:

SM中的FP32進行32位浮點加乘運算墓阀,INT進行整型加乘運算毡惜,SFU(Special Functional Unit)執(zhí)行一些倒數(shù)和三角函數(shù)等運算。

這里對Tensor Core做一些簡單解釋斯撮。

Tensor Core是英偉達新的微架構(gòu)中提出的一種混合精度的計算核心经伙。

我們知道,當(dāng)前深度神經(jīng)網(wǎng)絡(luò)中使用到最頻繁的矩陣運算是:D=A×B+CD = A \times B + CD=A×B+C吮成。

Tensor Core可以對4*4的矩陣做上述運算橱乱。

其中,涉及乘法的AAA和BBB使用FP16的16位浮點運算粱甫,精度較低泳叠;涉及加法的CCC和DDD使用FP16或FP32精度。

Tensor Core是在Volta架構(gòu)開始提出的茶宵,使用Volta架構(gòu)的V100在深度學(xué)習(xí)上的性能遠(yuǎn)超Pascal架構(gòu)的P100危纫。

Tensor Core是一種為優(yōu)化深度學(xué)習(xí)計算核心

前面提到的以物理學(xué)家命名的名稱是英偉達各代GPU的微架構(gòu)代號,微架構(gòu)表示英偉達不同時代的芯片設(shè)計乌庶。不同微架構(gòu)里各類計算核心和顯卡存儲的設(shè)計不同种蝶。2020年,比較流行的微架構(gòu)為Volta和Turing瞒大。

對于消費者而言螃征,英偉達主要有兩條產(chǎn)品線:

消費級產(chǎn)品 GeForce 系列:GeForce RTX 2080 Ti ...

針對數(shù)據(jù)中心的高性能計算產(chǎn)品 Telsa 系列:Telsa V100、Telsa P100透敌、Telsa P40 ...

其中盯滚,消費級產(chǎn)品GeForce可以用在個人電腦上,用來加速游戲和視頻酗电,Telsa系列產(chǎn)品一般用在數(shù)據(jù)中心的高性能計算加速場景上魄藕。

此外,還有使用在工作站上的Quadro系列撵术,一般用在CAD背率、視頻制作和部分科學(xué)計算上,是一個介于GeForce和Telsa之間的產(chǎn)品線嫩与。英偉達產(chǎn)品的命名中暗含了微架構(gòu):Telsa V100的V表示使用Volta微架構(gòu)寝姿,Telsa P100的P表示使用Pascal微架構(gòu);GeForce系列中划滋,20xx系列使用了Turing微架構(gòu)会油。

英偉達顯卡型號眾多,但是歸根結(jié)底需要關(guān)注兩方面問題:采用哪種微架構(gòu)古毛、顯卡存儲(簡稱顯存)多大。

為什么選擇GPU

GPU(Graphics Processing Unit)在相同的價格和功率范圍內(nèi),比CPU提供更高的指令吞吐量和內(nèi)存帶寬稻薇。許多應(yīng)用程序利用這些更高的能力嫂冻,在GPU上比在CPU上運行得更快(參見GPU應(yīng)用程序)。其他計算設(shè)備塞椎,如FPGA桨仿,也非常節(jié)能,但提供的編程靈活性要比GPU少得多案狠。

GPU和CPU在功能上的差異是因為它們的設(shè)計目標(biāo)不同服傍。雖然 CPU 旨在以盡可能快的速度執(zhí)行一系列稱為線程的操作,并且可以并行執(zhí)行數(shù)十個這樣的線程骂铁。但GPU卻能并行執(zhí)行成千上萬個(攤銷較慢的單線程性能以實現(xiàn)更大的吞吐量)吹零。

GPU 專門用于高度并行計算,因此設(shè)計時更多的晶體管用于數(shù)據(jù)處理拉庵,而不是數(shù)據(jù)緩存和流量控制灿椅。

GPU VS CPU

下圖顯示了 CPU 與 GPU 的芯片資源分布示例:

CPU 與 GPU 的芯片資源分布示例

將更多晶體管用于數(shù)據(jù)處理,例如浮點計算钞支,有利于高度并行計算茫蛹。

GPU可以通過計算隱藏內(nèi)存訪問延遲,而不是依靠大數(shù)據(jù)緩存和復(fù)雜的流控制來避免長時間的內(nèi)存訪問延遲烁挟,這兩者在晶體管方面都是昂貴的婴洼。

Reference

CUDA C 和 C++ 的簡單介紹

GPU軟硬件基礎(chǔ)知識

GPU加速02:超詳細(xì)Python Cuda零基礎(chǔ)入門教程,沒有顯卡也能學(xué)

anaconda的安裝和使用(管理python環(huán)境看這一篇就夠了)

Numba Deprecation Notices

CUDA 編程手冊系列第一章:CUDA 簡介

為啥 AMD 的 ROCm 沒有被廣泛使用撼嗓,Nvidia 的 CUDA 一家獨大?

ZFiori Studio ( Nvidia CUDA C/C++ Mockups ) S1

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柬采,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子静稻,更是在濱河造成了極大的恐慌警没,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件振湾,死亡現(xiàn)場離奇詭異杀迹,居然都是意外死亡,警方通過查閱死者的電腦和手機押搪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門树酪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人大州,你說我怎么就攤上這事续语。” “怎么了厦画?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵疮茄,是天一觀的道長滥朱。 經(jīng)常有香客問我,道長力试,這世上最難降的妖魔是什么徙邻? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮畸裳,結(jié)果婚禮上缰犁,老公的妹妹穿的比我還像新娘。我一直安慰自己怖糊,他們只是感情好帅容,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伍伤,像睡著了一般并徘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嚷缭,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天饮亏,我揣著相機與錄音,去河邊找鬼阅爽。 笑死路幸,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的付翁。 我是一名探鬼主播简肴,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼百侧!你這毒婦竟也來了砰识?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤佣渴,失蹤者是張志新(化名)和其女友劉穎辫狼,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辛润,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡膨处,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了砂竖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片真椿。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乎澄,靈堂內(nèi)的尸體忽然破棺而出突硝,到底是詐尸還是另有隱情,我是刑警寧澤置济,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布解恰,位于F島的核電站锋八,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏修噪。R本人自食惡果不足惜查库,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望黄琼。 院中可真熱鬧,春花似錦整慎、人聲如沸脏款。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撤师。三九已至,卻和暖如春拧揽,著一層夾襖步出監(jiān)牢的瞬間剃盾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工淤袜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留痒谴,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓铡羡,卻偏偏與公主長得像积蔚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子烦周,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容