1. 程式人生 > >被詬病不實用的超級計算機,在深度學習時代會改變嗎?

被詬病不實用的超級計算機,在深度學習時代會改變嗎?

超算

在中學課本裏,我們都學到過“超級計算機”這個概念,在印象裏它通常和神州五號、航空母艦等等高科技設備出現在同一個章節,屬於國家科研能力的體現,更是在國際科技戰備的賽點。

現在這麽多年過去了,一回神中國超級計算機的代表作已經從天河進化成了神威·太湖之光,並且通過對地震、海浪等等自然現象的精確模擬兩次獲得了戈登貝爾獎。

技術分享圖片

據稱,戈登貝爾獎是超算領域的最高獎項,在獎項評選標準中更多會考慮到超算項目的實際應用性。過去三十年中,這一獎項一直被美國和日本壟斷,直到最近兩年才被中國蟬聯。

說實在的,大多數人的印象中,中國超算經過這麽多年的發展,還實現了“零的突破”,可在IT領域中,我們似乎更多的受益於互聯網、移動終端的發展。

超級計算機既然都那麽厲害了,那為什麽我們在生活中還見不到它的身影呢?

地震?海浪?超算到底能幹嘛

擁有這種疑問的人不是少數,超級計算機這幾年開始頻繁的受到一種質疑:強大的算力究竟有什麽用?耗費這麽多科研經費和資源,是不是只是為了刷排名而沒有實用價值?

其實人們會產生這種疑問是很正常的,超級計算機從研發到生產以至於後期的運維,成本都非常之高。研發時凝聚的高精尖科研力量自不必提,產品上光是CPU/GPU就有幾千個,占地面積要達到上千平方米。使用起來更是電老虎,以天河二號為例,滿負荷運行的情況下,一天的電費就需要30萬。而大量的計算還會讓超級計算機發熱,如何降溫還成了個大問題。

技術分享圖片

所以,這麽昂貴的超級計算機都用來做什麽了呢?

以去年神威·太湖入圍戈登貝爾的幾個項目為例,他們分別是“千萬核可擴展全球大氣動力學全隱式模擬”、“高分辨率海浪數值模擬”和“鈦合金微結構演化相場模擬”。

em……沒錯,除去軍事應用外,超級計算機通常會被應用於天文、氣象、基礎物理、化學等等方面的研究。乍一聽起來,的確離人們的現實生活太遠了。畢竟現在整個世界都還沒用出現什麽突破以往物理定律的新發現,雖然能發射火箭,可普通人還不能進行一次太空旅行,至於天氣預報倒是比以前準確了不少,可也沒出現過超算成功預測並避開自然災害的情況。

用超級計算機玩網遊,是一種怎樣的體驗?

計算這件事,在大數據遍地的今天並不少見,既然超級計算機的計算能力那麽強,為什麽不把交通大數據、金融大數據這些東西都放到上面去算呢?

首先,我們要對超算能力這件事有一個正確的認識。由於超級計算機集成了大量CPU,它所擅長的也是CPU最擅長的工作——浮點運算。由於計算機使用的是二進制,所以在處理1.01這種帶小數點的小數時,只能用科學計數法來表示。這樣就避免了小數運算時的有窮性,可以對無窮大和無窮小的數值進行運算。

超級計算機最擅長的就是依靠並聯的CPU們對浮點數計算進行並行運算。可以承受其他計算機無法承受的計算峰值。一個CPU算一道題需要5個小時,用五個CPU把這道題拆解開來分別計算,就只需要一個小時。一些在普通計算機上要跑一個禮拜的項目,拿到超級計算機上可能兩分鐘就完成了。

技術分享圖片

所以現在我們知道了,超算的最大作用,是為某一種特定形式的計算節約時間。而在日常生活中,也許我們面對的問題並不是浮點數計算,比如區塊鏈應用的就是單一hash的運算;又或者像電商、遊戲大廠,它們面臨的不是高計算量,而是快速頻繁的數據並發吞吐。

而把計算任務部署到超算上,又面臨著不少的成本,除去使用費用不說,由於超算只提供編譯平臺,使用者還要自己去熟悉系統。而且目前的超級計算機雖然大多為學術機構所有,但是一想到要把自己用戶的數據拿到別人的機子上計算,總覺得有點怪怪的……

所以,超算並不是不能用來處理我們日常、商業中遇到的計算問題,而是很多本來不是超算最擅長的,綜合使用成本而言,沒有必要使用超算。

用超算訓練AI,會不會是超算民用的第一步?

不過一個好消息是,隨著深度學習的普及和發展,超算的計算能力或許可以被更多人應用起來。

眾所周知,深度學習的神經網絡層數更深,每個神經元之間互相連接,形成了一個非常復雜的結構。而每個神經元中又都需要Sigmoid函數這類復雜的數學計算,加上圖像識別、語音識別這類工作本身數據訓練集就很大,最後就集結成了一種非常可怕的計算量。

這幾年深度學習的發展,離不開計算能力的發展。英偉達之所以能靠賣GPU超過同行,最大的原因就是深度學習對計算能力的依賴。

那麽,超級計算機能不能應用在深度學習上呢?答案是肯定的。

在今年年初的德撲人機大賽中,打贏了人類牌手的Libratus就是一個在超級計算機上訓練的AI。Libratus甚至沒有搭建神經網絡,光學習了遊戲規則,利用強化學習自我博弈就超越了人類水平。

技術分享圖片

在國內,百度旗下的深度學習開源平臺PaddlePaddle也支持超算應用,甚至還入選了今年的ASC超算大賽總決賽。計算性能的超越讓一些以往不可能的事情成為可能,比如上面那個德撲的案例,不應用神經網絡、單純靠強化學習的自我博弈在沒有超算的情況下可能要花費無法想象的時間,而有了超算後,這件事情就成為了可能。

同理,一些大量數據、長時間的深度學習/深度強化學習模型訓練都可以在超計算機上完成。不過,這個領域中的超級計算機的競爭對手也不少。

首先就是芯片廠商們,英偉達、IBM、高通等等廠商都在爭先恐後的研發著適用於深度學習的芯片。早在3年前,IBM推出的TrueNorth就已經集成了54億個矽晶體管,計算能力已經接近當年的超級計算機,功耗卻只有65毫瓦。英偉達也曾推出過集成8個GPU的“超算系統”,計算能力也可以滿足大部分人的需求。

其次就是雲服務供應商,也就是上述芯片廠商的客戶們。他們不光花重金搭建起來能力超群的分布式計算系統,還貼心的和TensorFlow、caffe等等深度學習框架合作,讓算法可以無縫部署在系統上。阿裏雲在今年推出的異構計算產品最高可提供每秒75萬億次的算力,雖然比起超級計算機還差的遠,但性價比卻不低。

最後,還有一大批以研究算法為主的技術供應商。他們雖然不能提供算力,卻可以通過種種方式壓縮算法模型,讓算法模型在更低算力的硬件中也能運行。比如西雅圖的一個創業團隊,就在一直嘗試用二值化神經網絡調整模型精度,試圖在能耗和成果中找到一個平衡。

技術分享圖片

加上在深度學習上,高成本、軟件環境復雜、數據隱私擔憂等等問題仍然有待解決。綜合看來超級計算機仍然不是最好的解決方案。

讓人哭笑不得的是,很多人認為深度學習帶來的高強度計算要求會推進超級計算機的商業化、民用應用,結果反而是帶動了其他算力供應商的發展,給超級計算機造就了更多的競爭對手。

即使我們暫時還不能在生活場景中享受到超算帶來的益處,但超算在天文、物理、軍工上帶來的貢獻仍然是巨大的,如果沒有超算,在研發火箭、衛星時幾乎無法進行模擬計算。而超算帶來的快速、高精度的模擬,為這些高精尖技術的研發節約了無法估計金錢和時間成本。或許,等我們能在火星上觀光的那天,就會切實體會到超算帶來的福利吧。


被詬病不實用的超級計算機,在深度學習時代會改變嗎?