電腦效能應用與安全研究室 Performance, Applications and Security Lab


我們的研究範圍很廣,從嵌入式系統、手機應用、一直到雲端計算、商務應用、資訊安全都有做。
我們的合作研究夥伴很多,包括聯發科、IBM、中研院、資策會,還有和台大、清大、交大的教授合組研發團隊
,包括高階應用處理器架構研究、虛擬化技術、異質計算、系統軟體等重要技術的研究與創新,我們很關切台灣人才與產業的未來。

2015年9月21日 星期一

「系統研究專題」第二堂課概要 (2015.09.21)

在今天的課堂上,我們舉一些簡單的例子來讓大家體會系統和應用上很容易出現的效能問題,然後陸續介紹一些技術出場。

"Compiler"首先出場,他可以幫我們解決一些常見的問題,所以幾十年前動手寫組合語言的事情,今天大家不要輕易嘗試,因為compiler通常會做得比你好。但是,這也有例外的,而且例外才值錢。你如果有辦法做得比compiler好,那就厲害了。

"System-level performance analysis"是compiler目前還不大會擅長的部分,因為compiler光是看程式碼,很難知道程式何時會遇到cache misses, TLB misses, page faults,更不知道遇到I/O和網路事件時需要多久時間。系統性的效能問題,往往要綜觀全局、有足夠的資訊才能分析周到。

"Performance tools"來幫忙了。像Intel VTune或AMD CodeXL這類效能工具,可以利用處理機內建的performance monitoring unit (PMU)來提供很多效能相關事件的資訊,作業系統中更是到處都有資源使用的紀錄,懂得分析這類資料,就有機會發現效能瓶頸和改進方案。

100% Utilization和Saturation有什麼差別?其中之一是善用資源,把資源剛剛好全部用掉,另一個是在資源不足的情況下,要求系統做過多的工作,所以飽和了,系統的反應時間(response time)越來越長,造成quality of service (QoS)的問題。兩個差別很大,要如何看出來?

"Performance analysis methodology"是科學家也是藝術家,請大家從做中學,透過作業和專題,去體驗這個,順便複習一下computer architecture和operating systems課程中所學過的東西。

"Virtual platform"是我們帶領大家分析hardware-software interactions和設計先進系統的重要技術。頂尖的大公司才會用這樣的技術來模擬正在設計中的軟硬體,以便達成系統層級軟硬體共同優化,但是這樣的工具外面拿不到,我們必須自己做。

"HSAemu+performance models"是我們幫異質系統架構做出來的效能模擬virtual platform。這週的實驗,請大家用這個工具跑幾個簡單的OpenCL程式,初步體驗一下如何用virtual platform來分析效能。

"Automatic design space exploration"是學會用virtual platform做效能分析最大的功用之一,在許多design parameters所構成的百千萬的設計點集合中,找到最好的點,會很花時間,有什麼好方法可以加速呢?

"Parallel processing"在此時可以派上用場。如何用平行處理加速virtual platform、performance modeling、design space exploration,都是值得研究的議題。

不過,大家應該發現我們已經在課堂上提到很多東西,包括:
Linux kernel and device drivers
Virtual machines and virtualization
Parallel and distributed programming
Heterogeneous computing and GPGPU
Reconfigurable computing and FPGA
Machine learning and CNN
Cloud and IoT

這些技術,做系統研究的常常會遇到,請大家跟他們多認識、作好朋友,而我們在課堂上會陸續以top-down的方式介紹給大家。但是大家不要等,因為我們沒有時間教細節,大家要想辦法自己學(投影片和網路上有很多參考資料),或是去修相關的課。為了要成為厲害的系統研究人才,大家加油吧。

沒有留言:

張貼留言