2018 Future Chips之旅

Introduction

今年future chips首頁

http://www.icfc.tsinghua.edu.cn/futurechips2018/index.html

主辦單位:清華大學

今年的主題是:

Reconfigurable computing in a new golden age

可重構計算的黃金時代

邀請了很多學術界和工業界大牛來討論前沿話題,重點就是可重構計算以及應用。

12.9

是個workshop,主題是內存計算(computing-in-memory)和基於機器學習的硬件加速技術。請了一些大牛在一間小教室裏以講座和座談的形式進行。大概形式如圖所示。

workshop

Computing-In-Memory

也就是內存計算,這是對現有馮諾依曼架構的一種顛覆。傳統的馮諾依曼架構運算器和存儲器是分開的,而內存計算打破了運算器和存儲器的界限,將一部分運算單元和存儲單元融合到了一起。爲什麼需要這種架構呢,因爲隨着計算的並行度在不斷上升,所需數據的傳輸帶寬限制了運算速度,史稱馮諾依曼瓶頸,並且隨着摩爾定律的發展,計算單元的功耗越來越多,所以花在存儲器讀寫上的功耗越來越高,使得存儲成爲計算的主要瓶頸。

而非馮架構的出現,就是爲了克服這些問題,只要將數據放進存儲器裏,再拿出來的時候就是已經計算好的數據,這樣既可以解決數據傳輸問題又可以解決功耗問題。

然後各個演講者針對內存計算提出了很多自己的成果和想法,包括新的NVM原件的使用效果和優化,還有Benchmark的開發等等內容

12.10

10,11這兩天是正式的會議,主題是可重構計算。

可重構計算

到底什麼是可重構計算呢,簡單來說就是硬件能夠根據不同的APP自己配置架構。可重構計算也是和神經網絡一樣,是一個提出了很久但是最近剛火的概念。爲什麼可重構計算在提出的時候沒有受到重視而現在開始興起,因爲它剛提出來的時候,正是摩爾定律最火熱的時候,人們發現工藝的更新遠比修改架構帶來的性能提升多,花很久研究可重構芯片還不如坐等摩爾定律增長帶來的性能提升,所以當時關於可重構計算概念只是大部分出現在學術界。

但是,摩爾定律要涼了呀,並且隨着現在五花八門的計算任務層出不窮,而CPU又不是對於所有的計算任務都最好的處理器,人們就開始慢慢關注起來優化架構能夠給計算帶來的性能提升了。這就是可重構計算開始火起來的原因。

下圖給以可重構計算的以直觀概念,在可重構處理器上,有很多小的PE,這些PE可能是具有不同功能的小核心,它們之間有一定的數據通路保證能夠進行數據交換。然後上層編譯器或者硬件單元,通過對於上層應用的分析,包括任務類型,資源使用,功耗等的分析,將不同的PE通過數據通路鏈接成一個大的處理器。這就是根據上層應用的特徵所單獨定製的處理器,就會比任何通用處理器處理這個特定的應用要快很多。

可重構處理器

現階段各種處理器的比較

現有的一些處理器的各種能力的分類:

不同處理器雷達圖

可以看到,每一種處理器都有各自的優缺點,而可重構計算的目標就是八邊形戰士:

可重構的目標

無論是性能,可擴展性,可重構性,自定義性,能效比,靈活性還是易用性等都很好。

高級綜合

有了底層架構的可重構性, 硬件條件有了,下一步就是開發者編程了。想要寫出適合底層硬件使用的代碼,可能越接近底層的代碼效率越高,但是越接近底層也就越複雜,學習和開發的週期就越長。所以高級綜合的作用就顯現了。這就是編譯器需要做的事情,針對底層可重構的硬件架構,將上層開發者寫的C語言等高級語言,變成更接近底層架構的中間語言。通過高級綜合生成的代碼,可能在效率上還是和一個成熟的開發者寫的底層代碼有一定差距,但是這能夠大大降低開發的難度,減少開發週期。而且,現在關於許多關於高級綜合的研究,就是爲了提高這種轉換生成的代碼的效率。

SDH

Sofrware Defined Hardware.軟件定義硬件,也就是說,根據軟件的需求來修改硬件的架構。期間有個Panel就是討論,軟件定義硬件到底是革命(revolution)還是改革(evolution),但是實際上大家都知道的道理是計算機就是折中(trade-off)的藝術,所以參與者的回答也是折中的,比如下圖

變革還是革命

明顯能感覺到,在這波人工智能浪潮到來之前,硬件是基本上不會刻意去迎合特定的上層應用的,其實從NVIDIA的GPU體系結構就能看出來,在GPU剛剛問世時候,稱之爲通用圖形計算單元(當然現在我們也這麼叫),但是隨着架構的演變,裏面越來越多的針對深度學習神經網絡的優化,tensor core、半精度浮點數、針對矩陣乘的各種深度優化等等。人們對於軟件的需求開始逐漸影響計算機體系結構,所以體系結構也開始追求不那麼general的東西來迎合上層應用。

12.11

這天上午的主要內容是相關的深度學習應用,還是很直觀且有趣的

器官劃分

就是使用CNN之類的算法,在CT或者X光片上把人體的各個器官劃分出來。

智能零售

speaker針對智能零售做了以下分類,循序漸進的智能化。

智能零售

機器人

中科院開發的國產機器人DADU

硬件開源

第二天的panel討論的話題是硬件開源。不過氣氛好像比第一天的有些緊張。panel邀請了工業界和學術界的參與者,工業界的代表對於開源並不看好,畢竟開源會對一些已經佔領市場的硬件廠商造成不利的影響;但是學術界當然希望能夠開源,而且從軟件開源上也能證明,開源也能夠促進行業發展,比如大數據時代的利器Spark和Hadoop就是開源產品,這兩者也不負衆望地極大助推了大數據時代的發展。

啓發

機器學習背景下的體系結構

有一個speaker是利用機器學習算法來指導電路設計。讓我想到,利用機器學習或者深度神經網絡來指導計算機體系結構的優化也肯定是可以的。比如對於探索空間很大的問題,可能會有很多很多種組合的輸入等待算法來找到解,通常的做法往往是通過剪枝保留一部分可能的輸入,再輸入到模型中獲得最優或者次優解。剪枝又有很多侷限性和考慮,但是如果採用深度學習的策略,通過一系列的訓練,可能不需要了解數據之間的關係,就能夠直接找到一個合適的模型,也不需要剪枝,直接將數據送入神經網絡中,就能夠得到比較好的結果。

或者,還有其他的什麼用處,感覺深度學習這東西就是用來偷懶的,以前需要你自己分析自己找特徵,現在扔進去,拿出來,特徵自動給你找好了,當然付出的代價也是巨大的,那就是無法證明你的這套東西的邏輯正確科技正確,因爲神經網絡是個黑盒,搞不懂裏面的原理,你的算法就稀裏糊塗,如果你是個“實用主義科學家”,那能用就行啦,不過科研還是要講究邏輯講究推理講究能夠用現有的知識明確推理出結論,深度學習神經網絡這種還沒有徹底搞清楚原理的東西,拿來做應用沒什麼問題,但是拿來構建科學的大廈,還是有待商榷的吧。

搞科研的步驟

有一個speaker講了他們組關於可重構架構的一套工具鏈,包括編譯器,prof工具等。他的工具鏈的每一個部分都是發表在某個會議。重點是這些文章並不是一步到位地發表在我們所謂的頂會上(當然也不太差,不是date就是dac),這個工具鏈通過一步步地積累,逐漸成熟之後,有了更加廣泛的用途也有了更好的成果,這種成果不僅僅是作爲論文發表在頂會這一項,而是能夠真正地運用到實際的科研當中。

自己現在在實驗室做research,雖然對自己分析問題還有解決問題的能力有很大地鍛鍊,但是對於整個實驗室科研情況的觀察來看,總感覺缺乏一種大方向的指引。每個人雖然有自己的idea,也在爲自己的idea做實驗看paper,但是每個人的idea好像都是獨立的,很少能夠從別人的research中借鑑到一些基礎的共通的東西。原因有很多吧,實驗室的人力,未知方向的探索以及對學生的培養方式等等。

對於自己的科研探索也是一種啓發,雖然現在的自己剛接觸科研,眼界還很窄,而且在實驗的過程中也總會發現自己過於關注細節之後,就對於整體的瞭解變得很片面。做科研,既要仰望星空也要腳踏實地,不僅要對每一個算法的每一行實現都能夠準確無誤,也要時長對於論文idea乃至以後科研的方向有個總體的認識。時而思考抽象而龐大的東西,才能跳脫出一行行代碼的限制,找到問題的解決方向。

Reference

[1]不以非馮爲目的AI存儲器都是耍流氓?

[2]大數據時代來臨,可重構計算復興

[3]Future computer Architectures: Computing in Memory

[4]2017 Future Chips之旅

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章