CUDA硬體實現分析(二)------規行矩步------GPU的革命

來源:互聯網
上載者:User

序言:換位思考。當今的生活,節奏快,任務忙。慢慢的忽略了身邊的很多事,很多人。再加上接受“高等”教育的人越來越多,“有自己思想的”人越來越多,慢慢的都習慣從自己的思維角度來思考問題,尤其是讀工科的學生更是喜歡按照自己的角度來思考問題。慢慢的忽略了換位思考。有很多朋友說學工科的人都喜歡走極端。或許這個就像金庸小說裡面少林高僧給兩個偷學少林武功的人的建議。在忙碌的生活和緊張的工作中,找個時間,能讓自己停下來,想想做過的事情,讓自己忙碌的腳步,休息一會兒。

往往在team開發中,遇到問題的時候,就需要溝通和交流,但是溝通和交流的基礎就是換位思考。在一個平等的環境中的溝通和交流才能算真正意義上的思想的交流。其實學工科的時候有一個小竅門,那就是找規則。有既定的規則,那就是定理和定義。如果你能找到新規則,那就是新發現,可以寫paper。我們遇到新東西的時候,也最好在自己的既有思維中找到影子,找到相同的規則。這樣就可以很好的學習新東西。不過往往學工科的思維比較有規則性,在加上平時看的工科的書都是規則性太強,長此以往很容易形成偏執的性格。平時就需要多看一些能擴充思維的書籍,或許能消減一些戾氣吧。

本文:前面已經講解了很多概念上的東西,其實CUDA的最重要的兩個東西,就是線程和記憶體。只要掌握了這兩個東西,CUDA的東西也就很簡單了。它的編寫語言是C擴充的,所以,就當C語言用就行了,只是主要它的特殊的幾個標誌就ok了。前面講解了線程和記憶體的模型,大概,應該,似乎,可以在你的腦海裡面有一個概念了吧。只要有這個概念,我的文章的目的就達到了。前面的《CUDA硬體實現分析(一)------安營紮寨-----GPU的革命》已經講解了線程在CUDA的具體運行過程。下面我們一起來看看記憶體在CUDA的硬體實現中的一些規定。這也比較合理吧,大軍安營紮寨了,就應該頒布規則制度,只有瞭解CUDA的規則制度,才能真正的把各個線程都管理好。才能在這個平台上讓程式高效的運行。

這裡我們先明確幾個

一.Threads,Warps, Blocks 1.一個warp最多有32個threads。只有在匯流排程少於32的時候,才可能在一個warp裡面少於32個線程。 2.每一個block最多有16個warp。就是說一個一個block裡面最多有512個thread。 3.每一個Block在同一個SM上執行,也就是同一個block的warp都在同一個SM上運行。 4.G80有16個SM。 5.所以最少16個blocks才能佔全所有的SM。 6.如果資源(看看前面講解的線程都要從device哪裡分什麼資源)夠線程分,一個SM上面可以跑多餘一個block的線程。就是同時可以跑2個,3……個block的線程。

二.訪問速度 Register—HW 一個時間周期 Shared Memory------HW一個刻度 Local Memory --- DRAM,no cache,慢 Global Memory --- DRAM, no cache,慢 Constant Memory --- DRAM, cached, 1……10s……100s個周期,這個和cache的locality有關。 Texture Memory --- DRAM,cached, 1……10s……100s個周期,這個和cache的locality有關。 Instruction Memory(不可見)--- DRAM,cached

三.CUDA程式架構 如圖

四.語言擴充 單從學習語言來說,我到覺得應該精學一種,然後其他的就觸類旁通了。在學習新語言的時候,要想快速的入門,也有訣竅。1.變數的定義方式。2.函數的定義方式。3.邏輯控制方式(if,loop……)。只要把這3個東西弄明白了,管他啥新的語言,20分鐘就可以入門……然後入門都可以了,那要慢慢的更入的研究,那就得看你對這門語言的瞭解了。其實萬變不離其中。其實從電腦程式設計語言的角度出發,就是定義一些資料,然後對資料進行操作,so……學習語言就從這個角度入手,那就很簡單了。像java或者C#等一些語言比C語言多的新的特性不外乎就是方便你開發而已。

所以我們這裡再來說說CUDA的語言,不外乎就是擴充了C語言,為了方便在GPU顯卡上運行,規定一個特定環境。就定義一些特定的變數,說明他們是在GPU上的。這裡有說明記憶體,和函數,是在GPU上的……so,這樣一來,CUDA就擴充了C語言的變數分配定義和函數定義。

上面這張圖是來之Fall 2007 syllabus,上面已經說得很清楚各個變數定義的時候的位置和生存周期。其實就是在C語言的常規變數的時候,定義了變數的位置而已。

其中有一個約束限制,就是指標變數,在kernel裡面的指標變數,只能指向從global上面分配的記憶體。

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。