CUDA平臺在自動控制并行編程實踐教學中的應(yīng)用與思考_第1頁
CUDA平臺在自動控制并行編程實踐教學中的應(yīng)用與思考_第2頁
CUDA平臺在自動控制并行編程實踐教學中的應(yīng)用與思考_第3頁
CUDA平臺在自動控制并行編程實踐教學中的應(yīng)用與思考_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、CUDA平臺在自動控制并行編程實踐教學中的應(yīng)用與思考摘 要:本文將基于 CUDA平臺的GPU并行程序設(shè)計 模式引入自動控制系統(tǒng)并行編程實踐教學中。通過介紹 CUDA體系結(jié)構(gòu)與編程模式,實例教學使自動控制專業(yè)學生 對CUDA并行程序設(shè)計有著深刻的認識,將有助于同學們掌 握CUDA并行計算平臺在工業(yè)控制程序開發(fā)中的應(yīng)用,增強 同學們對自動控制專業(yè)學習的興趣和實踐動手能力。關(guān)鍵詞:CUDA平臺;自動控制;并行編程;實踐教學一、引言隨著工業(yè)控制系統(tǒng)規(guī)模日益增大,控制算法日益復雜, 工業(yè)數(shù)據(jù)日益激增,工業(yè)現(xiàn)場對系統(tǒng)控制與優(yōu)化調(diào)度的實時 性要求日益提高,給現(xiàn)代控制系統(tǒng)程序設(shè)計提出挑戰(zhàn)。工業(yè) 控制系統(tǒng)中存在

2、大量的重復性計算,如快速傅里葉變換 (FFT)、濾波、矩陣與數(shù)值計算等,給傳統(tǒng)控制系統(tǒng)帶來巨大時間開 銷。以多核計算機為代表的并行計算技術(shù)為工業(yè)控制系統(tǒng)設(shè) 計與開發(fā)提供了技術(shù)支持。特別是G P U( Graphic ProcessingUnit)通用并行計算技術(shù)的推廣1,由于其高存儲器帶寬、 低功耗等諸多優(yōu)點,已被廣泛應(yīng)用于科學與工業(yè)等領(lǐng)域中, 在提升實際問題的求解效率方面發(fā)揮了作用。 CUDACompute Unified Device Architecture ,計算統(tǒng)一設(shè)備架構(gòu)) 由英偉達公司于 2007 年發(fā)布的一種將 GPU 作為并行計算的 軟硬件體系架構(gòu),可用于解決工程科學中的復雜

3、計算,開啟 了 GPU通用并行計算時代2。研究表明在浮點運算、 數(shù)值計 算等密集型計算方面, 基于CUDA平臺的GPU計算系統(tǒng)可獲 得數(shù)十倍于傳統(tǒng) CPU的加速性能3。因此,相比于傳統(tǒng)微機 控制方式,基于CUDA的GPU并行計算適用于數(shù)據(jù)量大,實 時性要求高的工業(yè)控制領(lǐng)域?,F(xiàn)有高校自控專業(yè)程序設(shè)計課程主要是基于串行編程 方式的教學,難以適應(yīng)工業(yè)信息化與知識自動化對控制系統(tǒng) 實時性能與數(shù)據(jù)存儲的需求。本文將基于CUDA平臺的GPU并行程序設(shè)計模式引入自動控制系統(tǒng)并行程序設(shè)計實踐教 學中。有利于同學掌握先進計算技術(shù)在自動控制系統(tǒng)中的開 發(fā)與應(yīng)用,拓寬其專業(yè)視野。最后對自動控制程序設(shè)計與 CUDA并

4、行編程實踐教學進行了思考與總結(jié)。二、CUDA體系架構(gòu)和編程模式(一) CUDA體系結(jié)構(gòu)。CUDA框架包括硬件和軟件兩部 分,拓寬了 GPU程序開發(fā)與運行的可操作性。GPU的硬件包括運算核心和存儲器,其中運算核心流處理器構(gòu)成流多處理 器(Streaming Multi-Processor,SM),每個 SM 都帶共享存儲 器,所有SM共享GPU的全局、常量與紋理存儲器。CUDA的軟件包括CPU代碼和GPU代碼,其中CPU負責處理邏輯 性的串行事務(wù)控制,GPU負責處理大量重復性計算任務(wù)。在GPU上執(zhí)行的函數(shù)稱為核函數(shù),當核函數(shù)被CPU代碼激活時,GPU中在邏輯上的兩層線程組(頂層為線程網(wǎng)格(Gri

5、d),下層為線程塊(Block,包含若干個線程(Thread)并行執(zhí)行。 一個內(nèi)核函數(shù)網(wǎng)格中的線程塊并行和線程塊中的線程兩個 層次的并行方式來提高數(shù)據(jù)吞吐量和執(zhí)行效率。各個線程塊 并行執(zhí)行,線程塊間無法通信,也沒有執(zhí)行順序,但同一個 線程塊中的線程可以通過共享存儲器方式交換數(shù)據(jù)。(二) CUDA編程模式。在CUDA架構(gòu)中,CPU與GPU 是一種異構(gòu)協(xié)同并行計算模式。其中CPU為主機,GPU為設(shè)備。CPU與GPU各自擁有獨立的存儲器地址空間:顯存和內(nèi)存。程序員可以應(yīng)用高級語言( C/C+/fortan )對GPU內(nèi)部 計算資源進行訪問。CUDA編程基本步驟為:步驟 1:加載C (或 C+)和 C

6、UDA頭文件,啟動 cudaSetDevice()配置 GPU 設(shè)備;初始化CPU和GPU數(shù)據(jù)空間;步驟2:調(diào)用設(shè)備端(GPU) 的內(nèi)核函數(shù)計算;從顯存讀取數(shù)據(jù)到共享存儲器或寄存器 內(nèi);對數(shù)據(jù)進行并行計算和處理;將處理后的數(shù)據(jù)寫回 顯存。步驟 3:將顯存中的結(jié)果回讀到內(nèi)存;步驟 4:使用 CPU對數(shù)據(jù)進行處理并輸出結(jié)果;步驟5:釋放內(nèi)存和顯存空間并退出 CUDA。三、實例講解以一個簡單的CUDA程序設(shè)計實例來講解,加深自動控 制專業(yè)同學對 CUDA平臺GPU并行程序設(shè)計過程的理解。 考 慮給一個向量 V1: N上每一位矢量的加上常數(shù)。其中 CUDA 程序 C 代碼如下:#define N 10

7、0 ;_global_void Vadd ( int*V ,int m )int index=blockIdx.x ;i(f indexN )Vindex=Vindex+m ; int main(void) int host_VN ; int *device_V ; cudaMalloc( void* )&device_V, L * sizeo(f int ); for (int k=0; k( device_V, 5); cudaMemcpy ( host_V,device_V,N*sizeof(int), cudaMemcpy DeviceToHost );cudaFree( device

8、_V); return 0 ; 對上述CUDA關(guān)鍵函數(shù)進行解釋。內(nèi)核函數(shù)通過_global_ 函數(shù)類型限定符定義,如 _global_void kernel ( void)。 GPU 通 過cudaMalloc ()函數(shù)為設(shè)備分配內(nèi)存。函數(shù) cudaMemcpy()來完成 CPU和GPU之間數(shù)據(jù)傳遞,cudaFree(device_V) 為釋放內(nèi)存。實際執(zhí)行中,CUDA產(chǎn)生許多在GPU上執(zhí)行的線程,每一個線程都去執(zhí)行內(nèi)核程序,由于預(yù)先設(shè)置了內(nèi)置 變量blockIdx,變量的值為當前執(zhí)行設(shè)備代碼線程塊的索引, 從而取得不同的數(shù)據(jù)進行并行計算。四、基于 CUDA 的自動控制并行編程實踐教學思考 目

9、前高校自動控制專業(yè)所開設(shè)程序設(shè)計課程主要以簡 單程序設(shè)計語言為主,其計算機系統(tǒng)知識不全面。自動控制 專業(yè)學生的軟件基礎(chǔ)與計算思維相對較弱,將造成現(xiàn)有自動 控制專業(yè)學生的計算機程序設(shè)計開發(fā)能力不強。因此自動控 制專業(yè)學生有待加強計算機系統(tǒng)學習,特別是計算機程序設(shè) 計與軟件基礎(chǔ),數(shù)據(jù)結(jié)構(gòu)與算法分析等課程,加強計算機系 統(tǒng)知識積累。五、結(jié)論將 GPU 先進計算與現(xiàn)代控制技術(shù)結(jié)合是適應(yīng)新時代工業(yè)信息化與知識自動化人才培養(yǎng)的需求。將CUDA平臺引入控制系統(tǒng)并行程序設(shè)計實踐課堂教學,有助于同學掌握現(xiàn)代 先進計算技術(shù)在工業(yè)控制中的應(yīng)用,拓寬同學們的專業(yè)視野 及對自動控制專業(yè)的興趣和動手能力,這將有利于自動控制 專業(yè)人才培養(yǎng)質(zhì)量。參考文獻:1 張舒,褚艷麗,趙開勇,等.GPU高性能運算之 CUDAM. 中國水利水電出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論