在機器學習、人工智慧發展迅速的今日,這些應用加速擴展,除原本的雲端運算才具有的高計算能力,為了滿足資料安全與即時應用的需求,終端運算的需求日漸增加,也因此出現了很多為終端裝置所設計的硬體加速器; 本實驗室所開發的CASLab-GPU 透過 SIMD 架構 (single instruction multiple data) 來實現硬體加速,加上軟體堆疊層便可支援OpenCL 運算與 Tensorflow 的運算,但是在很多大型的神經網路運算中,運算速度還是有優化的空間,本論文透過研究硬體微架構的調整與設計,加上與編譯器和運算軟體函式庫的配合,研究如何突破傳統架構上的運算瓶頸。 在機器學習相關的演算法中,以矩陣乘法的影響最為巨大,也發現有?多硬體加速器就是專為這類運算而設計,本論文在原有的 CASLab-GPU 上,運用其原有的浮點乘法累加單元 (multiply–accumulate unit),透過重新排列這些運算器,組成一個矩陣乘法器,作為矩陣乘法的特殊運算單元,不需要額外增加太多的硬體成本,也能夠在 CASLab-GPU 加入額外的硬體加速器。 除了硬體設計外,為了使原本的 OpenCL 與 Tensorflow 所撰寫的應用程式能夠使用到硬體加速器,本論文在CASLab-GPU 所需要的 CASLab-GPU Compiler 中加入特殊指令,在硬體收到特殊指令時,便可切換到不同於原本的運算模式,進而使用矩陣乘累加單元來加速運算。因為對於此類運算所使用的指令之改變,所以原本所使用的線性代數函式也需要重新設計優化,本論文也為此提出一套演算法,透過不同的需求來決定如何執行運算,透過以上從硬體微架構的設計改變以及編譯器與函式庫的修改與優化,來減少 CASLab-GPU 在機器學習演算法上這類運算的時間。
Tensor Process Unit (TPU) design and TPU APIs implementation for CASLab-GPU
銘, ?. (Author). 2021
學生論文: Doctoral Thesis