GPU讀書筆記

2021-06-20 17:15:38 字數 1123 閱讀 6437

1.序列(serial)與並行(parallel)相對應,是指我們從事某項工作時乙個步驟接著乙個步驟的去實施。

2.gpu主要負責高度執行緒化的並行任務,cpu負責邏輯性強的事物處理和序列運算。

4.cuda(compute unified device architecture,統一計算裝置架構)平行計算函式稱為kernel函式,是負責並行運算的,內部分塊為block並行,塊block內又分為執行緒thread並行。

5.cuda程式的完整執行流程:cpu序列**->gpu並行kernel->序列**->並行kernel...

6.cuda中使用了dim3型別的內建變數threadid和blockid,這樣可以使用一維,二維,三維的索引來標誌執行緒塊,比如可以直接操作二維陣列。

7.避免在cuda中使用整數的除法和求餘以及分支和迴圈。

8.執行緒間可以通過sharememory通訊,並通過syncthreads()函式同步。

9.乙個gpu有多個核sm,乙個sm有8個執行單元sp。kernel實質是以block為單位執行的,故乙個block需要傳送到乙個sm處理,block中的執行緒傳送到8個sp上處理,股活動執行緒不超過8個。

10.實際執行時,block被分成更下的wrap執行緒束,wrap由多個執行緒組成,tesla架構的gpu有32個執行緒組成乙個wrap。wrap中的指令最好相同,即乙個wrap中最好不要分支。

11.進行一次乙個gpu有多個核sm運算,要在多種儲存器間進行幾次資料傳輸,需消耗相當多的時間,這導致gpu不適合對實時性要求高的應用。(???)

sp:最基本的處理單元,streaming processor最後具體的指令和任務都是在sp上處理的。gpu進行平行計算也很多個sp同時做處理。

sm:多個sp加上其他的一些資源組成乙個sm,streaming multiprocessor。其它資源也就是儲存資源,共享記憶體暫存器等。

wrap:gpu執行程式時的排程單位,目前cuda的wrap的大小為32,同在乙個wrap的執行緒,以不同的資料資源執行相同的指令。

thread->block->grid:在利用cuda進行程式設計時,乙個grid分為多個block,而乙個block分為多個thread。其中任務劃分是否影響到最後的執行效果。劃分的依據是任務特性和gpu本身的硬體特性。

mysql運維 讀書筆記 Mysql 讀書筆記

mysql儲存時間有兩種型別 datetime和timestamp。分別說一下兩者的區別。datetime,以8位元組儲存時間,理論上可以從0000年儲存到9999年。並且沒有時區的概念,它儲存的就是乙個時間點的概念。timestamp和datetime最主要的不同就是,它是以4個位元組儲存,由19...

struts in action讀書筆記

struts in action 學習筆記 一 struts的控制流 因為web 應用是動態的,所以很難表現 乙個真正固定的控制流 取決於環境,不同的方式下有很多不同的事情發生 特別是在web 應用中。但是事情仍然有乙個通用的秩序。如果你是個struts,應用框架,甚至web 應用的新手,這些流程剛...

中 斷(讀書筆記)

裝置的中斷會打斷核心中程序的正常排程和執行,系統對更高吞吐率的追求勢必要求中斷服務程式盡可能地短小精悍。但是這個良好的願望往往與現實並不吻合。在大多數的系統中,當中斷到來時,要完成的工作往往並不是短小的,它可能要求進行較大量的耗時處理。為了在中斷執行時間盡可能短和中斷處理需要完成大量工作之前找乙個平...