研究‎ > ‎

HSA_old

機器學習之加速運算&異質運算及Accelerated Computing and Heterogeneous Computing for Machine Learning) (2017 年進行中計畫)
由於目前巨量資料、雲端運算、深度學習、物聯網等等應用資料量極大且計算複雜,極須大量計算能力以加速得到結果,因此極須在電腦系統上研究如何加速得到所須之結果。隨著資訊科技的進步,各種運算設備如x86 CPU, ARM CPU, MIPS CPU, NVIDIA GPU 等種類愈來愈多,也愈來愈普及。然而,各種運算設備皆有自己的指令集、運算架構、記憶體架構、API等,要針對各種計算設備撰寫其軟體相當複雜,因此許多支援各種運算設備的異質運算系統被提出。其中,由Khronons Group提出的異質系統編寫架構:OpenCL(Open Computing Language)是重要之開放標準。只要依照OpenCL的框架編寫程式,就能在不同的硬體平台上順利執行,無須擔心硬體架構差異的問題。

此外,OpenCL強大的地方在於提供平行計算的機制,也就是可基於任務或資料進行分割,將程式分成多個部分,分派給各個核心並同時平行計算,達到高效能的運算能力。這是目前Heterogeneous Computing的開發主流,也是我們目前主要的研究。

本研究主題主要時研究目前巨量資料、機器學習及其他應用上目前的效能及能耗瓶項,並建立整個運算平台,我們目標開發一套符合OpenCL框架的系統技術發展平台,在該平台上發展各種不同的運算核心,其中包含ARM multi-core、OpenRISC multi-core 以及GPGPU,並開發相關驅動程式及其runtime系統,以實現整體平台之運作。目前已經成功結合OpenRISC與OpenCL並實現在FPGA上,將來我們會利用OpenCL在此平台上做一些實際應用,發展如超解析度影像編解碼等等平行化的應用程式。

下圖為本實驗室OpenRISC + OpenCL系統平台之架構。最上層的OpenCL Application 層可執行各種應用程式,透過OpenCL Application Programming Interface (OpenCL API) 和下面的OpenCL Runtime溝通,OpenCL Runtime 部分負責的部分主要是將OpenCL Application層傳送下來程式碼(Source Code)編釋,同時有資源管理者(Resource Manager)及工作排程(Task Scheduler),透過Device Driver將工作傳送到下層各種不同的運算設備(CPU及CPU)。

目前Heterogeneous computing ,已是國內外重要的研究議題。國外相關研究相當多如Berkeley 的Aspire 計畫(如下圖),也是分別在Applications 到circuits &systems不同領域中實現Heterogeneous Computing (https://aspire.eecs.berkeley.edu/)

另外 UCLA Domain Specific and Accelerator-rich Computing,也是Heterogeneous computing 的重要相關計畫 http://www.cdsc.ucla.edu/research/




Heterogeneous computing






Comments