本書是作者在cuda疆域探險數年的經驗總結。最初開展的是容積醫學影像(volumetric medical imaging)、2d和3d成像(即透視和ct掃描)的配準以及計算機輔助設計(computer-aided design)和增材制造(additive manufacturing)的新方法研究。随着cuda的效用和重要性變得愈加明顯,分享對cuda的欣賞和經驗無疑是非常正确的。我們建立了一門專題性的cuda應用課程,課程面向專業分布很廣泛的學生,隻需他們具備基本的計算經驗即可。本書的寫作是在三次課程講授基礎上進行的,課程曆經完善,已發展到包括系統配置、cuda樣例、c語言程式設計基礎速成、cuda的并行化模型(同時包含了實作它們所需的超出c語言基礎知識之外的東西),另外對一些實用的cuda特性予以全面講解,包括原子功能、共享記憶體和互動式圖形學。所有這些内容都安排在為期10周一個學期的前半部分,其餘時間專供項目實踐和學生示範之用。每個學生在第5周進行項目選題的演講,在最後的第10周,對所做項目進行展示。在兩者之間的課上,安排為答疑時間和(教師或客座專家)分享建立和使用cuda應用的經驗。與本書的邏輯結構對應,課程的執行流程大緻如下:
系統配置和初始cuda樣例運作:附錄a、附錄b和第1章。
c語言基礎:附錄c。
cuda基礎,包括并行模型和關鍵語言擴充:第2章和第3章。
互動式圖形學:第4章。
共享記憶體:第5章的第一部分。
原子功能:第6章的第一部分。
項目:讓學生自由探索剩下的第5~9章,尋找項目實踐的靈感,鼓勵他們積極編寫代碼,并盡可能多地幫助他們去克服其中碰到的障礙。
雖然本書的組織跟課程有一定的關系,但涉及的内容大多是無向導的cuda世界,如此偌大的疆域,很難不迷路。我們搜集并查閱了很多材料,包括書籍、示例代碼、研究類論文、研讨會講座,以精選出學習cuda必需的那些知識,能夠讓外行工程師也知道利用如cuda這樣的強大工具能做什麼以及如何做到。我們真誠希望,本書可以同時支援個人學習和課堂配套教學;我們真誠地希望本書能幫助你避開攔路虎,讓你的cuda之旅更高效、更愉快、更有收獲。
