CuDNN是一個(gè)專門針對(duì)Deep Learning框架設(shè)計(jì)的GPU計(jì)算加速方案,目前支持的DL庫包括Caffe,ConvNet, Torch7等。cuDNN Library for Windows 10 引入了協(xié)作組,一個(gè)用于組織通信線程組的編程模型。CUDA編程模型提供了一個(gè)用于同步協(xié)作線程的單一結(jié)構(gòu),現(xiàn)在要下載cuDNN,點(diǎn)擊下載的頁面后都是出現(xiàn)要求先加入Nvidia developers會(huì)員才能進(jìn)行下載,但這個(gè)注冊(cè)的過程非常慢,所以本站就給大家?guī)砹吮镜叵螺d,不用注冊(cè)就可以下載到了
功能概述
·支持Volta-GPU架構(gòu),包括新的Tesla V100 加速器
·協(xié)作組,一個(gè)用于管理通信線程組的新編程模型
·用于編程Tensor Core矩陣的新型API在Tesla V100上進(jìn)行乘法或加法的操作
·更快的程序庫用于線性代數(shù),圖像處理,F(xiàn)FT等
·在CuSolver和nvGroup中的新算法
·新的NVIDIA Visual Profiler支持Volta V100以及改進(jìn)同一內(nèi)存的分析功能
·提高編譯器性能
·在CUDA設(shè)備代碼中支持 C++14
·擴(kuò)大開發(fā)平臺(tái)和主機(jī)編譯器,包括Microsoft Visual Studio 2017, Clang 3.9, PGI17.1和GCC6.x
CUDA 支持新的NVIDIA Volta 架構(gòu)
CUDA 的核心是支持新型Volta架構(gòu),特別是GTC 2017推出的新Tesla V100 GPU加速器。
Tesla V100新的SM(流式多處理器)為深度學(xué)習(xí)和HPC提供了極高的浮點(diǎn)和整數(shù)性能。新的Volta SM比上一代Pascal設(shè)計(jì)能效高50%,在相同的功率范圍內(nèi)可大幅度提升FP32和FP64性能。在深度學(xué)習(xí)訓(xùn)練上,有12倍的峰值TFLOPs提升,在深度學(xué)習(xí)推理上,有6倍提升。通過獨(dú)立的并行整數(shù)和浮點(diǎn)數(shù)據(jù)路徑,Volta SM在計(jì)算和尋址計(jì)算的組合下,對(duì)工作負(fù)載的效率也更高。Volta的新獨(dú)立線程調(diào)度能力使得并行線程之間的細(xì)粒度同步協(xié)同成為可能。最終,新型的L1 Data Cache 與Shared Memory子系統(tǒng)的結(jié)合極大地提升了性能,同時(shí)也簡(jiǎn)化了編程。
協(xié)作組
在并行運(yùn)算中,線程通常需要合作來執(zhí)行集體運(yùn)算。
構(gòu)建這些協(xié)作代碼需要對(duì)協(xié)作線程進(jìn)行分組和同步。
CUDA 9引入了協(xié)作組,一個(gè)用于組織通信線程組的編程模型。
歷史上,CUDA編程模型提供了一個(gè)用于同步協(xié)作線程的單一結(jié)構(gòu),然而,程序員通常希望以小于線程塊粒度來定義線程組。并在其中同步,以便以“集體”組功能接口的形式實(shí)現(xiàn)更高的性能,設(shè)計(jì)靈活性和軟件復(fù)用。
協(xié)作組介紹了以子塊和多塊粒度明確定義線程組的能力,并對(duì)其進(jìn)行集體操作,例如同步。編程模型支持跨軟件邊界的明確組合,使得庫和實(shí)用程序功能可以在其上下文中安全同步,而無需對(duì)收斂進(jìn)行假設(shè)。它允許開發(fā)人員針對(duì)硬件快速路徑進(jìn)行優(yōu)化,例如GPU翹曲大小 - 以安全,可支持的方式使用靈活的同步,使程序員意圖明確。協(xié)作組原本在CUDA中實(shí)現(xiàn)了合作并行性的新模式,包括整個(gè)網(wǎng)格中的生產(chǎn)者 - 消費(fèi)者并行性,機(jī)會(huì)主義并行性和全局同步。
協(xié)作組還提供了一個(gè)抽象,開發(fā)人員可以編寫靈活,可擴(kuò)展的代碼,以便在不同的GPU架構(gòu)中安全工作,包括擴(kuò)展到未來的GPU功能。線程組的大小可以從幾個(gè)線程到整個(gè)線程塊,到網(wǎng)格啟動(dòng)中的所有線程塊,跨越多個(gè)GPU的網(wǎng)格。
協(xié)作組編程模型由以下元素組成:
用于表示協(xié)作線程組的數(shù)據(jù)類型;
由CUDA啟動(dòng)API定義的默認(rèn)組(例如,線程塊和網(wǎng)格);
將現(xiàn)有組劃分為新組的操作;
同步組內(nèi)所有線程的屏障操作;
檢查組屬性以及針對(duì)集團(tuán)的集體的操作。
CuDNN安裝教程
1、解壓cudnn-10.1-windows10-x64.zip
cuda默認(rèn)安裝路徑
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
2、將cuda加入系統(tǒng)環(huán)境,設(shè)置環(huán)境變量:
計(jì)算機(jī)上點(diǎn)右鍵,打開屬性->高級(jí)系統(tǒng)設(shè)置->環(huán)境變量,可以看到系統(tǒng)中多了CUDA_PATH和CUDA_PATH_V10_1兩個(gè)環(huán)境變量,接下來,還要在系統(tǒng)中添加以下幾個(gè)環(huán)境變量:
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1(這是默認(rèn)安裝位置的路徑)
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
在系統(tǒng)變量 PATH 的末尾添加:
%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;
再添加如下4條(默認(rèn)安裝路徑):
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1\common\lib\x64;
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.1\bin\win64;
3、驗(yàn)證是否配置成功,分別運(yùn)行這兩個(gè)程序deviceQuery.exe、bandwidthTest.exe ,cd到安裝目錄下的 ...\extras\demo_suite,result=pass則安裝成功