Udacity cs344Unit 4-Introduction to Parallel Programming筆記(超詳細,CUDA,並行,GPU)
阿新 • • 發佈:2019-01-04
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.鍵排序(比如按照年級排姓名。如果排的東西太大,就直接另存一下,記一個地址就行)