當前位置:
首頁 > 科技 > 每天成千上萬的圖片,怎麼學?

每天成千上萬的圖片,怎麼學?

CIOPeter

Peter,德資知名汽車零部件製造企業大中華區CIO,手下員工幾十人。

以德企人特有的嚴謹細膩,堅持對所有技術細節的追求。

技術宅小D

小D,技術宅一枚,好研究,喜歡跟客戶聊最熱、最火的前沿技術。

作為小D 的客戶,Peter的「完美主義」,常常讓他哭笑不得。

這不,Peter的電話又來了……

今天,Peter來電的目的是就公司最近準備上馬的AI項目,跟小D諮詢基礎架構方面的解決方案。

談話一如既往的簡單直接,Peter一上來就表明了來意——

Peter的公司計劃實施圖像識別項目,對產線上高速攝影機拍攝下來的海量產品圖片進行分析。期望基於先進的AI技術實現自動識別殘次品,並提高良品率,甚至針對突發產品質量問題進行智能的應急反應,從而實現智能的產品質量管理。

Peter是項目組成員之一,負責其中的基礎架構部分。所以,他直截了當地拋出了一串的問題……

>>> The First <<<

問:關於AI圖像識別項目基礎架構方面,有什麼好的建議嗎?

答:一個AI項目一般包括三個關鍵部分——演算法、算力和足夠的數據。基礎架構可解決算力方面的問題,在演算法和數據方面貴公司是否已經做好了充分的準備?

>>> The Second <<<

問:我們產線上安裝了多個高速攝影機,每天都有成千上萬張採集圖片,這些會作為我們深度學習訓練、推理的主要數據來源。演算法方面由項目組其他同事負責,我今天主要想了解的是,在算力方面我們能做哪些方面的優化。聽說採用GPU加速可以大幅提高深度學習計算能力?

答:是的,深度學習技術飛速發展很大程度上受益於GPU加速的應用。之前採用多個CPU計算一個結果,經常要數天甚至數周,而GPU輔助加速可以把這個計算周期縮短到數小時。

CPU和GPU各有所長。如果把CPU比作一個高深的數學系老教授——可以做複雜的算術運算,GPU就相當於一大群(數千個)小學生——做加減乘除。如果讓他們分別完成1萬道小學算術題,速度上老教授肯定干不過數千個小學生。在深度學習場景中,通常需要計算的都是海量的小學算術題。

每天成千上萬的圖片,怎麼學?

>>> The Third <<<

問:有道理,這個GPU怎麼配比較好呢?我聽說有可以配置8GPU的伺服器?

答:GPU是好東西,不過單個節點內部GPU數量是不是越多越好呢?

在GPU伺服器市場,當前主流設備形態包括雙卡伺服器、3卡伺服器、4卡伺服器、8卡伺服器……到底怎麼選比較好呢?要想回答這個問題其實也不難,無非從兩個方面入手:

1、硬體架構設計層面考慮;

2、軟體設計層面需求考慮。

從硬體架構層面來說,首先得考慮異構的CPU/GPU以及多個GPU/GPU之間如何互聯。當前CPU/GPU主要通過PCIe/NVLINK兩種方式連接。而業界主流X86體系則採用的是GPU/GPU間通過NVLINK互聯,CPU/GPU之間仍然通過PCIe介面交互。當前最新的Intel Xeon Skylake CPU微架構中,每個CPU內置48個PCIe Lane。假如不考慮其它系統匯流排開銷的話,能夠提供用於連接GPU的帶寬是3*X16 Lane(每個GPU卡需要X16 Lane),考慮CPU/GPU之間做無阻塞通訊,最多也只能支持1:3的配比(1:2才能真正支持無阻塞)。另外從NVLINK互聯框架看,超過4個GPU之間做互聯的話,也無法保證所有GPU節點全連接交互。

每天成千上萬的圖片,怎麼學?

目前主流的深度學習框架均利用GPU性能上的優勢,把大量計算任務卸載到GPU上做處理。但是,計算中涉及大量的矩陣參數交換,仍然需要CPU來協調處理,對CPU性能壓力並不小。如果CPU/GPU配比太高,很可能CPU的計算性能以及通路帶寬將成為下一個瓶頸。

從軟體架構層面來講,目前主流的深度學習訓練很多採用單機訓練的方式做。但是,單機Scale Up空間總是有限的。無論單台伺服器支持GPU的數目是多少,畢竟是有限的,隨著訓練數據量的增長、分類模型的複雜度,神經網路訓練需要的計算性能不斷提高,最終還是會走上多機多卡的Scale Out擴展集群訓練方式。計算技術不斷革新、快閃記憶體推動、RDMA技術/低延遲網路等等,也為集群訓練掃清了各種障礙。包括Google、Facebook、Nvidia、Mellanox、Dell等眾多公司,都已經投入到集群GPU訓練方案的研究之中。目前,Facebook已經完成64*GPU集群加速測試,Google已經完成16/32/50/100*GPU集群加速測試。Facebook 64卡GPU集群訓練,性能加速57倍;Google在32卡GPU集群訓練,性能極速30.6倍。越來越多的主流深度學習框架,已提供對多機多卡分散式訓練的支持包括TensorFlow、Caffe2、CNTK、MXNet、DL4j、PaddlePaddle(主流框架,目前大概只有Caffe.不支持)。

每天成千上萬的圖片,怎麼學?

上圖是Dell EMC US HPC Lab基於8台C4140伺服器(支持1:1~1:4的CPU/GPU配比),每台配置4塊V100,32卡集群做圖像分類深度學習加速訓練。節點間互聯基於Mellanox EDR交換網路。在MXNet框架下實測,隨著節點數的增加,性能得到準線性的提升(基本媲美單機ScaleUp)。

>>> The Fourth <<<

問:聽起來挺有道理的,貴司支持的GPU伺服器型號都有哪些呢?

答:先秀張圖給您看下▼

每天成千上萬的圖片,怎麼學?

針對AI深度學習領域,我們有一整套的參考架構體系,您可以根據項目階段、規模選擇所需的配置。初始階段,可以選擇單節點的R740/T640做技術驗證。中後期大規模應用階段,可考慮用專為GPU加速設計的C4140組建高性能群集。一個IT基礎架構是否合理,無非考慮兩點,其一是滿足當前應用需求,其二是能否順應技術發展趨勢,做到未來擴展方面的前瞻性。選擇單機多卡,多機多卡方式都不是絕對的。還要結合企業自身實際情況,綜合考慮各個因素。滿足當前需求很容易做到,而企業IT決策者通常會更關注於未來發展方向把握上,以及為未來可能的變化預留足夠的靈活空間。

>>> The Last <<<

最後,小D還不忘藉機調侃了一下嚴謹的Peter,隨即接下去和Peter一起研究那些成千上萬張圖片如何存放的問題……

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 至頂網 的精彩文章:

路透社:微軟將旗下人工智慧技術用於零售結賬
HPE與Pure Storage全快閃記憶體陣列市場份額下降

TAG:至頂網 |