研 究 主 題

人工智慧與機器學習之軟體硬體共同設計及異質加速運算
(Software-Hardware Codesign and Heterogeneous & Accelerated Computing for Machine Learning) (2020 年進行中之多年期計畫)

機器學習(Machine Learning) 尤其是深度學習已經在許多應用如物件分類、物件辨識、人臉辨識等中得到極大的成功。常見深度學習網路的架構如下圖。輸入資料經過多個層(Layer) 的運算 (包括卷積層的Convolution 運算,Normalization Layer,Pooling Layer運算等運算) 之後會得到High-Level Feature,之後再經由Fully Connected Layer 會得到結果。


而為為了得到更好的成果及準確度,深度學習類神經網路所須的層數愈來愈多,如LeNet-5的2層Convolution Layer,VGG-16的16層Convolution Layer數目,到ResNet的152 層,


同時深度學習的所需的運算,尤其是Convolution 運算量也愈來愈龐大,從LeNet-5 的341,000次運算,到ResNet的3,900,000,000次運算,深度學習所須的運算呈指數方式增加,如何有快速有效完成運算,是重要的問題。而另一方面,在現今巨量資料時代,深度學度的資料也愈來愈龐大,深度學習的運算所須的記憶體空間也愈來愈龐大。因此如何有效使用記憶體空間,也是極待解決的問題。

下圖是不同版本的Alpha Go,從最早的AlphaGo Fan使用176顆GPU並消耗40,000瓦,到最新的AlphaGo Zero 只使用4顆Tensor Processor Unit (TPU),只使用數百多瓦,而且能夠運算速度更多。


因此,本研究計畫的主要目的便是設計高效能及省電的深度學習電腦架構及電路,以準確、快速、節能省電的方式完成任務。

此外隨著資訊科技的進步,各種運算設備如Intel CPU, ARM CPU, NVIDIA GPU 等種類愈來愈多,也愈來愈普及。然而,各種運算單元皆有自己的指令集、運算架構、記憶體架構、API等,要針對各種計算設備撰寫其軟體相當複雜,因此許多支援各種運算設備的異質運算系統被提出。其中,由Khronons Group提出的異質系統編寫架構:OpenCL(Open Computing Language)是重要之開放標準。只要依照OpenCL的框架編寫程式,就能在不同的硬體平台上順利執行,無須擔心硬體架構差異的問題。

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

本研究計畫也研究機器學習或深度學習的異質運算平台。我們開發符合OpenCL框架的系統技術發展平台,在該平台上發展各種不同的運算核心,其中包含ARM multi-core、GPU及加速電路,並開發相關驅動程式及其runtime系統,讓使用者可以依照不同機器學習及深度學習神經網路的特性及需求,可以在不同運算單元執行,達到快速且省電的目的

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


以下為過去科技部異質運算計畫的成果。

 

前瞻記憶體運算與記憶體架構設計(2020年進行中計畫) (Memory-Centric Computing and Emerging Memory Architecture):

在計算機組織課程中,大家都學習過Memory Hierarchy(如下圖左)。就是愈靠近CPU 的Memory 存取速度愈快,但單位容量價格則愈高。然而在製程進步下,漏電的Leakage的問題愈來愈嚴重。由於在晶片中,晶片上的記憶體,如L1 Cache, L2 Cache 或是Scratch Pad Memory 等佔了相當大的空間,它們功耗佔了整個系統的40%~60%,因此如何降低它們功耗是一重要課題。另一個重要的問題是記憶體的頻寬已不能提CPU 所需。

 

在這研究中,我們設計低功耗高效能之先進記憶體系統,同時由於非揮發性記憶體 Non-Voltage Memory (NVM) 如NAND Flash, NOR Flash 價格愈來愈便宜,可靠度也愈來愈高,而且先進非揮發性記憶體Emerging Non-Voltage Memory (NVM) 如 Spin-Transfer-Torque RAM (STT-RAM),PCRAM (Phase-Chase Memory) 愈來愈成熟。和傳統SRAM相比,非揮發性記憶體具有Leakage Power較低,單位面積上可容納的電晶體數目較多等優點,而且讀取速度遠快於DRAM, 然而非揮發性記憶體的缺點主要是寫入速度較慢,寫入的能耗較高,而且有些非揮發性記憶體可寫入的次數較少,在多次寫入後會損壞。因此為如何善用非揮發性記憶體,和傳統SRAM、DRAM 整合,以提高系統整體效能,降低系統功耗是我們的一重要課題。在本計畫中,我們研究如何整合非揮發性記憶體於Register File (RF)、Cache、Main Memory,以改善整體系統效能,如下圖右中所示。

 




下圖中列出我們在2013 提出之多核心系統下的High-Endurance Hybrid Cache 的設計,主要提出了一個Hybrid Local Bank的概念,並結合Cache Partitioning and Access-Aware Policies (下左圖無Hybrid Local Bank, 下右圖有Hybrid local bank),可將使用在Last Level Cache的NVM的壽命延長89倍。

下圖是不同版本的Alpha Go,從最早的AlphaGo Fan使用176顆GPU並消耗40,000瓦,到最新的AlphaGo Zero 只使用4顆Tensor Processor Unit (TPU),只使用數百多瓦,而且能夠運算速度更多。
 

節能可靠系統及晶片設計 (Design Automation for Reliable Energy-Efficient Architecture and IC Design) (2020年進行中計畫)

隨著製程技術的進步,電晶體(Transistor)不斷的縮小,同一晶片上可整合更多的電晶體為晶片帶來更多的功能,但是由於晶片愈來愈複雜,晶片設計極須要電腦補助以加快設計速度,減少設計錯誤,減低設計成本,此即為設計自動化之主要目的。如右圖所示,晶片設計及自動化主要所須的流程如下:

  • System Specification:決定晶片的功能、功耗及成本的。
  • Function/Architecture Design:設計晶片的功能及架構。主要是使用Hardware Description Language (如Verilog 或VHDL)進行Register-Transfer Level Design)
  • Logic Synthesis:即邏輯合成,主要是將RTL變成Gate-Level Design)
  • Circuit Design : 進行Transistor Level Design
  • Physical Synthesis:即實體合成,主要是將Gate-Level 或是Transistor Level Design 變成Layout。
  • Testing :測試,主要是用來驗証電路是否正常運作。
 另外電腦系統有不同的design abstraction level,由上往下的Abstraction Level 如下:
  • algorithm
  • architecture
  • gate
  • circuit level 
  • device 等等

各種abstraction level 的設計有其優缺點,如abstraction level愈往下愈包含了電路各種細節,但模擬的速度較慢;愈往上,愈粗略但模擬的速度也更快速。,由於同一晶片整合更多的電晶體,也為IC 設計帶來新的挑戰與問題。其中一個重要問題是功耗問題:由於晶片中的電晶體數量增加,使得晶片的功耗及溫度增加,不但提高晶片設計成本,對於手機及筆記型電腦等行動裝置來說,高功耗會縮短裝置的使用時間,因此,如何減少晶片的功耗是一個迫切須要解決的問題。另一個問題是可靠度問題 :在先進製程下,由於電路電壓愈來愈低,電晶體愈來愈小,使得電路可能受到來自內部或是外在雜訊(如溫度,IR drop, cross talk 等等因素)的影響,造成電路不穩定或故障。因此如何考量這些因素使得在合理成本下,增加電路的可靠度,是一個極須解決的問題。

 


例如,下圖中的CPU有16個核心,但是每個核心的功耗、漏電流及溫度皆不相同,因此每 一個核心的速度及可靠度都不相同。因此這個計畫的主要目標是考量每一個核心的情形,設計能改善系統功率及可靠度之架構及演算法,降低功耗及提高整個系統的可靠度。
 


 
 

我們須要藉由電腦之計算能力,提供快速而準確的方法以設計低功率可靠之系統。

另一個重要的研究議題是3D IC的設計及最佳化。由於3D IC 透過垂直的Through Silicon Via進行溝通,可減少wire delay,也由於3D IC 在單一晶片中整合不同元件,因此能做到異質整合。然而將許多的die封裝在同一個晶片中,會產生功率、溫度過高,可靠度過低的問題,因此如何減少功率、溫度,提高可靠度,也是本研究室的研究議題。
 

過去研究主題及成果

本實驗室研究成果傑出,過去主要的主題及挑戰如下:
 
  1. 功率電路設計(Low Power Design):主要是探討節省電路功耗的技術如Voltage Scaling、Body Biasing及研究低功耗的電路。
  2. 考量Bias Temperature Instability (BTI)等效應的可靠電路設計 (BTI-aware Reliable Circuit Design):Bias Temperature Instability效應會使得電晶體的運作速度變慢,是先進製程下造成電路不穩定的主要原因之一。本主題主要是研究考量BTI效應的電路,使電路在受到BTI效應後仍能正常運作。
  3. 架構設計(Architecture for Reliable Low Power System):除了電路層次(Circuit Level)之外,如何在邏輯閘層次(Logic Level),Register-Transfer level甚至架構層次(Architecture Level)設計低功率且可靠的系統也是一個極重要的問題。主要的原因是在較高的層次可以對整個系統做通盤的考量,替系統做最佳的選擇,以達到最佳化。
  4. Power Gating 及 Multi VDD and Multi Vth CMOS 設計:Power Gating 及Multi VDD and Multi Vth為目前晶片設計的重要技術,如何將此電路設計做藉由演算法或是電腦輔助設計軟體做最佳化,仍為極重要之問題。本研究即為開發演算法或是電腦輔助設計軟體,改善電路。
 
目前已有之研發成果主要有
 
  1. 交易層次系統晶片功率預估及模擬
  2. PCI Express 交易層次功率及效能模型。
  3. 以匯流排為基礎之單晶片系統可靠性模擬平台。
  4. 多核系統之ARM平台之可靠性分析。
  5. NBTI及HCI模擬平台。
  6. 系統層次NBTI及HCI可靠性分析方法。

研究與教學之配合:

本實驗室將VLSI研究主題,整合在VLSI/ASIC/SOC設計的課程中。在教學上強調引導學生思考與主動學習,參與課堂討論;強調開拓學生視野及外語能力,瞭解VLSI及IC產業之最新之技術發展。強調實作能力,以實作研究計畫的方法將所學應用,並瞭解業界動態,使學生學習成果能與業界實務緊密給合,符合業界所須,以期達到教學與研究並重。
本實驗室占地約有32坪,空間寬敞,每個人擁有獨立的工作空間。

本實驗室有充足的軟硬體設備供教學、研究、實作之用。

部 分 軟 硬 體 如 下

ARM Cortex A8
Linux 2.6以上
2Gb DDR SDRAM
2Gb NAND Flash
HDMI
7.0 inch Touch LCD Panel
Xilinx Spartan 6 FPGA XC6SLX150 模組
Ethernet
USB 2.0x1 + USB1.1 x1
多功能驗證軟體, 可顯示FPGA輸入輸出波形
支援C/C++/Gnu C與 FPGA軟硬體協同驗證
支援兩種FPGA燒錄模式
可從 PC 與 ARM USB 介面燒錄
MTZIGBEE發展板
Create MT-ZigBee MSP430 x2(Create MT-ZigBee Base模板/430模板)
RS232 Cable 9公-9母
DC Adapter 5V
DC Power Cable
ZigBee模組
GPS 模組
陀螺儀
Serial RF 模組
藍芽RT
GPS Antenna
VeriLite Altera C4
On-board Altera Cyclone IV EP4CE30F23C8 FPGA
Use USB 2.0 interface for data transfer
USB download FPGA configuration through USB
Up to 35 additional available I/Os
RS232
8 user-defined LEDs
2 user-defined push buttons
2 user-defined dip switches
Download FPGA configuration through USB
Powered through USB +5V
iRobot
iRobot Create Programmable Robot
Advanced Power System Battery
Fast Charger
Battery Case
Serial Cable
Create Robot 4th Wheel
Create Robot Screws (8-pack)
PBB Car
Sensors:
QTI循線器
XBee
XBee轉USB
雙軸加速度計
超音波感測計
馬達
紅外線感測計

其他:
PBB Car
麵包板
Parrot AR.Drone 2.0
ARM9 RISC 32位元處理器
DDR RAM 128 Mo
Wifi b/g
Linux OS
前置攝影機
直立式攝影機
Intel Galileo 開發板
Intel® Quark™ SoC X1000 (16K Cache, 400 MHz)

256 MB DDR3
512 kb embedded SRAM, 8 MB NOR Flash,
and 8 kb EEPROM standard on the board,
plus support for microSD card up to 32 GB.

I C 設 計 軟 體

本實驗室有完善的IC 設計軟體,包括Cell-based IC Design Tools, Full-custom IC Design Tools. 簡介如下:

Layout Tools - Layker Cell based Design Flow LVS&DRC tools - Calibre

聯 絡 我 們

電腦架構及晶片設計實驗室

國立成功大學 資訊工程學系

台南市大學路一號(成功校區) 資訊工程學系 65A02室
林英超博士
iclin@mail.ncku.edu.tw