前天在與某廠商開會時遇到10年前做過產學合作的熟面孔,為了保護他的隱私,這裡稱他為X先生好了。X先生說他還清楚記得當年我們幫他的老東家「廣達的儲存伺服器研發部門」所開發的技術,這點讓我頗感驚訝。
事隔十年,保密協定也早過期了,論文也發表過了,所以應該可以來說說這個故事。
在2006~2007年間,我們與廣達做產學合作,那是我2005年回國後第一個產學計畫,我帶著實驗室草創後的第一批研究生,研究廣達剛剛研發出來的中階儲存伺服器。這個中階儲存伺服器,有兩個大腦 (雙控制器)來提供容錯功能,每個控制器上有一個處理機跑著廣達輾轉向國外某公司買來的複雜軟體,為了要快,雙控制器把從硬碟載入的資料放在一塊特殊的共享記憶體,然而整個系統,跟競爭對手比起來,還是不夠快。
X先生在前天對我說,他覺得我們很厲害,能夠搞定這個困擾他們工程師許久的非常複雜難懂的系統軟體,把這個儲存伺服器的極速提高了將近十倍,對於產品的競爭力有很大的貢獻。
其實這不是我們厲害,我們做效能分析和優化都是有方法論 (methodology)和工具 (tools)為基礎的。沒有這些,只能做些簡單的東西,不能做複雜的工程。國內很多研發單位只重視短期研發,根本不懂這些。(我講的十年前的狀況,廣達研究院現在應該好些了吧?) 我聽過有人說: 「什麼方法論、工具的? 反正就叫工程師拼命加班做,限時完成產品不就好了? 」所以我跟這些人談前瞻系統研發,等於秀才遇到兵,說也說不清,只有等他們遇到解不了的複雜問題,才會知道專業的價值 -- 現在搞雲端、大數據、物聯網、異質計算,這類複雜問題比比皆是,所以很多人毫無頭緒自己該做甚麼,可能也沒能力做甚麼。
首先,為了分析這台儲存伺服器的效能,我們還特別打造了效能分析工具。黃書政同學,做出了一個利用GCC編譯器在產生機器碼時在程式的進入點和離開點處插入追蹤器以產生追蹤資料,用以觀測程式執行流程的方法。這個工具幫助我們精確地分析儲存伺服器上軟體的流程,黃同學也以此作為碩士論文:
【一個針對嵌入式軟體的追蹤和效能分析技術 (Developing new tracing and performance analysis techniques for embedded applications) / 黃書政(Shu-Jheng Huang), 2007】
當年追蹤分析系統最強的工具之一,是SUN的 Solaris kernel team所開發的DTrace,這個技術後來也被IBM拿去做Linux上的SystemTap。在黃書政同學開發新工具之時,林以迪同學研究如何利用DTrace來自動化分析應用軟體的效能,後來他的分析方法幫助到這個廣達的計畫,也以此為題寫了碩士論文:
【利用DTrace在Solaris系統上以自動化方式建立應用軟體的效能模型與分析 (Automating server application performance modeling process on Solaris system via D-trace and trace-driven analysis) / 林以迪(Yi-Di Li), 2007】
要知道,一般的效能分析多半是針對CPU-intensive的應用,探討CPU的使用,然而儲存伺服器的重點不只在CPU上,還包括磁碟和網路這類的I/O動作,這些是一般工具和普通工程師較難對付的部分,所以陳人豪製作了一個量測和模擬的框架,讓我們能評估I/O部分的問題,這也是他的碩士論文題目:
【系統層級的效能量測與評估框架 (System-level performance profiling and simulation framework for I/O-intensive applications) / 陳人豪(Jen-Hao Chen), 2007】
不要忘了, 一個複雜的多工系統不只是一次只做一個工作,還有多個核心來做多項工作,所以張筱薇同學 (實驗室唯一的女生!)選擇做這個最硬的研究工作,利用SystemC做出一個能夠快速分析多執行緒應用程式效能的模擬環境,令我感到非常難能可貴:
【設計與實作一個快速分析多執行緒應用程式效能之多核心系統模擬環境 (A rapid simulation environment for application performance estimation on parameterized multi-core/multi-threading architecture models) / 張筱薇(Hsiao-Wei Chang), 2007】
搞清楚效能的問題所在,接下來就是設法優化(optimize)其效能了。怎麼做呢? 我們實驗室研究效能優化,著重的是那些編譯器做不到的事情,而不是那些編譯器可做的事情,這是跟那些做編譯器研究的實驗室最大的不同。我們認為,天底下有太多編譯器做不到的最佳化工作,厲害的人可以手動搞定。
舉例來說,編譯器往往不知道該怎麼優化程式,所以提供一大堆選項讓開發者來選。當時的GCC有42個可能影響效能的選項,請問要怎麼選? 至少有2的42次方種組合,不可能暴力搜尋。陳奇孟同學在十年前就採用的現在最紅的「機器學習」來幫助編譯器自動找到最佳的選項集合:
【以機器學習快速的搜尋最佳編譯器選項集合 (Finding the best compiler optimization option set rapidly via machine learning) / 陳奇孟(Chi-Meng Chen), 2007】
然而,一般的搜尋方式,只適用於普通的應用程式,為了最佳化這個儲存伺服器的核心,每次編譯過後必須重開機測試效能,所以非常耗費時間,所以林煌森同學針對這個議題設計了一套自動化搜尋機制:
【自動搜尋編譯器選項最佳設定 : 應用於儲存伺服器核心模組效能之提升 (Automatic selection of compiler options for performance optimization on the kernel modules of a storage server) / 林煌森(Huang-Sen Lin), 2007】
適當選用編譯器的選項,的確提供了效能,但真正讓這套儲存伺服器效能起飛的是對於軟體架構的改進。然而,如果沒有蒐集足夠的效能資料和對於系統完整的分析,根本不可能碰觸到軟體架構的改進,所以最佳化的成果還是得歸功於整個團隊的合作。
陳嘉翔同學在這套儲存伺服器中,加入了高效率的快取索引表,大幅改善了原本極為沒效率的搜尋機制。誰知道這套廣達花錢買來的軟體,會寫得這麼沒效率呢? 陳同學的碩士論文:
【磁碟陣列系統之最佳化研究 : 快取索引表之設計與實作 ( Performance optimization on a RAID system ; design and implementation of a fast indexing table for disk caching) / 陳嘉翔(Jia-Siang Chen), 2007】
吳建成同學算是集大成者,他不僅加入了預測使用者未來的需求做預先提取(prefetch)的機制,同時負責整合和評估最終的結果,寫出他的碩士論文:
【評估快取與預先提取在儲存伺服器上的效能 (Performance evaluation of caching and prefetch strategies on a storage server) / 吳建成(Chien-Cheng Wu), 2007】
總合來說,這些研究,讓儲存伺服器的極速提高了將近十倍,而廣達只贊助了我們一百多萬台幣的研究經費 ,這不能怪廣達小氣,這對當時沒有國科會經費、又沒有名氣的我來說,這筆錢讓我能夠購買設備和供養學生;不過這點經費大概只能僱一位菜鳥工程師做一年研發的成本,如果比起當年廣達贊助MIT的研究經費以及給台大的捐款,所以我想廣達的經費應該是大大值回票價了。
但或許廣達不這麼看,這才是當時身為菜鳥助理教授的我,最為感到不值的部分。那個儲存伺服器研發部門,被長官要求要自負盈虧,為了要在短期內謀求利潤,只好開始刪減「不必要」的研發開支,所以在一年的研究期間過後,就沒有下文了。
所以我說國內業界短視近利、不懂軟體研發,這是我親身經歷的第一個實例。X先生應該是站在我們這邊,但他當時也是小咖,即便覺得應該持續贊助我們,也改變不了大長官的旨意。X先生目前在某大公司擔任處長,前天開會中發言強調軟體開發的重要性,支持提早做軟體的開發,我聽了非常窩心,希望業界有更多懂得系統和軟體的人才。
另外,在學術方面,我指導這批第一屆的研究生做實務研究,在2007年產出了八份碩士論文,忙得不亦樂乎,隨後將部分論文改寫投稿,在2008才發表兩篇國際會議論文(註一) (註二),2009年一篇(註二),投資報酬率極低,發實務研究的論文難度高,是其他領域的人所不能夠理解的。
首先,關於這類系統研究,教導學生基本知識和技能、指導學生做研究、解決實作問題、驗證研究結果,原本就可能要比其他領域花更多心力;其次,要寫一篇優質的實務研究論文,必須能言善道、精準犀利,但大多數學生推導數學公式可以,寫程式可以,卻不大會用英文談論設計方法、分析利害得失、探討關鍵議題、展現系統優勢,如果要在國際會議或期刊上發表論文,我們必須在論文寫作上花很多時間。另外,寫論文時還要顧及與廠商的保密協議,必須遮遮掩掩的,當然更不利於發表。
所以我說國內學術界在數SCI論文數量的同時,把很多教授和學生逼上找尋容易發表論文的途徑,像這類我認為很有價值的產學合作,在那個SCI掛帥的年代,因為事倍功半,所以被年輕教授們視為畏途。
業界短視近利,加上學術界SCI掛帥,我對於這個系統優化的產學研究案的積極投入,算是非常吃力不討好,唯二能夠安慰自己的,第一是教出一群能實作的研究生,第二是這個研究案讓我更清楚我們能做出業界需要的前瞻研究,只是時機未到。
至於個人的學術成就,懂的人就懂,對於那些只會算論文數量的人,我也不冀望他們的理解。但上述的情況在這些年嚴重阻礙台灣的產學發展,造成前瞻研發不務實、論文氾濫的現象,甚至影響教育品質和人民生計。然而,產業仍不乏有能人,學界還是有志士,只要堅持走對的方向,我們還是有可能走出困境的。
(註一) Shih-Hao Hung, Chia-Heng Tu, and Chien-Cheng Wu, Optimizing the Embedded Caching and Prefetching Software on a Network-Attached Storage System, in Proc. 2008 IEEE/IFIP International Conference on Embedded and Ubiquitous Computing (EUC) , pp.152-161, Shanghai, China, December 17-20, 2008.
(註二) Shih-Hao Hung, Shu-Jheng Huang, and Chia-Heng Tu, New Tracing and Performance Analysis Techniques for Embedded Applications, in Proc. the 14th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA) , pp.143-152, Kaohsiung, Taiwan, August 25-27, 2008.
(註三) Shih-Hao Hung, Chia-Heng Tu, Huang-Sen Lin and Chi-Meng Chen, An Automatic Compiler Optimizations Selection Framework for Embedded Applications, in Proc. the 6th International Conference on Embedded Software and Systems (ICESS) , pp.381-387, HangZhou, Zhejiang, China, May 2009.
從2010.03寫到現在,我只是想寫 -- 把我對社會、人文、科技、產業、教育的觀察和感想寫出來。每次寫出當下所思所想,似乎腦袋可以清淨一點、心靈可以輕爽些。文章大多先在臉書上與臉友分享,隨後再轉到這裡。臉書網址為:https://www.facebook.com/shihhaohung
2016年2月4日 星期四
2016年1月10日 星期日
人工智慧太厲害了,我們該怎麼辦? (Part II)
昨天概說了人工智慧過去和未來性 (註1),在技術面上著墨不多,所以今天來談談技術面。
首先是關於「摩爾定律」,我在半年前寫了一篇「後摩爾定律的世界和台灣的產業發展」(註2),有興趣的人可以參考一下。我當時說:
「說白一點,摩爾定律是錢砸出來的。摩爾定律的黃金時代,開始於個人電腦急速成長的時代,但個人電腦的效能在十年前就已經能夠滿足大多數個人,所以「世界」對於摩爾定律的期待逐漸降低,雖然智慧手機和平板的異軍突起,但主要是希望摩爾定律能夠提供更高的性能耗能比(power-performance),然而這幾年手機平板已趨於飽和,也沒看到真正個人所需要的高性能耗能比的應用(killer apps),再加上像Qualcomm、Samsung這樣的公司上在推出新的行動晶片上屢次因為晶片過熱而踢到鐵板,所以在既然沒有消費者的需求,晶片製造商也裹足不前的情況下,自然就會降低對於摩爾定律的挹注。」
「我想,在缺乏資金挹注的情況下,摩爾定律在技術上能延續的機率不高,即便不少研究者熱中於此。除非有真正大眾需要的應用,或是再度出現軍備競賽,否則很難改變摩爾定律的終結。」
但任何事都可能有例外,不能太鐵嘴,還好我最後有加上一個以「除非」開頭的句子。人工智慧是否能成為大眾真正需要的應用,或是用於軍事用途? 我想其可能性還不小,所以我在這幾個月跟一些業界朋友說,不要再搞那些傳統的消費電子產品了,要想想如何將「智慧」加進產品之中。
怎麼把「智慧」加進小型的裝置之中? 基本上,有下列方法:
(1)由小型裝置自己做
(2)藉由網路把工作送到集中式的伺服器去做
(3)藉由網路把計算工作送到周遭多台機器分工合作
(4)上述三種的組合
先說「自己做」行不行? 現在很多人手上的手機,能做多少事情? 其實手機可以做很多事情,只是會遇到過熱和電量不足的問題,但是這兩個問題影響較大的是較長時間使用的應用,如果我們要的是「即時性的智慧」,那麼問題應該比較像是「如果手機在五秒內全速執行,能夠解決那些問題」?
舉例來說,即將出現在手機市場上的Qualcomm旗艦處理機Snapdragon 820有多厲害呢? 據說(註3) 這顆晶片的 4核CPU比前一代S810的8核快35%,省30%的電,支援600Mbps的無線網路,其中的GPU也快了40%、省40%的電,還支援OpenCL 2.0。不只如此,他還有一顆名為Spectra的影像訊號處理機(image signal processor),可以加速影像處理和支援電腦視覺(computer vision)。
要自己做,可以,要想辦法把各種運算能力整合到晶片上。要讓手機晶片有智慧,不能只靠跑在CPU上的純軟體,一定不夠力的。有些應用可藉由GPGPU來加速以資料為主的運算(data-parallel computing),例如做機器學習的開源軟體,Mahout和Caffe,都可以用OpenCL程式碼跑在GPU上。另外,以影像和聲音為主的應用,則最好設法在源頭解決問題,也就是說在感測器紀錄影像或聲音之後馬上送到訊號處理機,使用專門特殊化的(specialized)計算架構來提升效率,其實電腦視覺也可算是初步的人工智慧。
從上述的例子,可以看到「特殊化」處理機的趨勢越來越明顯,因為用CPU跑純軟體太沒有效率。時下很多人討厭寫C程式,喜歡用像是Java, Javascript, Python之類的高階語言來開發應用,但是對於開發與效能息息相關的系統軟體的人來說,光是懂得寫C程式可能還不夠,要懂得multithread、OpenCL、CUDA才會善用多核心的CPU/GPU,要懂得訊號處理機的架構和專用語言才能發揮其能力,甚至要會使用「硬體描述語言」才能用FPGA來加速計算。
我預測未來這十年,是大家各憑本事、各顯神通,想盡辦法來打造智慧系統的黃金年代。我們將會看到百家爭鳴,在計算架構和軟體設計上不斷推陳出新,快速發展。當然,演算法也極為重要 -- 再厲害的運算能力,也挽救不了愚笨的演算法。而且,針對大系統所開發的演算法和軟體,不見得適用於小機器,例如把Google釋出的Tensorflow裝在小機器上,可能會發現它的效率不彰,所以各公司可尋找屬於自己的利基市場(niche)。
當然,如果不限定要帶在身上,智慧型裝置也可能出現在車上、電線桿上的監視錄影機。因為體積和電力供應較大,我們有機會將百倍於手機的運算能力放進這些裝置。所以某些人工智慧的應用,可能會先出現在這類裝置上,例如前幾天的CES 2016,我們看到NVIDIA和Qualcomm都推出車用的處理機(註4)(註5),來搶攻這類市場。
這是新興市場,我希望台灣的業界人士看到以上幾段會頗為振奮,尤其是那些在硬體公司寫系統軟體的朋友們,這是值得把握的機會。如果您能夠針對某個智慧型應用設計出又快又省電的系統,那就有機會逐鹿天下。不過呢,要把握機會,必須先搞清楚這些研發工作將會需要「緊密的垂直整合」,最好有一個人才濟濟的團隊,針對應用的需求規劃系統軟硬體,要有「軟體為主,硬體為輔」的思維,最好要找到軟硬兼備的系統架構師(system architect)來領導研發工作,如我在這篇專訪上談到的(註6) 。
當然,我們也可如第二種方法,「藉由網路把工作送到集中式的伺服器去做」,來提升小型設備的智慧。但首先,網路傳輸需要時間,不利於即時性的應用;其次是隱私性和安全性的問題,我們未必希望讓大公司那麼清楚的知道我們的一舉一動,所以也可能不希望把全部的工作送到集中式的伺服器去做;再來,極為耗費運算資源的工作,除非Google能夠由此獲的廣告利益,否則它未必願意提供免費的伺服器資源來幫大眾做這個,所以並非所有應用都會有免費服務。
同時,在資料中心做人工智慧的運算,更需要高效率的加速技術。因此現今很多大公司都在積極找高手來加速需要大量運算的服務,例如微軟有個專門以FPGA加速資料中心服務的研究團隊Catapult,陸續發表加速搜尋引擎和機器學習的技術(註7)。
第三種方法與第二種方法的差別,在於利用較近的機器做計算來縮短時間,選擇能夠信任的機器來保護隱私,以及以互助會的模式來分享互惠資源。我們做過這類模式的相關研究,也實際建構出系統,例如這篇將Android程式中大量數據處理的工作轉移其他機器的作法(註8)。雖然目前還缺乏需要這種模式的高運算量行動應用,不過我相信在未來身邊需要人工智慧的時候,應該會有這類的需求和做法。
實際的作法,也可能是以上三種方法的排列組合。至於如何排列組合,就考驗系統架構師的能力。台灣現在很缺系統架構師的人才,缺到業界連如何善用系統架構師、去哪裡找這些人、如何培養這種人都不知道。以前做代工不需要這種人才就算了,如果現在還不知道,那就難做了。現在業界有不少地方都說要做人工智慧,但我奉勸想加入這類團隊的朋友,先看看帶頭大哥懂不懂,有沒有兩把刷子再說。
(註1) 人工智慧太厲害了,我們該怎麼辦?
臉書版: https://www.facebook.com/shihhaohung/posts/1072464976129323
部落格: http://hungsh-ntucsie.blogspot.tw/2016/01/blog-post.html
(註2) 後摩爾定律的世界和台灣的產業發展
臉書版: https://www.facebook.com/shihhaohung/posts/968793609829794
部落格: http://hungsh-ntucsie.blogspot.tw/2015/07/blog-post_13.html
轉載於Inside: http://www.inside.com.tw/2015/07/14/post-moores-law-and-the-industry-development-in-taiwan
(註3) Qualcomm's Snapdragon 820 INSANE Specs & Features DETAILED
http://www.knowyourmobile.com/samsung/qualcomm-snapdragon-820/23126/qualcomm-snapdragon-820-release-date-specs-features-android-n-launch
(註4) NVIDIA推出車用人工智慧電腦NVIDIA DRIVE PX 2,號稱性能比 Macbook Pro強150倍http://www.techbang.com/posts/40654-nvidia-at-ces-not-flagship-graphics-card-but-strong-for-a-taxi-containing-artificial-intelligence-supercomputers-nvidia-drive-px-2
(註5)
【CES 2016】高通發表 Snapdragon 820A 車用處理器,具機器智能神經學習系統
http://technews.tw/2016/01/08/qualcomm-snapdragon-820a-automotive-processor/
(註6) 深化產學合作!向沒有能力領導創新的大企業說掰
http://www.bnext.com.tw/article/view/id/38432
(註7) Project Catapult
http://research.microsoft.com/en-us/projects/catapult/
(註8) Shih-Hao Hung, Tien-Tzong Tzeng, Gyun-De Wu, Jeng-Peng Shieh. A Code Offloading Scheme for Big-Data Processing in Android Applications, Software—Practice and Experience, first published online May 2014.
http://onlinelibrary.wiley.com/doi/10.1002/spe.2265/abstract
首先是關於「摩爾定律」,我在半年前寫了一篇「後摩爾定律的世界和台灣的產業發展」(註2),有興趣的人可以參考一下。我當時說:
「說白一點,摩爾定律是錢砸出來的。摩爾定律的黃金時代,開始於個人電腦急速成長的時代,但個人電腦的效能在十年前就已經能夠滿足大多數個人,所以「世界」對於摩爾定律的期待逐漸降低,雖然智慧手機和平板的異軍突起,但主要是希望摩爾定律能夠提供更高的性能耗能比(power-performance),然而這幾年手機平板已趨於飽和,也沒看到真正個人所需要的高性能耗能比的應用(killer apps),再加上像Qualcomm、Samsung這樣的公司上在推出新的行動晶片上屢次因為晶片過熱而踢到鐵板,所以在既然沒有消費者的需求,晶片製造商也裹足不前的情況下,自然就會降低對於摩爾定律的挹注。」
「我想,在缺乏資金挹注的情況下,摩爾定律在技術上能延續的機率不高,即便不少研究者熱中於此。除非有真正大眾需要的應用,或是再度出現軍備競賽,否則很難改變摩爾定律的終結。」
但任何事都可能有例外,不能太鐵嘴,還好我最後有加上一個以「除非」開頭的句子。人工智慧是否能成為大眾真正需要的應用,或是用於軍事用途? 我想其可能性還不小,所以我在這幾個月跟一些業界朋友說,不要再搞那些傳統的消費電子產品了,要想想如何將「智慧」加進產品之中。
怎麼把「智慧」加進小型的裝置之中? 基本上,有下列方法:
(1)由小型裝置自己做
(2)藉由網路把工作送到集中式的伺服器去做
(3)藉由網路把計算工作送到周遭多台機器分工合作
(4)上述三種的組合
先說「自己做」行不行? 現在很多人手上的手機,能做多少事情? 其實手機可以做很多事情,只是會遇到過熱和電量不足的問題,但是這兩個問題影響較大的是較長時間使用的應用,如果我們要的是「即時性的智慧」,那麼問題應該比較像是「如果手機在五秒內全速執行,能夠解決那些問題」?
舉例來說,即將出現在手機市場上的Qualcomm旗艦處理機Snapdragon 820有多厲害呢? 據說(註3) 這顆晶片的 4核CPU比前一代S810的8核快35%,省30%的電,支援600Mbps的無線網路,其中的GPU也快了40%、省40%的電,還支援OpenCL 2.0。不只如此,他還有一顆名為Spectra的影像訊號處理機(image signal processor),可以加速影像處理和支援電腦視覺(computer vision)。
要自己做,可以,要想辦法把各種運算能力整合到晶片上。要讓手機晶片有智慧,不能只靠跑在CPU上的純軟體,一定不夠力的。有些應用可藉由GPGPU來加速以資料為主的運算(data-parallel computing),例如做機器學習的開源軟體,Mahout和Caffe,都可以用OpenCL程式碼跑在GPU上。另外,以影像和聲音為主的應用,則最好設法在源頭解決問題,也就是說在感測器紀錄影像或聲音之後馬上送到訊號處理機,使用專門特殊化的(specialized)計算架構來提升效率,其實電腦視覺也可算是初步的人工智慧。
從上述的例子,可以看到「特殊化」處理機的趨勢越來越明顯,因為用CPU跑純軟體太沒有效率。時下很多人討厭寫C程式,喜歡用像是Java, Javascript, Python之類的高階語言來開發應用,但是對於開發與效能息息相關的系統軟體的人來說,光是懂得寫C程式可能還不夠,要懂得multithread、OpenCL、CUDA才會善用多核心的CPU/GPU,要懂得訊號處理機的架構和專用語言才能發揮其能力,甚至要會使用「硬體描述語言」才能用FPGA來加速計算。
我預測未來這十年,是大家各憑本事、各顯神通,想盡辦法來打造智慧系統的黃金年代。我們將會看到百家爭鳴,在計算架構和軟體設計上不斷推陳出新,快速發展。當然,演算法也極為重要 -- 再厲害的運算能力,也挽救不了愚笨的演算法。而且,針對大系統所開發的演算法和軟體,不見得適用於小機器,例如把Google釋出的Tensorflow裝在小機器上,可能會發現它的效率不彰,所以各公司可尋找屬於自己的利基市場(niche)。
當然,如果不限定要帶在身上,智慧型裝置也可能出現在車上、電線桿上的監視錄影機。因為體積和電力供應較大,我們有機會將百倍於手機的運算能力放進這些裝置。所以某些人工智慧的應用,可能會先出現在這類裝置上,例如前幾天的CES 2016,我們看到NVIDIA和Qualcomm都推出車用的處理機(註4)(註5),來搶攻這類市場。
這是新興市場,我希望台灣的業界人士看到以上幾段會頗為振奮,尤其是那些在硬體公司寫系統軟體的朋友們,這是值得把握的機會。如果您能夠針對某個智慧型應用設計出又快又省電的系統,那就有機會逐鹿天下。不過呢,要把握機會,必須先搞清楚這些研發工作將會需要「緊密的垂直整合」,最好有一個人才濟濟的團隊,針對應用的需求規劃系統軟硬體,要有「軟體為主,硬體為輔」的思維,最好要找到軟硬兼備的系統架構師(system architect)來領導研發工作,如我在這篇專訪上談到的(註6) 。
當然,我們也可如第二種方法,「藉由網路把工作送到集中式的伺服器去做」,來提升小型設備的智慧。但首先,網路傳輸需要時間,不利於即時性的應用;其次是隱私性和安全性的問題,我們未必希望讓大公司那麼清楚的知道我們的一舉一動,所以也可能不希望把全部的工作送到集中式的伺服器去做;再來,極為耗費運算資源的工作,除非Google能夠由此獲的廣告利益,否則它未必願意提供免費的伺服器資源來幫大眾做這個,所以並非所有應用都會有免費服務。
同時,在資料中心做人工智慧的運算,更需要高效率的加速技術。因此現今很多大公司都在積極找高手來加速需要大量運算的服務,例如微軟有個專門以FPGA加速資料中心服務的研究團隊Catapult,陸續發表加速搜尋引擎和機器學習的技術(註7)。
第三種方法與第二種方法的差別,在於利用較近的機器做計算來縮短時間,選擇能夠信任的機器來保護隱私,以及以互助會的模式來分享互惠資源。我們做過這類模式的相關研究,也實際建構出系統,例如這篇將Android程式中大量數據處理的工作轉移其他機器的作法(註8)。雖然目前還缺乏需要這種模式的高運算量行動應用,不過我相信在未來身邊需要人工智慧的時候,應該會有這類的需求和做法。
實際的作法,也可能是以上三種方法的排列組合。至於如何排列組合,就考驗系統架構師的能力。台灣現在很缺系統架構師的人才,缺到業界連如何善用系統架構師、去哪裡找這些人、如何培養這種人都不知道。以前做代工不需要這種人才就算了,如果現在還不知道,那就難做了。現在業界有不少地方都說要做人工智慧,但我奉勸想加入這類團隊的朋友,先看看帶頭大哥懂不懂,有沒有兩把刷子再說。
(註1) 人工智慧太厲害了,我們該怎麼辦?
臉書版: https://www.facebook.com/shihhaohung/posts/1072464976129323
部落格: http://hungsh-ntucsie.blogspot.tw/2016/01/blog-post.html
(註2) 後摩爾定律的世界和台灣的產業發展
臉書版: https://www.facebook.com/shihhaohung/posts/968793609829794
部落格: http://hungsh-ntucsie.blogspot.tw/2015/07/blog-post_13.html
轉載於Inside: http://www.inside.com.tw/2015/07/14/post-moores-law-and-the-industry-development-in-taiwan
(註3) Qualcomm's Snapdragon 820 INSANE Specs & Features DETAILED
http://www.knowyourmobile.com/samsung/qualcomm-snapdragon-820/23126/qualcomm-snapdragon-820-release-date-specs-features-android-n-launch
(註4) NVIDIA推出車用人工智慧電腦NVIDIA DRIVE PX 2,號稱性能比 Macbook Pro強150倍http://www.techbang.com/posts/40654-nvidia-at-ces-not-flagship-graphics-card-but-strong-for-a-taxi-containing-artificial-intelligence-supercomputers-nvidia-drive-px-2
(註5)
【CES 2016】高通發表 Snapdragon 820A 車用處理器,具機器智能神經學習系統
http://technews.tw/2016/01/08/qualcomm-snapdragon-820a-automotive-processor/
(註6) 深化產學合作!向沒有能力領導創新的大企業說掰
http://www.bnext.com.tw/article/view/id/38432
(註7) Project Catapult
http://research.microsoft.com/en-us/projects/catapult/
(註8) Shih-Hao Hung, Tien-Tzong Tzeng, Gyun-De Wu, Jeng-Peng Shieh. A Code Offloading Scheme for Big-Data Processing in Android Applications, Software—Practice and Experience, first published online May 2014.
http://onlinelibrary.wiley.com/doi/10.1002/spe.2265/abstract
2015年8月30日 星期日
回應Jim Huang關於培育人才
Jim Huang是難得的一位為了理想,願意放棄業界高薪到大學任教,教學生如何充實自我、提升實務能力,我常為他的熱情所感動。
台灣有不少老師是如此犧牲奉獻地為國家培育人才,但即便有滿腔熱情、不在乎薪水,很多時候還是難敵社會現實。他說:(註)
再過兩週就開學,收到好幾則和課程有關的私人訊息,喜憂參半。喜的是,學生願意和我討論,憂的是,大部份學生還是像「成年的高中生」,以「對不對」和「是不是」來看待眼前的選擇。
我認為,一流大學的學生不用學富五車,更不用拿一堆獎項,只要畢業時知道自己在做什麼,不會因為看到其他名校畢業生就自卑,甚至默默接受自己的「宿命」就好。
三年前我剛回學校,在雲平大樓逛著,不經意看到資訊所的實驗室大門旁貼著「賀!___ 錄取中華電信研究所」時,實在非常納悶,這有什麼好恭喜的呢?成大資訊所畢業生應該都有資格去吧?
後來才知道,原來我們的畢業生能夠很有自信地投入職場,就要為學生感到高興了,還不是每個人都可以呀。
回覆訊息很累,能找助教專門處理嗎? ><
我跟他很熟,也留言打趣:
找助教處理?別鬧了,這個世界上沒有幾個人「會」做我們正在做的事。
很多強者不「會」願意來教書,你算是異類,被蘇教授騙進來的;不懂實務的學者們不「會」知道業界狀況,不像你這種沒事到業界教人寫扣的,知道怎麼做出有價值的東西;至於業者呢,不「會」用也請不起你這樣的厲害人物,也沒時間評量人才,只好用考試取人。
所以學生考上了中華電信被祝賀,不足為奇。很多台大的學生也如此,讓我覺得自己德行不足,但聽到你說連你都開示不了,讓我心裡覺得好過些 :)
如果資訊科技產業真的注重軟體創新研發的話,請多多主動關懷教育。實質上可以幫忙的方法很多,想幫忙但是不懂如何做的話,可以問。
(註)https://www.facebook.com/microjserv/posts/10153555536407389?fref=nf
台灣有不少老師是如此犧牲奉獻地為國家培育人才,但即便有滿腔熱情、不在乎薪水,很多時候還是難敵社會現實。他說:(註)
再過兩週就開學,收到好幾則和課程有關的私人訊息,喜憂參半。喜的是,學生願意和我討論,憂的是,大部份學生還是像「成年的高中生」,以「對不對」和「是不是」來看待眼前的選擇。
我認為,一流大學的學生不用學富五車,更不用拿一堆獎項,只要畢業時知道自己在做什麼,不會因為看到其他名校畢業生就自卑,甚至默默接受自己的「宿命」就好。
三年前我剛回學校,在雲平大樓逛著,不經意看到資訊所的實驗室大門旁貼著「賀!___ 錄取中華電信研究所」時,實在非常納悶,這有什麼好恭喜的呢?成大資訊所畢業生應該都有資格去吧?
後來才知道,原來我們的畢業生能夠很有自信地投入職場,就要為學生感到高興了,還不是每個人都可以呀。
回覆訊息很累,能找助教專門處理嗎? ><
我跟他很熟,也留言打趣:
找助教處理?別鬧了,這個世界上沒有幾個人「會」做我們正在做的事。
很多強者不「會」願意來教書,你算是異類,被蘇教授騙進來的;不懂實務的學者們不「會」知道業界狀況,不像你這種沒事到業界教人寫扣的,知道怎麼做出有價值的東西;至於業者呢,不「會」用也請不起你這樣的厲害人物,也沒時間評量人才,只好用考試取人。
所以學生考上了中華電信被祝賀,不足為奇。很多台大的學生也如此,讓我覺得自己德行不足,但聽到你說連你都開示不了,讓我心裡覺得好過些 :)
如果資訊科技產業真的注重軟體創新研發的話,請多多主動關懷教育。實質上可以幫忙的方法很多,想幫忙但是不懂如何做的話,可以問。
(註)https://www.facebook.com/microjserv/posts/10153555536407389?fref=nf
2015年4月9日 星期四
2015年2月2日 星期一
Raspberry Pi 2
Makers的福音: 一千元台幣買一台比第一代快六倍的"Raspberry Pi 2",可以跑免費的Windows 10、可以作為多媒體撥放器、可以拿來製造各類產品和玩具... 多用途 + 創意無限!
http://www.raspberrypi.org/raspberry-pi-2-on-sale/
http://www.raspberrypi.org/raspberry-pi-2-on-sale/
2015年2月1日 星期日
Mio行車記錄器先天不良
聽說Mio的行車記錄器口碑甚佳,所以選購了這個產品(R30),卻遇到災情。看看Mobile01上網友們從2014/12/19開始、長達17頁的討論和韃伐,Mio的處理態度竟然如此閃爍,處理速度竟然如此緩慢,有問題的商品竟然沒有主動召回,我深深不解。
我的新機已經送修好幾天了,不知何時才會取回?我想提醒業界朋友們,注重客戶服務,知道螺絲鬆了一下就要好好鎖緊,不然辛苦建立的口碑,會毀於一旦。我已經考慮退貨,同時將該公司列入黑名單。
http://www.mobile01.com/topicdetail.php?f=621&t=4202352&p=1
我的新機已經送修好幾天了,不知何時才會取回?我想提醒業界朋友們,注重客戶服務,知道螺絲鬆了一下就要好好鎖緊,不然辛苦建立的口碑,會毀於一旦。我已經考慮退貨,同時將該公司列入黑名單。
http://www.mobile01.com/topicdetail.php?f=621&t=4202352&p=1
2015年1月30日 星期五
MYO與穿戴式應用
常見的穿戴式應用,什麼智慧手錶、健康照護、運動管理,似乎在風行一時之後,都已經了無新意。不久前擔任某穿戴式系統設計競賽的評審,作品看來看去都差不多...
「跨領域合作」,是設計出好東西的作法,但這也是國內廠商和學界最不會做的事。想創新的人,除了自己的專業度要夠之外,不妨多走出自己的小世界看看別人在做什麼。
我們剛拿到MYO這個新玩具,思考如何將玩具變成有價值的應用中...我請學生先去看看以下這個好例子。
https://www.youtube.com/watch?v=Wrc1c8g2FPk#t=158

「跨領域合作」,是設計出好東西的作法,但這也是國內廠商和學界最不會做的事。想創新的人,除了自己的專業度要夠之外,不妨多走出自己的小世界看看別人在做什麼。
我們剛拿到MYO這個新玩具,思考如何將玩具變成有價值的應用中...我請學生先去看看以下這個好例子。
https://www.youtube.com/watch?v=Wrc1c8g2FPk#t=158

2015年1月21日 星期三
2015年1月18日 星期日
Docker風潮席捲IT世界
在資工系教書的好處,就是常常可以吸收新的東西,不光光看,而是動手玩。我們幾個月前開始看Docker的時候,雖然有點概念,還不夠扎實,想了幾個研究方向,幾個月動手做下來,應該比較有點譜了。
同學們這時候再回去看這篇介紹性文章「Docker風潮席捲IT世界」(http://www.ithome.com.tw/news/91839),如果會覺得「講得這麼淺顯,三個月前怎麼有看沒有懂呢?」,那就表示已經入門了 :)
當然,一直有新東西出來,也是問題。如果你覺得「怎麼又有新東西出來,很煩呢,可不可以不要學?」,那就表示你在這個行業的前途堪慮。
同學們這時候再回去看這篇介紹性文章「Docker風潮席捲IT世界」(http://www.ithome.com.tw/news/91839),如果會覺得「講得這麼淺顯,三個月前怎麼有看沒有懂呢?」,那就表示已經入門了 :)
當然,一直有新東西出來,也是問題。如果你覺得「怎麼又有新東西出來,很煩呢,可不可以不要學?」,那就表示你在這個行業的前途堪慮。
2015年1月16日 星期五
系統的Modeling and Design
下週一哈佛大學的Prof. David Brooks會來系上給演講。講題是
Modeling and Design for Composable, Accelerator-Centric Architectures,翻成中文,大概的就是「可重組的加速器為主的計算機架構之模型與設計方法」。
我們實驗室這幾年做了不少相關的題目。所謂的Modeling and Design,重視的就是法則和工具,我們做了一堆幫助系統軟硬體整合設計的模擬器的技術和工具,跟IBM Research合作;成大蘇文鈺教授也做了一堆ESL工具,只可惜國內業界還沒跟上來,看不到把應用加速器快速做出來的重要性,搞得蘇教授心灰意冷,寧可多花點時間去教小孩寫程式、研究咖啡和音響。
不過,希望遠來和尚念的經,可以讓國內的產學界長官們了解這個領域的重要性,多多支持相關的研究。所謂的支持,不是只送來幾片開發版就算了,很多人的腦袋還停在十幾年前的「微控制器+硬體加速」的系統晶片的思維,用來做做多媒體播放器、數位相機可以,但面對日益複雜、進展快速、必須上網與世界溝通的「物聯網」和「雲端智慧裝置」,你們還用硬體思維做產品的話,是很難有所突破的。
複雜的應用,軟體會先被設計出來,然後不斷演進。如何在這樣的狀況下,利用加速器去改進軟體,達成快速或省電,是一門學問。現在學校礙於教學時數,只能教些簡單的例子,或是反覆研究一些人家做到爛的加速器(例如H.264解碼器),都是老掉牙的東西。
真正有趣和厲害的,是針對那些從未被加速過的複雜應用,把可攜式(portable)的加速機制設計出來,無論是用GPU、FPGA、HSA都好。例如,給我們一個癌症的放射線治療規劃與劑量模擬程式,能否設計出提高其速度與精確度的加速機制?這需要醫師、核工、資工專家一起來做,不是隨便做做就好的。
做設計方法和工具的,一旦短視近利,很快就玩完了。我們自己做了幾年研究,IBM Research才來找我們做癌症的放射線治療規劃,再過了幾年,鴻海把捐給台大的癌症醫院蓋起來了,才開始跟我們談同樣的題目,希望我們來幫忙開發技術。
類似的需求太多了,沒有好的設計方法和工具,等於是土法煉鋼,不易設計出有競爭力的加速器。全系統的設計方法和工具,是一門新興的產業,猶如當年EDA工具之於傳統晶片設計一般,非常重要。而這樣的研究和產業,是台灣很適合去發展的。
以下是「遠來和尚」 Prof. David Brook將要念的經文摘要,看懂的人當知我所言不假。
Traditional performance and energy scaling benefits based on technology improvements have slowed greatly. To overcome these challenges, hardware acceleration in the form of datapath and control circuitry customized to particular algorithms or applications has surfaced as a promising approach, as it delivers orders of magnitude performance and energy benefits compared to general-purpose solutions. The importance of accelerators is most evident in domain-specific computing platforms currently embodied by today’s energy-efficient mobile SoCs and network processors. To broaden the scope of accelerators into the domain of general-purpose computing it will be necessary to preserve flexibility and generality. Chip designers need to develop composable architectures consisting of ensembles of accelerators that can be pieced together to execute a large variety of workloads. These accelerator-centric architectures require quite different tools and design methodologies from general-purpose designs. This talk discusses recent efforts to develop new methodologies for workload characterization, rapid accelerator design, and pre-RTL simulation of accelerator-centric systems.
Modeling and Design for Composable, Accelerator-Centric Architectures,翻成中文,大概的就是「可重組的加速器為主的計算機架構之模型與設計方法」。
我們實驗室這幾年做了不少相關的題目。所謂的Modeling and Design,重視的就是法則和工具,我們做了一堆幫助系統軟硬體整合設計的模擬器的技術和工具,跟IBM Research合作;成大蘇文鈺教授也做了一堆ESL工具,只可惜國內業界還沒跟上來,看不到把應用加速器快速做出來的重要性,搞得蘇教授心灰意冷,寧可多花點時間去教小孩寫程式、研究咖啡和音響。
不過,希望遠來和尚念的經,可以讓國內的產學界長官們了解這個領域的重要性,多多支持相關的研究。所謂的支持,不是只送來幾片開發版就算了,很多人的腦袋還停在十幾年前的「微控制器+硬體加速」的系統晶片的思維,用來做做多媒體播放器、數位相機可以,但面對日益複雜、進展快速、必須上網與世界溝通的「物聯網」和「雲端智慧裝置」,你們還用硬體思維做產品的話,是很難有所突破的。
複雜的應用,軟體會先被設計出來,然後不斷演進。如何在這樣的狀況下,利用加速器去改進軟體,達成快速或省電,是一門學問。現在學校礙於教學時數,只能教些簡單的例子,或是反覆研究一些人家做到爛的加速器(例如H.264解碼器),都是老掉牙的東西。
真正有趣和厲害的,是針對那些從未被加速過的複雜應用,把可攜式(portable)的加速機制設計出來,無論是用GPU、FPGA、HSA都好。例如,給我們一個癌症的放射線治療規劃與劑量模擬程式,能否設計出提高其速度與精確度的加速機制?這需要醫師、核工、資工專家一起來做,不是隨便做做就好的。
做設計方法和工具的,一旦短視近利,很快就玩完了。我們自己做了幾年研究,IBM Research才來找我們做癌症的放射線治療規劃,再過了幾年,鴻海把捐給台大的癌症醫院蓋起來了,才開始跟我們談同樣的題目,希望我們來幫忙開發技術。
類似的需求太多了,沒有好的設計方法和工具,等於是土法煉鋼,不易設計出有競爭力的加速器。全系統的設計方法和工具,是一門新興的產業,猶如當年EDA工具之於傳統晶片設計一般,非常重要。而這樣的研究和產業,是台灣很適合去發展的。
以下是「遠來和尚」 Prof. David Brook將要念的經文摘要,看懂的人當知我所言不假。
Traditional performance and energy scaling benefits based on technology improvements have slowed greatly. To overcome these challenges, hardware acceleration in the form of datapath and control circuitry customized to particular algorithms or applications has surfaced as a promising approach, as it delivers orders of magnitude performance and energy benefits compared to general-purpose solutions. The importance of accelerators is most evident in domain-specific computing platforms currently embodied by today’s energy-efficient mobile SoCs and network processors. To broaden the scope of accelerators into the domain of general-purpose computing it will be necessary to preserve flexibility and generality. Chip designers need to develop composable architectures consisting of ensembles of accelerators that can be pieced together to execute a large variety of workloads. These accelerator-centric architectures require quite different tools and design methodologies from general-purpose designs. This talk discusses recent efforts to develop new methodologies for workload characterization, rapid accelerator design, and pre-RTL simulation of accelerator-centric systems.
2015年1月15日 星期四
Intel Atom+FPGA開發版
收到四份廠商捐贈的Intel Atom+FPGA的開發版。感謝Intel, Terasic, Altera的贊助,我們會好好利用的,也希望其他廠商提供新產品給我們嚐鮮。


2014年2月5日 星期三
穿戴式嵌入式系統
Intel Galileo板子,跟Intel申請有好一陣子了還沒拿到,在光華商場看到,兩千多元,不貴。Arduino的配件也可相容,這家有七十多種感測和控制的配件,下次可以跟小朋友們一起想些有趣的玩意來做做。


現在做這些,在硬體的部分,像是拼積木,軟體的部分,用現成的API就可以做很多,不必是資訊系本科的人就能拿來做事,重點在於是否有個善於「規劃」的腦袋。縝密的規劃,就是programming。被翻譯成為程式設計,又被很多地方當成語言課程和解題課程來教,不免讓很多人對programming有很多誤解。
以務實的角度看,資訊本科生應該要懂一些相關的東西,好跟應用領域的人接軌。這種東西,其實本科生花一點時間就通了,通了之後一輩子就不怕人家說你不會實作,投資報酬率極高。我二十多年前做過這些東西,現在看到這些還是馬上可以上手,有點水電工的味道。
但隨行的朋友問我有沒有做這方面的研究?坦白說,這東西是拿來實用的,不是做研究用的。實用上,越簡單越好,不要搞得太複雜。就單獨一台來說,很多東西都用標準化的open source元件才好跟人家接軌,除非在應用面有特殊需求,否則不要一廂情願去開發自己的硬軟體規格。反而是跟應用領域專家一起做研究,比較有意義。
最近倒是看到有幾個應用題目,有商機、可以參加比賽,至於題目是什麼,得暫時保密。
如果要在資工本行做這方面研究的話,有個題目是做出一個可以用來支援開發「很多個這種裝置所構成的聯網分散式系統」的高速模擬器與效能分析工具。大家知道,單獨一個很好搞,但很多個組合起來就複雜了,程式要偵錯不容易,效能問題看不到原因,即時性如何保障,都是難搞的問題,門檻高多了。
這個工具之前已經做了大半,如果有人願意把這個題目做完整,不只可成為個中高手,還應該有機會商品化、賺點錢。主要是把這篇2012年的論文裡面的東西做完整和產品化:
"Performance Evaluation of Machine-to-Machine (M2M) Systems with Virtual Machines" (https://www.dropbox.com/s/d3h2wdx31rvtf43/WPMC_2012_M2M.pdf) 需要額外加入sensor和actuator的模擬,把網路的模擬做得更完整一點、時間同步機制還要更有效率。
這種研究問題反而不需要保密,看得懂就是你的...


現在做這些,在硬體的部分,像是拼積木,軟體的部分,用現成的API就可以做很多,不必是資訊系本科的人就能拿來做事,重點在於是否有個善於「規劃」的腦袋。縝密的規劃,就是programming。被翻譯成為程式設計,又被很多地方當成語言課程和解題課程來教,不免讓很多人對programming有很多誤解。
以務實的角度看,資訊本科生應該要懂一些相關的東西,好跟應用領域的人接軌。這種東西,其實本科生花一點時間就通了,通了之後一輩子就不怕人家說你不會實作,投資報酬率極高。我二十多年前做過這些東西,現在看到這些還是馬上可以上手,有點水電工的味道。
但隨行的朋友問我有沒有做這方面的研究?坦白說,這東西是拿來實用的,不是做研究用的。實用上,越簡單越好,不要搞得太複雜。就單獨一台來說,很多東西都用標準化的open source元件才好跟人家接軌,除非在應用面有特殊需求,否則不要一廂情願去開發自己的硬軟體規格。反而是跟應用領域專家一起做研究,比較有意義。
最近倒是看到有幾個應用題目,有商機、可以參加比賽,至於題目是什麼,得暫時保密。
如果要在資工本行做這方面研究的話,有個題目是做出一個可以用來支援開發「很多個這種裝置所構成的聯網分散式系統」的高速模擬器與效能分析工具。大家知道,單獨一個很好搞,但很多個組合起來就複雜了,程式要偵錯不容易,效能問題看不到原因,即時性如何保障,都是難搞的問題,門檻高多了。
這個工具之前已經做了大半,如果有人願意把這個題目做完整,不只可成為個中高手,還應該有機會商品化、賺點錢。主要是把這篇2012年的論文裡面的東西做完整和產品化:
"Performance Evaluation of Machine-to-Machine (M2M) Systems with Virtual Machines" (https://www.dropbox.com/s/d3h2wdx31rvtf43/WPMC_2012_M2M.pdf) 需要額外加入sensor和actuator的模擬,把網路的模擬做得更完整一點、時間同步機制還要更有效率。
這種研究問題反而不需要保密,看得懂就是你的...
2013年9月10日 星期二
個人興學
有願意奉獻於教學的老師,有能夠促進個人化學習的數位學習技術,要「個人興學」,還缺些什麼呢?
朋友Jim Huang在facebook上發了一篇文章,談及他對教育的看法,令我有所共鳴,在此摘錄其中幾段,並且補充我的看法。
Quote 1: 「我的教學目標很簡單,除了培養學生有軟硬體系統設計能力,再來就是「只要給我 22K 教書一學期,我保證經過完整訓練的學生,月薪是 66K 以上」(對濁水溪以南的學校,我開課甚至可不收費)。」
我們開「系統研究專題」的目的,和Jim Huang的教學目標類似,不過我不敢保證學生剛出去的月薪,雖然我覺得我們學生的勞動價值遠遠不只66K。原因是,很多學生喜歡去大公司,或是工作穩定的機構上班,這些地方的人資部門,大都不願意支持這種破壞行情的事。如果到新創公司做事,那麼看得就不是薪水,而是公司的發展和股價了。
但是,路遙知馬力,真心想找棟梁人才的公司和研發團隊,請多多支持像Jim這樣的課程,新店溪以北的話,不妨來贊助我們的教育訓練。我們的課程還有些座位,歡迎業界來旁聽。
有些人可能會好奇,你們這些大學,不是拿了國家「很多」的補助,怎麼還在叫窮?說真的,五年五百億很多嗎?分到每個教授,能收到多少補助?台北一棟樓房就要好幾億,台北有多少房子?有錢人很多的,但是大概不願意拿錢出來贊助教育,因為政府在經費規劃和執行上,常常讓人有疑慮的 (請看Quote 2)。
所以,在現階段的大學教育要有所突破的話,我看,可能非走「個人興學」的路線不可。我這裡所謂的「個人興學」,不是去辦個私立大學,也不是捐錢給學校建大樓辦學程,更不是給成績優異獎學金,而是結合一群有理想、有遠見、有資源、有能力的各界人士,以個人的力量來嘗試改變和突破,再以成功的經驗影響主流。
不管這美夢是否會成真,至少我知道有不少有勇氣的人,正在以個人的作法嘗試改變。
Quote 2: 「參與了幾次大學院校的課程改進計畫 (藉由 g0v.tw 台灣零時政府 眾多強大工具,很容易查出這些經費的去向,在此不贅述),看到動輒上百萬的預算,我不禁質疑,難道張羅這些資訊工程系所的課程真的如此所費不貲嗎?又,難道這些反映到我們的學生身上嗎?身為大學教師,又怎能對得起支持教育改革的納稅人?」
我參與過好幾次課程改進計畫,預算是否發揮效果,要看各個計畫主持人的良心。有一年,交大鍾崇斌教授主持「嵌入式多核心系統與軟體」這門課的開發,我幾乎每週去交大開四小時的會,去了大概十多次,除了自己在台大教這門課之外,還去交大幫忙上課,還辦推廣會。除了車馬費和便當費實報實銷之外,不記得有拿過錢。(如果有的話,頂多是幾萬元稿費,那是行情價。)坦白說,如果不是受鍾教授的精神感召,我大概就把自己的部份顧好,不會這麼認真幫忙修改其他教授提出的講義。
我們的教育,要靠這種良心事業,靠得住嗎?
如果教育部和學校不來扯後腿,我倒是很樂意做功德。問題是,花了那麼多時間編修教材,學校根本不認為是什麼重大貢獻。內行人都知道,學校真正注重的是以期刊論文所呈現的卓越的研究表現。
準備升等會議的簡報時,原本有一頁列出了我所參與的課程改進計畫:
年度 課程名稱
94 嵌入式處理器設計
95 輸出裝置與驅動程式設計
97 嵌入式多核心系統與軟體
98 異質多核心系統
99 Linux系統核心與應用
100 雲端伺服電子系統主題學程於車用電子行動終端之運用
100 嵌入式應用軟體實驗
給幾位資深教授過目時,都說這頁沒有「亮點」,建議我把這頁拿掉。課程改進,會有什麼亮點?
因此,我想為大部分的新進教授們叫屈,因為在上述這種氛圍中,一年有十位助理教授搶四個升等名額,而每位幾乎都以「世界第一」作為「亮點」的時候,願意耗費精力在編修教材上的人,應該是少之又少吧。
至於大牌的資深教授,不會輕易接這種吃力不討好的工作。我今年負責的課程改進計畫,靠著厚臉皮再三騷擾蘇文鈺教授,才讓他下海幫忙,欠下大人情。
在強調「個人興學」的同時,我希望大家能幫忙移除這些阻擋在興學之道上的障礙。
Quote 3: 「巧婦難為無米之炊,像是嵌入式系統一類的課程,自然免不了要有足夠的硬體,搭配相關的軟體,我相信後者可藉由完全採用 open source 方案來解決,那硬體呢?總不能都要求學生用模擬器、紙上談兵吧?在 2013 暑期嵌入式短期訓練課程 中,我嘗試藉由網路發動小規模「硬體捐贈 / 出借」方式,很慶幸獲得不少迴響,取得硬體的同學也相當珍惜地使用這些來自台灣各界的愛心。」
這是「個人興學」的範例之一,我還有其他幾個範例。台灣其實有很多人才,只是被形勢困住了,在現況發揮不出來。對於台灣科技業的困境,大體上,我覺得是一方面是不知所措,一方面是咎由自取。
業界如果想要跟人家在「大聯盟」上競爭,是不是應該開設「農場」,訓練和儲備人才呢?資訊科技進步太快,不跟大學密切合作的話,怎麼有辦法自己開農場?所以我說業界不知所措,只會大喊缺人才,卻不知道怎麼解決人才欠缺的問題;等著要政府來解決的話,那可有得等了。
我說「咎由自取」,是因為一大半業界還是停留在「不珍惜人才」的階段。我們訓練出會做前瞻系統研究的人才,業界願不願意花66K雇用碩士畢業生?我只好跟學生講,你們學好這些,充實外語能力,有辦法走出去,在國外有三倍於此的薪水等著你。要打大聯盟,連三分之一的薪水都不願意付,怎麼找人?
想起過去紅葉少棒的例子:給他們目標,幫他們鋪路,提供他們設備和訓練,我們的小孩,能夠打小聯盟揚威海外。事情就是那麼簡單,誠心正意,就有成功的機會。
今天,我們的大人,口是心非,講一套做一套,讓年輕人厭煩;主管們各自顧自己的飯碗為先,機會來時A一筆,有沒有幫年輕人鋪路?業界喊著缺人才,都是政府和學校的錯,有沒有費心提供教育資源和好的工作環境?
在「個人興學」這個願景上,業界能夠扮演重要的角色。不需要大把金錢,如果找到對的人,就能夠收到效果。
朋友Jim Huang在facebook上發了一篇文章,談及他對教育的看法,令我有所共鳴,在此摘錄其中幾段,並且補充我的看法。
Quote 1: 「我的教學目標很簡單,除了培養學生有軟硬體系統設計能力,再來就是「只要給我 22K 教書一學期,我保證經過完整訓練的學生,月薪是 66K 以上」(對濁水溪以南的學校,我開課甚至可不收費)。」
我們開「系統研究專題」的目的,和Jim Huang的教學目標類似,不過我不敢保證學生剛出去的月薪,雖然我覺得我們學生的勞動價值遠遠不只66K。原因是,很多學生喜歡去大公司,或是工作穩定的機構上班,這些地方的人資部門,大都不願意支持這種破壞行情的事。如果到新創公司做事,那麼看得就不是薪水,而是公司的發展和股價了。
但是,路遙知馬力,真心想找棟梁人才的公司和研發團隊,請多多支持像Jim這樣的課程,新店溪以北的話,不妨來贊助我們的教育訓練。我們的課程還有些座位,歡迎業界來旁聽。
有些人可能會好奇,你們這些大學,不是拿了國家「很多」的補助,怎麼還在叫窮?說真的,五年五百億很多嗎?分到每個教授,能收到多少補助?台北一棟樓房就要好幾億,台北有多少房子?有錢人很多的,但是大概不願意拿錢出來贊助教育,因為政府在經費規劃和執行上,常常讓人有疑慮的 (請看Quote 2)。
所以,在現階段的大學教育要有所突破的話,我看,可能非走「個人興學」的路線不可。我這裡所謂的「個人興學」,不是去辦個私立大學,也不是捐錢給學校建大樓辦學程,更不是給成績優異獎學金,而是結合一群有理想、有遠見、有資源、有能力的各界人士,以個人的力量來嘗試改變和突破,再以成功的經驗影響主流。
不管這美夢是否會成真,至少我知道有不少有勇氣的人,正在以個人的作法嘗試改變。
Quote 2: 「參與了幾次大學院校的課程改進計畫 (藉由 g0v.tw 台灣零時政府 眾多強大工具,很容易查出這些經費的去向,在此不贅述),看到動輒上百萬的預算,我不禁質疑,難道張羅這些資訊工程系所的課程真的如此所費不貲嗎?又,難道這些反映到我們的學生身上嗎?身為大學教師,又怎能對得起支持教育改革的納稅人?」
我參與過好幾次課程改進計畫,預算是否發揮效果,要看各個計畫主持人的良心。有一年,交大鍾崇斌教授主持「嵌入式多核心系統與軟體」這門課的開發,我幾乎每週去交大開四小時的會,去了大概十多次,除了自己在台大教這門課之外,還去交大幫忙上課,還辦推廣會。除了車馬費和便當費實報實銷之外,不記得有拿過錢。(如果有的話,頂多是幾萬元稿費,那是行情價。)坦白說,如果不是受鍾教授的精神感召,我大概就把自己的部份顧好,不會這麼認真幫忙修改其他教授提出的講義。
我們的教育,要靠這種良心事業,靠得住嗎?
如果教育部和學校不來扯後腿,我倒是很樂意做功德。問題是,花了那麼多時間編修教材,學校根本不認為是什麼重大貢獻。內行人都知道,學校真正注重的是以期刊論文所呈現的卓越的研究表現。
準備升等會議的簡報時,原本有一頁列出了我所參與的課程改進計畫:
年度 課程名稱
94 嵌入式處理器設計
95 輸出裝置與驅動程式設計
97 嵌入式多核心系統與軟體
98 異質多核心系統
99 Linux系統核心與應用
100 雲端伺服電子系統主題學程於車用電子行動終端之運用
100 嵌入式應用軟體實驗
給幾位資深教授過目時,都說這頁沒有「亮點」,建議我把這頁拿掉。課程改進,會有什麼亮點?
因此,我想為大部分的新進教授們叫屈,因為在上述這種氛圍中,一年有十位助理教授搶四個升等名額,而每位幾乎都以「世界第一」作為「亮點」的時候,願意耗費精力在編修教材上的人,應該是少之又少吧。
至於大牌的資深教授,不會輕易接這種吃力不討好的工作。我今年負責的課程改進計畫,靠著厚臉皮再三騷擾蘇文鈺教授,才讓他下海幫忙,欠下大人情。
在強調「個人興學」的同時,我希望大家能幫忙移除這些阻擋在興學之道上的障礙。
Quote 3: 「巧婦難為無米之炊,像是嵌入式系統一類的課程,自然免不了要有足夠的硬體,搭配相關的軟體,我相信後者可藉由完全採用 open source 方案來解決,那硬體呢?總不能都要求學生用模擬器、紙上談兵吧?在 2013 暑期嵌入式短期訓練課程 中,我嘗試藉由網路發動小規模「硬體捐贈 / 出借」方式,很慶幸獲得不少迴響,取得硬體的同學也相當珍惜地使用這些來自台灣各界的愛心。」
這是「個人興學」的範例之一,我還有其他幾個範例。台灣其實有很多人才,只是被形勢困住了,在現況發揮不出來。對於台灣科技業的困境,大體上,我覺得是一方面是不知所措,一方面是咎由自取。
業界如果想要跟人家在「大聯盟」上競爭,是不是應該開設「農場」,訓練和儲備人才呢?資訊科技進步太快,不跟大學密切合作的話,怎麼有辦法自己開農場?所以我說業界不知所措,只會大喊缺人才,卻不知道怎麼解決人才欠缺的問題;等著要政府來解決的話,那可有得等了。
我說「咎由自取」,是因為一大半業界還是停留在「不珍惜人才」的階段。我們訓練出會做前瞻系統研究的人才,業界願不願意花66K雇用碩士畢業生?我只好跟學生講,你們學好這些,充實外語能力,有辦法走出去,在國外有三倍於此的薪水等著你。要打大聯盟,連三分之一的薪水都不願意付,怎麼找人?
想起過去紅葉少棒的例子:給他們目標,幫他們鋪路,提供他們設備和訓練,我們的小孩,能夠打小聯盟揚威海外。事情就是那麼簡單,誠心正意,就有成功的機會。
今天,我們的大人,口是心非,講一套做一套,讓年輕人厭煩;主管們各自顧自己的飯碗為先,機會來時A一筆,有沒有幫年輕人鋪路?業界喊著缺人才,都是政府和學校的錯,有沒有費心提供教育資源和好的工作環境?
在「個人興學」這個願景上,業界能夠扮演重要的角色。不需要大把金錢,如果找到對的人,就能夠收到效果。
2013年8月2日 星期五
CUDA for ARM
心血來潮,順便來出個作業好了
適用科目: 高等計算機結構、平行計算、系統研究專題
題目: CUDA for ARM
NVidia剛出了可支援ARM系統的CUDA 5.5,參考:
https://developer.nvidia.com/content/cuda-arm-platforms-now-available
https://developer.nvidia.com/cuda-downloads#source=pr
現在推出CUDA for ARM,NVidia想要做甚麼呢? 參考:
http://www.theregister.co.uk/2013/06/18/nvidia_cuda_arm_openacc/
問題1: 如果計算都在 GPU上做,CPU用Intel x86還是ARM是不是沒多大差別? (提示: 請考慮既有、現有與未來的計算環境、程式設計師、市佔率等因素,分別與綜合討論效能、成本、電力等面相。)
問題2: 你覺得CUDA與OpenCL相比,將來鹿死誰手?
適用科目: 高等計算機結構、平行計算、系統研究專題
題目: CUDA for ARM
NVidia剛出了可支援ARM系統的CUDA 5.5,參考:
https://developer.nvidia.com/content/cuda-arm-platforms-now-available
https://developer.nvidia.com/cuda-downloads#source=pr
現在推出CUDA for ARM,NVidia想要做甚麼呢? 參考:
http://www.theregister.co.uk/2013/06/18/nvidia_cuda_arm_openacc/
問題1: 如果計算都在 GPU上做,CPU用Intel x86還是ARM是不是沒多大差別? (提示: 請考慮既有、現有與未來的計算環境、程式設計師、市佔率等因素,分別與綜合討論效能、成本、電力等面相。)
問題2: 你覺得CUDA與OpenCL相比,將來鹿死誰手?
2013年7月29日 星期一
Kick-Starter上的Parallela
Kick-Starter上的Parallela是個有趣的計畫,今天晚上在 袁大倫 工作室的美妙的黑膠音響聲中和 蘇文鈺 教授討論起它的商業模式和實質意義... 我想,99美元的16核心板子,拿來玩玩是很不錯的,但真的要【超級】的話,並不容易。一張Intel XEON Phi加速卡,可以跑到2000GFLOPS(單精度),保守估計也要連接上60張16核心的板子(號稱32GFLOPS)才追得上...
相關文件連結:
http://www.parallella.org
http://www.adapteva.com/all-documents/
相關文件連結:
http://www.parallella.org
http://www.adapteva.com/all-documents/
2013年5月31日 星期五
玩玩智慧型手錶與開放式硬軟體
抽空把手上的MOTOACTV手錶重灌作業系統,這個有600MHz ARM CPU 的MOTOACTV手錶,跑Android的感覺還過得去,可以下載Google Play Store上的Apps來安裝。

今天課堂上用這個例子跟大學部學生聊如何利用Open Hardware和Open Software從事Application-System Co-Design,目的是鼓勵他們多走出電腦的世界,看看周遭有什麼好玩的應用,用一些隨手可得的硬軟體動手做做東西,找到一些做系統的Passion。

http://www.arduinopassion.com/a-laser-range-finder-using-raspberrypi-arduino-and-opencv/

http://www.daveakerman.com/?p=1154

今天課堂上用這個例子跟大學部學生聊如何利用Open Hardware和Open Software從事Application-System Co-Design,目的是鼓勵他們多走出電腦的世界,看看周遭有什麼好玩的應用,用一些隨手可得的硬軟體動手做做東西,找到一些做系統的Passion。
http://www.arduinopassion.com/a-laser-range-finder-using-raspberrypi-arduino-and-opencv/
http://www.daveakerman.com/?p=1154
2013年5月30日 星期四
從來沒有比現在更適合作實務研究的時候
為什麼我喜歡做較實務的研究呢?其實,是因為我不敢做太理論的研究,因為我總是搞不清楚那些沒辦法和個人親身體驗連結在一起的知識和理論。所以,我很不會背書,因為,已經懂的東西,我不覺得需要背;沒有辦法和我的經驗連結的東西,就算背起來也馬上忘記。
最近買到Raspberry Pi,除了喚起三十多年前的回憶,實體東西自在手上把玩幾下,網路關於Raspberry Pi的資訊和討論,包括Wikipedia上的一大堆資料,瞬間變得有意義,這是動手做學東西,似乎可以用來作為hackschooling的材料。
現在要教Embedded Systems課程可用的教具和參考資料比幾年前多太多了。之前我教Linux Device Driver的時候,沒看到幾張好用的板子,現在有一堆open hardware,在這些open hardware上面可以跑一堆open software,就像這篇所介紹的:
幾年前WSN (Wireless Sensor Network) 似乎很熱門的時候,我一點興趣都沒有,因為那些小小的板子速度慢得很,卻貴得要命、貴得沒有道理,不同的硬體規格、作業系統、網路(Zigbee)相容性有問題,除了發論文唬人之外,我才疏學淺,根本想不出什麼有意義的研究。
或許下學期和 Daniel Shih 合開的系統專題研究課程,我們可以考慮讓同學動手玩一玩這些玩具?BeagleBone有新版的,速度可到1GHz,還有 HDMI介面。實驗室還有一些ZedBoard,上面有雙核心的ARM和FPGA,功能更強大,不過體積比較大。
玩這些東西,希望能有一些新創意。我們整天搞系統的人,往往沒時間去想應用,這點倒是該注意。這些open hardware/software,最大的作用,在於它們能夠讓有創意的人,不需要花太多時間在系統上,快點做出雛形(prototype)。當初Apple II也是如此,讓電腦進到一般人的世界。
注意周遭,是否有值得改進的東西?假如能放個小如卡片的電腦在這裡,能夠做什麼好事?這小如卡片的電腦本身能力可能不強,但是連上Internet之後潛力無窮。
不過,不要再提說要把這東西放在冰箱上的這種老掉牙的創意了。「智慧型冰箱」可以監控你每天進出冰箱的食物和熱量,很多人試過了,好像沒多大實用價值。從生活中得到一些啟發,解決一些自己切身相關的問題,全新的主意得來不易,但其實也沒那麼難。
最近買到Raspberry Pi,除了喚起三十多年前的回憶,實體東西自在手上把玩幾下,網路關於Raspberry Pi的資訊和討論,包括Wikipedia上的一大堆資料,瞬間變得有意義,這是動手做學東西,似乎可以用來作為hackschooling的材料。
現在要教Embedded Systems課程可用的教具和參考資料比幾年前多太多了。之前我教Linux Device Driver的時候,沒看到幾張好用的板子,現在有一堆open hardware,在這些open hardware上面可以跑一堆open software,就像這篇所介紹的:
幾年前WSN (Wireless Sensor Network) 似乎很熱門的時候,我一點興趣都沒有,因為那些小小的板子速度慢得很,卻貴得要命、貴得沒有道理,不同的硬體規格、作業系統、網路(Zigbee)相容性有問題,除了發論文唬人之外,我才疏學淺,根本想不出什麼有意義的研究。
或許下學期和 Daniel Shih 合開的系統專題研究課程,我們可以考慮讓同學動手玩一玩這些玩具?BeagleBone有新版的,速度可到1GHz,還有 HDMI介面。實驗室還有一些ZedBoard,上面有雙核心的ARM和FPGA,功能更強大,不過體積比較大。
玩這些東西,希望能有一些新創意。我們整天搞系統的人,往往沒時間去想應用,這點倒是該注意。這些open hardware/software,最大的作用,在於它們能夠讓有創意的人,不需要花太多時間在系統上,快點做出雛形(prototype)。當初Apple II也是如此,讓電腦進到一般人的世界。
注意周遭,是否有值得改進的東西?假如能放個小如卡片的電腦在這裡,能夠做什麼好事?這小如卡片的電腦本身能力可能不強,但是連上Internet之後潛力無窮。
不過,不要再提說要把這東西放在冰箱上的這種老掉牙的創意了。「智慧型冰箱」可以監控你每天進出冰箱的食物和熱量,很多人試過了,好像沒多大實用價值。從生活中得到一些啟發,解決一些自己切身相關的問題,全新的主意得來不易,但其實也沒那麼難。
2010年8月2日 星期一
專題研究導向的課程規劃(2010.09~2011.06)
有鑑於研究生對於做專題的能力不足,欠缺解決問題的能力,又沒有太多時間和機會能接受比較正式的訓練,今年我打算換一個方式來教授研究所層級的課程,在課程中著重專題研究和個別指導,幫學生打下獨立研究、資料搜尋、實際製作、論文寫作的基礎能力。
要參加這些課程的學生,必須有以下的認知:
Linux Kernel, Systems, and Applications
內容大綱:
Parallel and Distributed Programming for Cloud Computing
要參加這些課程的學生,必須有以下的認知:
- 對於做專題有濃厚的興趣
- 有足夠時間收集資料和實作專題
- 能夠每週參加課程討論
上課進行方式,原則上:
- 1/3 時間是講解課程相關知識(lecture/textbook)
- 1/3 時間討論research papers
- 1/3 時間為student presentations and discussions
Linux Kernel, Systems, and Applications
內容大綱:
- Linux systems
- Android systems
- Cloud computing systems
- Virtualization technologies
- Virtual machine technologies
- Virtual platform technologies
- Advanced Linux Programming (2 weeks)
- Basic parallel programming skills
- Pthread & OpenMP Programming
- Message-passing interface
- Performance analysis
- Linux Kernel Development
- Process management & Interrupt handling (2 hours)
- Kernel synchronization
- Memory management
- I/O devices
- Drivers
- Filesystems
- Network
Parallel and Distributed Programming for Cloud Computing
- Parallelization of Applications
- Shared Memory Programming
- Message-Passing Programming
- MapReduce
- Task Distribution and Process Migration
- Distributed File Systems
- Data Synchronization
- Client-Server
- Performance Analysis
2010年7月29日 星期四
研究領域分組『虛擬平台與系統設計』與『雲端虛擬手機』
最近根據最新的研究方向、研究計畫、實驗室研究人力和興趣,我大致規劃兩個研究小組,將會每週定期開討論會:
- 虛擬平台與系統設計研究小組: Virtual platform, performance tools, system design, multicore architecture
- 雲端虛擬手機研究小組: Cloud computing, virtualization, virtual phones, Android software
2010年6月25日 星期五
特優&佳作 - 2010教育部全國大學院校嵌入式系統(ES)設計競賽
本所學生參加今年度教育部全國大學院校嵌入式系統(ES)設計競賽,成果豐碩。其中敝人指導學生榮獲下列嵌入式系統軟體組獎項:
(1) 特優:周威廷、邱柏勳、李慧娟團隊,參賽題目:嵌入式異質多核心平台之高效能通訊工具組 (HPCT:High Performance Communication Toolkit for Embedded Heterogenous Multicore Platforms)
(2) 佳作:梁福田、蔡東杰、林庚佑團隊,參賽題目:運用QEMU達到快速功能性模擬與效能監控之嵌入式異質多核心虛擬平台 (Fast Functional Simulation with Performance Monitoring by QEMU for Embedded Heterogeneous Platform)
另外,敝人與電子所簡韶逸教授共同指導,彭治民(資工所)與傅昱絜、郭品宏(電子所)團隊,以資電中心第二第三分項整合計畫主題,即時無線影像傳輸系統 (Realtime Wireless Video Transmission System),也獲得軟硬體整合組佳作之榮譽。
本屆嵌入式系統設計競賽自1月開始,共有216隊參賽,為歷年規模最大。81隊進入5月20日的決賽,以創新創意、技術深度、實作完整性為評審標準。此次比賽得獎,為本系多位教授近年來通力推動教育部嵌入式系統相關課程計畫之例證,亦再次顯示本校學生在創新與務實方面均能兼顧,能妥善經營長期的團隊合作,殊為不易,特此恭賀參賽學生,也將此榮譽與本系師生分享。
得獎名單公布於http://123.204.252.181/awards/winner.html,教育部顧問室將於7/6舉行頒獎典禮。
訂閱:
文章 (Atom)

