此刻,我正興奮不已。
距離 9/13 (五) Meeting 還有兩天,進度嚴重落後,但我卻無心準備 Meeting 的文件工作,乃至實驗室的藥品與財產清點都懶得處裡。
拜老師所賜,這幾天卯足全進加速研究準備工作,但得知套軟 Material Explorer 似乎無法滿足我們模擬工作需求;最壞打算是自己寫程式,因此重新搜尋加速 Matlab 或 C++ 的手段。
Matlab 的部分,由於最簡便最有效也最有希望的選項就是 CUDA,用顯示卡平行化運算資料,提升數十乃至數百倍的效能。
Matlab 雖有提供套件,但須購買,不貴,但堪用性尚待商榷;Matlab 也內建有少數 GPU 運算所需函式,可惜顯卡支援性太低,已經考慮另外採買;另一選項是 GPUmat,開源免費的 CUDA 函式庫,只是無法順利使用,推測仍為顯卡支援性的問題。
另外 C++ 的部分,CUDA 的撰寫十分麻煩,若要另外學的話只怕心有餘而時間不足;目前考慮的選項是 CPU 平行運算,效能的提升大約是8倍(8個執行序);Matlab 原本便有 CPU 平行運算的能力,但 C++ 無,得自行撰寫,不難,只是需要練習。
考慮到 C++ 本身執行速度較 Matlab 快,但是 CUDA 卻又比平行處理快,因此兩個選項可說是個有優缺。孰優孰劣,我迫切地想知道,無奈解決顯卡問題之前,Matlab 無從測試。
但一想到原本需計算數天的模擬工作,只需數小時,甚至幾十分鐘便可完成,我便興奮難耐。究竟實驗室這部電腦的極限在哪裡?抑或我的 CUDA 夢只是笑話一場?
我預計 Meeting 結束後準備一份運算測試,內容包括一個很大的隨機矩陣,先自己進行元素線性處理,再套入exp(-x)的運算,模仿分子模擬的運算過程,目的是測試 C++ 與 Matlab 加速前與後的效能差異,決定使用的工具。
我知道老師對於我們進度落後一事十分光火,我自己也覺得現階段的準備工作比預計的久多了,但是,正邁入高潮。