1. 程式人生 > >Udacity cs344Unit 4-Introduction to Parallel Programming筆記(超詳細,CUDA,並行,GPU)

Udacity cs344Unit 4-Introduction to Parallel Programming筆記(超詳細,CUDA,並行,GPU)

1.啥是緊密(compact):這裡的壓縮指的是過濾,filter,過濾出一個子集,也就是隻留我們想要的(比如一把撲克牌裡的方片)

(只計算我們關心的物件才更有意義,計算代價較小,需要更少空間)

2.

3.密集運算好一點?為啥

第一個稀疏運算要啟動52個執行緒,而其中39個執行緒都是空的(執行緒成本較高)

第二個雖然過濾出方片會有成本,但是在接下來的對映步驟中它只啟動13個執行緒

4.過濾的步驟

1)對每個元素進行判定

2)記錄進數組裡面

3)用不包含掃描的方法記錄一共需要多少個地址

4)把過濾出來的結果放進地址裡(放進輸出數組裡)

 

5.稀疏矩陣的表示方法

6.表示出來了怎麼算?

將向量(x,y,z)與column的值相對應

列出column的xyz表示形式

之後對應相乘相加即可

本質是過濾掉了所有帶0的項

所以越稀疏的矩陣越有效

7.排序(並行環境下)

奇偶排序法

8.歸併排序

序列

並行

當歸併到越頂層的時候,所佔用的執行緒越少,也就是大部分SM都處於空閒狀態,這是不利的,那麼我們要考慮:

處理的三個階段

 

9.雙調排序網

什麼是雙調序列,為啥需要雙調序列

只有一個轉折點的就是雙調序列

排序一個雙調序列特別容易,為啥呢?

可以有效的縮小規模

 

10.單雙歸併排序

11.radix sort基數排序

將每個word的序號用二進位制表示出來,從二進位制表示數的最末位,把是0的按順序排,再把是1的按順序排

接著是倒數第二位,以此類推

一共交換的次數與二進位制的位數相同

問題的解決難度與問題規模程正相關

 

12.快速排序

這就是遞迴,而到目前為止,我們所學的GPU是不支援遞迴的,那咋辦?

先看自己手裡有啥工具

13.鍵排序(比如按照年級排姓名。如果排的東西太大,就直接另存一下,記一個地址就行)