APU13上,Kaveri APU及一系列異構計算開發工具的發布,展示了AMD構建異構計算生態系統的決心與成果。AMD與Oracle、HP等企業的大力合作,昭示著異構計算越來越受到國際知名企業的重視。與國際大環境相比,中國的異構計算開發環境如何?優勢與不足又在何處?近日我們有幸專訪了APU13的演講嘉賓、西安電子科技大學朱虎明副教授,請他分享本次大會的參會感受及國內異構計算/編程的現狀和未來發展。
西安電子科技大學朱虎明副教授
CSDN記者:您是第幾次參加AMD開發者峰會?本次大會給您留下了哪些深刻印象?
朱虎明:我是第一次參加AMD開發者峰會。今年稱之為APU13,令我印象比較深刻的有三件事:(1)本次大會展示的軟件多為基礎軟件,比如異構系統架構(Heterogeneous System Architecture,HSA)上的編譯器和開發平臺;(2)AMD開始與相關IT企業展開緊密合作,比如本次大會上,AMD跟Oracle合作開發了HSA上的Java相關工具,跟HP聯合發布了新的APU服務器(采用Opteron X2150 APU);(3)UIUC大學WenMei W. Hwu教授跟AMD等公司展開合作,并開始撰寫異構系統架構應用方面的專著《Heterogeneous System Architecture for Application Programming》,預計2014年下半年可以出版。從這幾件事可以看出世界知名IT公司必須有一流的技術能力和資源整合能力。
CSDN記者:透過本次大會,您覺得國外的開發者對異構計算/編程的關注程度如何?他們主要關注點有哪些?
朱虎明:美國的眾多科研機構和企業基于異構計算做了很多的工作,比如佐治亞理工大學的Wu Feng教授主要關注如何將CUDA程序通過編譯器自動轉換為OpenCL程序;高性能計算領域領先的編輯器和工具供應商The Portland Group (PGI) 研究如何將OpenACC應用于AMD APU平臺。這些工作主要目的都是為了提高異構計算的開發效率。當然,大家現在都很關注HSA,預計2014年很多基于HSA的應用將被開發出來。
CSDN記者:與國內相比,國外的異構計算開發環境有什么不同?異構計算/編程領域的發展情況如何?
朱虎明:憑借互聯網,我們可以及時獲得并更新國外的最新軟件,因此國內外在異構計算開發環境上基本保持一致。但由于國內異構計算的生態系統不如國外(特別是美國)完善,因此國內的應用水平較國外還有很大的差距。
CSDN記者:APU13上,AMD重磅推出首款支持HSA架構的Kaveri APU,您如何評價這款APU?它又將對異構計算領域的發展產生怎樣的影響?
朱虎明:根據報道,Kaveri APU的CPU性能比目前的Richland提升20%,GPU采用GCN架構核心,性能提高30%。當然這些都是估計值,具體的性能還要進一步在不同的應用上進行測試。
HSA最大的進步就是hUMA(heterogeneous Uniform Memory Access,異構統一內存訪問)。雖然以前已有很多基于GPU的并行應用,但由于GPU中顯存容量的限制及內存與顯存之間數據傳輸存在一定的瓶頸,這些都極大限制了GPU計算的應用范圍。因此Kaveri APU的出現,不但能使已有的基于GPU加速的應用提高計算效率,而且使得異構計算的應用范圍更廣,以前不太適合GPU上的應用,現在也可以嘗試使用APU來加速。
CSDN記者:您覺得國內開發人員進行異構編程遇到的最大困難有哪些?
朱虎明:國內現在會異構編程的開發人員越來越多,關注異構編程的相關人員也越來越多,但目前大多開發人員身居高校和科研機構中,并將異構計算應用于自己擅長的專業領域。根據近幾年我在西安電子科技大學的教學經驗,開發人員進行異構編程遇到的最大困難就是難以理解并行算法的相關概念,比如異構計算涉及到的一些硬件架構、規約操作原理和計算網格的參數設置等。因此,如何將異構計算推廣給不熟悉并行計算的應用者,還需要高校撰寫更適合初學者的異構并行計算教材,研究異構并行計算的教學理論,開發異構計算的實驗課程。
CSDN記者:AMD在APU13上推出的一系列針對異構編程的開發工具,可以在哪些方面減輕開發者的負擔?
朱虎明:有了這些新的開發工具,能夠極大的提高異構計算的編程效率。比如與Oracle合作推出的基于Java的開發平臺,可使很多Java開發者很容易地將其應用移植到異構計算設備上。與PGI合作推出的新編譯器,使開發人員能夠向Windows和Linux系統下的Fortran、C和C++程序添加可支持AMD APU和獨立GPU的 OpenACC指令。這也是一個很大進步,因為異構計算的程序編寫還是比較困難,有了這個編譯器,只要在你原來的串行代碼中增加一些編譯指引語句,就能將你的程序運行在異構計算設備上。這將大大提高開發效率。還有就是新發布的基礎數學庫――clMath,其中包含了BLAS、FFT等常用功能,這將使我們在開發異構計算應用時,更多的關注我們要解決的應用問題,而不是非常底層的并行基礎算法。
CSDN記者:AMD正加大與開源社區的協作,不斷開放相關源代碼并提供一些開發工具,對于AMD的做法,您怎么看?這對構建異構開發生態系統有怎樣的推進作用?
朱虎明:我想開源是一件非常好的事情,AMD作為一家硬件公司,善于制造CPU、GPU和APU等計算設備,但是要將這些計算設備應用于圖像處理、視頻編解碼、生物信息學和流體力學等專業領域時,AMD可能提供的支持就比較有限了,那AMD如何建立、發展和推廣異構計算呢?那就是要建立異構計算的生態系統,即從下往上依次為異構計算硬件、編譯器、開發與調試工具、異構計算基礎庫和應用領域。AMD目前主要的工作都集中在下面三層,當然它也在加強上面兩層的力量,比如據我了解的,AMD和中科院軟件所張云泉老師合作開源了OpenCV對應的OpenCL版本(OpenCV OCL module)。現在使用OpenCV處理復雜應用時,就可以方便地使用異構計算的加速能力。這大大提高了圖像處理和計算機視覺領域的開發者使用異構計算的能力。
CSDN記者:國外高校對異構編程的教育方式及普及情況是怎樣的?這將為國內高校進一步推進異構編程教育帶來哪些啟示?
朱虎明:國外,特別是美國,很多著名高校都開設了異構計算課程,甚至他們已經調整了高校的計算機教學大綱,增加了異構并行計算內容。比如University of Illinois開設的《Applied Parallel Programming》,就主要講解異構計算的硬件架構與并行算法。Stanford開設的《Parallel Computing》,Carnegie Mellon University 開設的《Parallel Computer Architecture and Programming》課程,Berkeley開設的《Applications of Parallel Computers》,MIT開設的《Parallel and Heterogeneous Computer Architecture》課程等,都或多或少講解了異構計算的前沿知識。
ACM和IEEE聯合制定的2013計算機科學教學大綱中,共有18個知識模塊,其中的并行與分布式計算模塊(PD - Parallel and Distributed Computing)就是新增加的知識模塊,特別強調了并行計算的重要性,當然,異構計算是并行計算的重要組成部分。
美國非常注重并行計算本科生教育,美國國家自然科學基金會和IEEE聯合成立了工作組(NSF/IEEE-TCPP Curriculum on Parallel and Distributed Computing ),召開了多次會議進行廣泛討論,并設計了并行與分布式計算技術的本科教學內容。其中第二次大規模討論是在2012年在上海舉行的IPDPS會議上,設立了一個叫EduPar-12的Workshop,我當時正好在會議現場,聆聽了來自世界各國的老師在并行計算方面的教學心得,特別是與我國著名計算機專家金海老師的交流,收獲頗豐。回來后,在AMD公司的支持下,就把我們自己在異構計算方面的教學材料也公布在網絡上,以促進中國異構計算科研與教學的發展。對異構計算感興趣的愛好者,可登錄 西安電子科技大學的教學網站查看。
更多關于異構計算的內容請見:異構開發技術社區