今年我應邀參加兩家運算平臺廠商的活動,分別是上半年由Intel舉辦的Data-Centric Innovation Summit,以及這個月(11月)Nvidia在美國超級電腦大會期間,所召開的新聞發表會,話題除了圍繞在他們現有的各式加速運算硬體晶片,諸如CPU、GPU、FPGA、NNP(神經網路處理器),介紹目前產品與技術應用架構的最新進展,更重要的部份,是揭露他們對於基礎軟體使用環境的布局。

以Intel而言,他們先前提出了一套AI產品組合架構,其中的程式庫、框架、開發工具,都是他們負責推動的部份。單是程式庫的部份,包含了DAAL、MKL、MKL-DNN、MLSL;在框架上,則是TensorFlow、MXNet、Caffe、Torch、Theano、CNTK、Nervana,以及Spark的MLlib、BigDL。

而在開發工具的部份,有Deep Learning Deployment Toolkit、Computer Vision SDK、Movidius Neural Compute Stick SDK等。

而在FPGA的整合應用上,Intel則是提供Acceleration Stack for Intel Xeon CPU with FPGAs,從軟體的角度來看,可區分為加速環境、開發工具、加速程式庫等三大類。

由此可知,相關的軟體數量眾多。Intel在近期Data-Centric Innovation Summit,又提初一套比較簡化的軟體堆疊架構,分為底層環境、程式庫、工具包等三個層級,對應程式庫開發者、資料科學家、應用程式開發者等三種角色的需求。

就底層環境為例,囊括分析與機器學習、深度學習的基本指令,以及深度學習的圖學編譯器,前者納入DAAL、MKL-DNN、cIDNN、Python,後者則是深度學習網路模型編譯器nGraph Compilier。

而在程式庫的層級當中,Intel提供機器學習的程式庫,以及多種常見的深度學習框架。到了更上層的工具包,則是以OpenVINO Toolkit和Movidius SDK為主。

至於Nvidia,為了因應影像處理、遊戲開發、高效能運算、人工智慧等不同用途,也陸續發展出許多軟體套件,包含GPU加速程式庫、程式語言編譯器、開發工具、Web Services,然而,近年來,他們除了彙整為工具包、軟體開發套件,像是CUDA Toolkit、Deep Learning Toolkit,也積極運用容器映像封裝的技術,提供更便於開發人員部署與運用的執行環境,甚至,在結合雲端服務之後,逐漸發展出可橫跨自建伺服器到公有雲的全新軟體生態系統。

例如,Nvidia在2016年推出的GPU最佳化容器映像,稱為Nvidia-Docker;而在同年發表的AI整合應用設備DGX-1當中,所搭載的軟體堆疊架構Deep Learning Software Stack,更是一口氣統合了GPU驅動程式、容器工具、深度學習GPU訓練軟體、深度學習框架,而提供一套能夠快速建置的高度整合AI開發環境。

2017年正式上線的雲端容器映像服務Nvidia GPU Cloud(NGC),又把該公司供應加速軟體的方式擴展到新的境界。起初,Nvidia先針對深度學習、高效能運算應用系統、高效能運算影像處理等三大領域,提供不同的軟體容器映像;到了今年下半,NGC目前可支援6大類應用系統需求,包含高效能運算、深度學習、機器學習、AI推論、影像處理、IT基礎設施,總共提供四十多種容器映像。

值得注意的是,針對企業大規模資料分析與機器學習的GPU加速應用,Nvidia在10月舉行的GTC歐洲大會,推出名為RAPIDS的開放原始碼軟體套件,運用的軟體將包括Python、Apache Arrow、Apache Spark,而且有大型企業和軟體廠商表態支持,像是Walmart、HPE、IBM、Oracle、SAP、SAS等,後勢可期。

專欄作者

熱門新聞

Advertisement