前言
本文討論如何使用 CUDA 對程式碼進行並行優化,並給出不同並行思路對均值濾波的實現。
並行優化的兩種思路
思路1: global 函式
在 global 函式中建立出多個塊多個執行緒對矩陣每個元素進行平行計算
請參考:http://www.cnblogs.com/scut-fm/p/3750119.html
思路2: CUDA 庫
將遍歷矩陣分別對每個元素的操作轉化成以矩陣整體為單位的操作
請參考:http://www.cnblogs.com/scut-fm/p/3756242.html
兩種思路在均值濾波中的應用
思路1的應用:建立多個執行緒,每個執行緒對其負責元素做均值卷積操作。
思路2的應用:
第一步:將矩陣向上平移一個單位得到矩陣副本1
第二步:將矩陣向下平移一個單位得到矩陣副本2
第三步:將矩陣向左平移一個單位得到矩陣副本3
第四步:將矩陣向右平移一個單位得到矩陣副本4
第五步:將矩陣副本1-4相加然後除以 4 得到結果矩陣