寫在前面
并行計算與GPU編程是我這學(xué)習(xí)編碼精力投入比較多的一門課兽掰,其他諸如編譯原理與技術(shù)、NOSQL數(shù)據(jù)庫技術(shù)等等都是一些理論知識掌握暂殖,最多加上一些簡單實踐悍及。
相反蚌成,GPU編程掌握理論知識只是基礎(chǔ),只有在實踐中應(yīng)用才能明白并行計算的核心以及其難點所在。
本學(xué)期的大作業(yè)花費了我將近一周的時間編碼完成,期間遇到了很多調(diào)試的問題螃成,且大部分時間會感覺這是一個非常玄學(xué)的BUG,就例如在kernel中寫一個for循環(huán)查坪,循環(huán)內(nèi)輸出i值寸宏,僅此而已就不能正常輸出,最后發(fā)現(xiàn)其實沒有問題偿曙,他只是并行輸出了太多次氮凝,先前的i值沒有打印到控制臺上而已;再如計算性狀的calculate函數(shù)中max值隨代數(shù)增加不斷增大遥昧,最后發(fā)現(xiàn)是因為沒有memset覆醇;再如printf語句沒有輸出值朵纷,其實也只是拿了%d去輸出雙精度浮點數(shù)了炭臭。
所以好些問題其實還是C的基礎(chǔ)不過關(guān)的問題,已經(jīng)大三了依舊如此袍辞,可見前三年自己對編碼水平并沒有很重視鞋仍。
驗收目標(biāo)
本學(xué)期的驗收任務(wù)是柔性車間調(diào)度作業(yè)問題的并行計算求解,盡可能提高并行計算的性能搅吁,使得其運行時間較之于CPU串行版本有更大的加速比威创。
編寫目的
想寫這個博客的目的其實也很簡單落午,自己對CUDA其實也算下了將近一周的精力,付出不多肚豺,只能說是把課程應(yīng)付了過去溃斋,但是期間遇到的BUG不想再遇到,看到了同班qjx大佬的代碼吸申,感覺就不是一個畫風(fēng)梗劫,別人的代碼格式規(guī)整,命名截碴、函數(shù)庫的使用都合乎規(guī)矩梳侨,自己的可閱讀性就差上幾個檔次。好了就說到這里吧日丹,記錄一下保持記憶走哺。
總的來說還是想盡可能提高自己,同時希望能幫到后來的學(xué)弟學(xué)妹吧哲虾。