從雲端加速技術看台灣高階人才培育問題#4:密碼加速器的研發,讓Sun在電商伺服器市場賣到缺貨/洪士灝
前面三篇談了透過GPU/FPGA加速雲端運算的相關技術,雖然是現今的顯學,但人才奇缺的現況,以及筆者當時求學的經歷後,這篇再來談談個人從學校進入業界後的種種體驗。
畢業後加入Sun,研發密碼加速器
拿到博士後,筆者繼續在密西根大學做了兩年的博士後研究,所以我在密大總共累積了八年,跟著大師學習平行電腦應用最佳化的經驗。有趣的是,人工智慧的研究和平行電腦產業,在這些年每況愈下,而紅透半邊天的是電子商務。
我在西元2000年到SUN任職,服務的部門是「效能應用工程部門」(Performance and Applications Engineering, PAE),專注於提升中高階電子商務伺服器上重要應用的效能。
在我去之前,這個團隊已有將近五十人,已經成功將多個資料庫管理系統效能最佳化,客戶包括Oracle在內;這讓SUN伺服器在電子商務風潮開始盛行的時代賣到缺貨。
念博士、寫論文不見得是浪費時間,要看有沒有真正訓練到。總有一天,所學會派上用場。
有了這些成功的經驗與戰果,讓PAE能夠參與更多公司裡重要系統與應用的研發工程。
我在菜鳥時期,被找去參與當時PAE裡頭沒有人懂的密碼加速器(Crypto Accelerator),研究網路效能與安全,嘗試大幅降低資訊安全機制介入時對系統效能的影響,包括Secure Web Server和VPN Server的效能。
所謂的密碼加速器,基本上就是一個現在俗稱「開外掛」的概念,把專門用來做加解密演算法的晶片,做成一張擴充卡放進系統內;有了這張加速卡,就可以用這張卡來執行原本要20顆處理器執行軟體才能完成的工作。
第一代的Sun Crypto Accelerator I用的是幾乎是現成的解決方案,產品研發部門Network Product Group (NPG)把卡做出來準備推出去賣的時候,才發現效能有嚴重的缺陷;逼不得已只好跑來尋求PAE的幫忙。
我當時加入Sun才一個月,臨危受命,還好在大學時代修習李琳山教授「通信技術與應用」的時候,為了期末報告,做過一個關於密碼學最新技術的探討論文,所以對密碼有點基礎;但是還是得在第一時間搞清楚Solaris作業系統的核心和驅動程式、Webserver程式碼、NSS和OpenSSL程式庫的運作。
同時,還需要與多方人馬討論問題所在,包括NPG的一位Distinguished Engineer,讓他們相信我這個菜鳥有能力幫他們解決問題。
活用所學,找到問題癥結
現在回過頭看,這是個讓菜鳥展現能力的好機會。我當時根本不敢說自己有博士學歷,說了也沒有人在乎;但是我長久研究電腦效能所培養出的理解、分析、解題能力,這時都派上了用場。
花了幾天時間,我在PAE的實驗室中用別組汰換下來的設備(十台Sun Workstation和一台Sun Server,都是幾年前的舊貨)建置一套測試環境,再花幾天的時間,設計實驗、分析實驗資料,找到問題的關鍵點。
台灣高科技產業若能一改故步自封的習氣,向國外挖角或與國外大廠技術合作,都有無限可能。
關鍵在於原來的作法有個盲點,只要系統中有密碼加速器的存在,不論訊息(Message)大小,全部都送到密碼加速器上進行加密解密運算;然而如果要傳送的訊息量很小,透過作業系統和I/O Bus把這麼小的訊息送到密碼加速器處理,根本是件「弊遠大於利」的事情,不如直接用軟體處理掉。
這個現象透過我所設計的實驗,很快就可以分析出來,我覺得很不可思議:為什麼這麼基本的概念、這麼簡單的實驗,NPG的工程師不會做?
當然,為了顧及NPG的形象,我們沒有對外聲張;「功成身退」一向是PAE的處事態度。因此NPG和PAE變得很友好,於是NPG馬上邀請我們參與下一代密碼加速器Crypto Accelerator 1000的開發。
加速晶片是Broadcom做的,但是軟體是NPG寫的,在我們的協助下,效能有大幅的進步,因此在2002年推出前,Sun還特地發表新聞稿,宣告Sun做出了市面上最快速的安全網頁伺服器平台。
我們也發表了一篇會議論文,幫NPG拉抬聲勢。這篇其實揭露了部分的秘密:想把Secure Web Server的效能調得很好,涉及很多的參數;必須考量系統特性、網路速度、工作負載量等等因素。
再加上這是多處理器系統、透過高速網路讓幾千個使用者同時連線的工作,因此我的平行計算專長大大派上用場。
所以說,念博士、寫論文不見得是浪費時間,要看有沒有真正訓練到。總有一天,所學會派上用場。
到了再下一代的Crypto Accelerator 4000,要處理的狀況就更複雜了。這張高級的加密解密加速卡,為了要通過FIPS 140認證(編按:FIPS 140是一種密碼學模組標準,可以參考這裡的簡介),整個是密封起來的,能夠防止實體侵入性的資料竊取;同時內建高速網路卡,可以在資料傳送與接收時做in-line的加解密。
參與一系列密碼加速器的開發後,我成為公司裡重要的系統資安專家;後來公司決定強化資安,把密碼加速的功能放進Solaris作業系統內,並將密碼加速器由外掛硬體,變成內建在CPU晶片上的技術(UltraSPARC T1是第一個內建加解密加速功能的CPU)。
因此我們幫忙Solaris Kernel團隊做了Solaris Cryptographic Framework,同時也參與CPU晶片的研發工程。SUN在2005年之後推出的作業系統和處理器,都內建先進的密碼加速器,甚至內建加速XML的硬體;與我參與過的計畫相關,雖然我在2005初就離職回台灣教書。
人才回國貢獻所學,還是留在國外?要看業者的態度
後來即使Sun被Oracle收購,PAE這個部門還活得好好的,而上述的研發工作仍然繼續進行,甚至還愈來愈重要。
我偶爾跟PAE的老朋友相互拜訪,有時勸幾位台灣同鄉回台灣貢獻所學,他們反而開玩笑,說要挖我回去PAE團隊工作。
我想如果真的在國內有很好的機會,他們當然會感興趣的;其實矽谷有很多來自台灣的人才,如果台灣的高科技產業一改故步自封的習氣,無論是向國外挖角或是與國外大廠技術合作,都有無限的可能性。
上述開發密碼和XML加速器的經驗,讓筆者深信「特定用途的晶片」(ASIC)是極具潛力的技術,只不過難度遠高於一般程式最佳化所需的工程。
因為需要兼通軟硬體,而且必須審慎規劃。硬體製造的成本極高,而且一旦設計或估算錯誤,可能就難以挽回,所以必須及早讓能夠進行全系統與應用層級效能分析與優化的專家參與整個規劃專案,而不是讓各部門各自為政。