【什麼是FLOPS】
FLOPS,是“每秒所執行的浮點運算次數”(floating-point operations per second) 的縮寫。它常被用來估算電腦的執行效能,尤其是在使用到大量浮點運算的科學計算領域中。
在這裡所謂的“浮點運算”,實際上含括了所有涉及小數的運算。這類運算在某類應用軟體中常常出現,而它們也較整數運算花時間。現今大部分的處理器中,都有一個專門用來處理浮點運算的“浮點單元”(FPU)。也因此 FLOPS 所量測的,實際上就是 FPU 的執行速度。對於處理器處理浮點運算來說,而最常用來測量 FLOPS 的基準程式 (benchmark) 之一,就是 Linpack。
例如:算能公司的“基於SOPHON第三代智算晶片 BM1684”晶片。該款晶片FP32 精度算力也達到 2.2 TFlops,INT8算力可高達17.6Tops,在Winograd卷積加速下,INT8算力更提升至35.2Tops,是一顆低功耗、高效能的SoC晶片。
BM1684還內建了張量計算模組TPU,該TPU模組包含64個NPU運算單元,每個NPU包括16個EU單元,總共有1024個EU運算單元。
1TFlops=1024GFlowps,即1T=1024G。
各種FLOPS的含義:
1) 一個MFLOPS(megaFLOPS)等於每秒1百萬(=10^6)次的浮點運算;
2) 一個GFLOPS(gigaFLOPS)等於每秒10億(=10^9)次的浮點運算;
3) 一個TFLOPS(teraFLOPS)等於每秒1萬億(=10^12)次的浮點運算;
4) 一個PFLOPS(petaFLOPS)等於每秒1千億(=10^15)次的浮點運算。
【關於 Linpack】
Linpack是國際上使用最廣泛的測試高效能計算機系統浮點效能的基準測試。透過對高效能計算機採用高斯消元法求解一元 N次稠密線性代數方程組的測試,評價高效能計算機的浮點計算效能。Linpack的結果按每秒浮點運算次數(flops)表示。
很多人把用 Linpack基準測試出的最高效能指標作為衡量機器效能的標準之一。這個數字可以作為對系統峰值效能的一個修正。透過測試求解不同問題規模的實際得分,我們可以得到達到最佳效能的問題規模,而這些數字與理論峰值效能一起列在 TOP500列表中。
Linpack 測試包括三類,Linpack100、Linpack1000和HPL。Linpack100求解規模為100階的稠密線性代數方程組,它只允許採用編譯 最佳化選項進行最佳化,不得更改程式碼,甚至程式碼中的註釋也不得修改。Linpack1000要求求解1000階的線性代數方程組,達到指定的精度要求,可以在 不改變計算量的前提下做演算法和程式碼上做最佳化。HPL即High Performance Linpack,也叫高度平行計算基準測試,它對陣列大小N沒有限制,求解問題的規模可以改變,除基本演算法(計算量)不可改變外,可以採用其它任何最佳化方 法。前兩種測試執行規模較小,已不是很適合現代計算機的發展。
HPL是針對現代平行計算機提出的測試方式。使用者在不修改任意測試程式的基礎上,可 以調節問題規模大小(矩陣大小)、使用CPU數目、使用各種最佳化方法等等來執行該測試程式,以獲取最佳的效能。HPL採用高斯消元法求解線性方程組。求解 問題規模為N時,浮點運算次數為(2/3 * N^3-2*N^2)。因此,只要給出問題規模N,測得系統計算時間T,峰值=計算量(2/3 * N^3-2*N^2)/計算時間T,測試結果以浮點運算每秒(Flops)給出。HPL測試結果是TOP500排名的重要依據。
計算機計算峰值簡介:衡量計算機效能的一個重要指標就是計算峰值或者浮點計算峰值,它是指計算機每秒鐘能完成的浮點計算最大次數。包括理論浮點峰值和實測浮點峰值。理論浮點峰值是該計算機理論上能達到的每秒鐘能完成浮點 計算最大次數,它主要是由 CPU的主頻決定的。計算公式如下: 、理論浮點峰值=CPU主頻×CPU每個時鐘週期執行浮點運算次數×CPU數量。
【AI算力評估為什麼不用LINPACK】
傳統的高效能計算機評測方法和體系與當前人工智慧需求的效能並不完全一致。例如,LINPACK是一個目前被廣泛採用的高效能計算機雙精度浮點運算效能基準評測程式,國際超算Top 500榜單依據LINPACK值來進行排名,而典型的人工智慧 應用並不需要雙精度浮點數運算。大部分人工智慧訓練任務以單精度浮點數或半精度浮點數為主,推理以Int8為主。
對大規模人工智慧算力來說,制定一個簡單有效的指標和測試方法並不是一件容易的事情。首先,大部分單個人工智慧訓練任務(例如訓練一個推薦系統或者影象分類的神經網路模型)達不到全機上百張加速器卡規模的計算需求。很多人工智慧應用,即使使用全機規模,其訓練時間和準確率也可能沒有改進。其次,如果要測試規模變化的人工智慧叢集計算機,測試程式必須能夠規模可變。首先必須明確,什麼樣的主流人工智慧應用是規模可以任意調整的。最後,準確率的判定和計算是大規模人工智慧算力評測與傳統高效能計算基準評測之間的一個顯著區別。是否需要使殘差小於給定標準,是否要將準確度計入分數統計,同樣是需要明確的問題。
目前,各大企業、高校和相關組織在人工智慧效能基準測試領域已經有了很多探索,相繼開發了各類基準評測程式,比如谷歌等公司主導的MLPerf,小米公司的MobileAI bench,百度公司的DeepBench,中國人工智慧產業發展聯盟的AIIA DNN Benchmark,以及在雙精度的LINPACK基礎上改成混合精度的HPL-AI等。但是這些基準測試方案都不能很好地解決上述問題。根據MLPerf公開發表的資料,MLPerf程式在百張TPU加速卡以上規模測試下擴充套件性就會出現下滑,在千張TPU加速卡級別到達評測體系的擴充套件性瓶頸,該評測程式很難評價不同系統在該規模下人工智慧算力的差異。
MLPerf是一套衡量機器學習系統性能的權威標準,於2018年由谷歌、哈佛、斯坦福、百度等機構聯合發起成立,每年定期公佈榜單成績,它將在標準目標下訓練或推理機器學習模型的時間,作為一套系統性能的測量標準。MLPerf訓練任務包括影象分類(ResNet50)、目標物體檢測(SSD)、目標物體檢測(Mask R-CNN)、智慧推薦(DLRM)、自然語言處理(BERT)以及強化機器學習(Minigo)等。最新的1.0版本增加了兩項新的測試專案:語音識別(RNN-T)和醫學影像分割(U-Net3D)。
在Resnet50訓練中,硬體及裝置平臺的選取至關重要。其中磁碟讀取效能、CPU運算效能、記憶體到視訊記憶體的傳輸效能以及GPU運算效能對訓練速度的影響都比較大:磁碟讀取效能直接決定訓練資料供給的速度;CPU的效能、CPU到GPU的傳輸頻寬以及GPU的效能共同決定了資料前處理的速度;而訓練中的前向推理和反向傳播由GPU的效能及GPU之間的資料傳輸頻寬決定。如同工廠流水線上的幾名工人,任何一名工人的處理速度跟不上就會導致堆積,成為效能瓶頸,影響最終結果。因此這幾個重要部分不能有明顯的短板。
此時就會用Resnet50模型進行圖片分揀,得出每秒處理圖片數量作為一個性能指標。
【經典晶片的算力】
以下列出幾個有代表性硬體的每秒浮點運算次數
GFLOPS
- Intel Xeon 3.6 GHz: <1.8 GFLOPS
- Intel Pentium 4 HT 3.6Ghz: 7 GFLOPS
- Intel Core 2 Duo E4300 14 GFLOPS
- Intel Core 2 Duo E8400 24 GFLOPS
- AMD Phenom 9950: 29.05 GFLOPS
- Intel Core 2 Quad Q8200: 37 GFLOPS
- Intel Core 2 QX9770: 39.63 GFLOPS
- AMD Phenom II x4 955: 42.13 GFlopS
- Intel Core i7-965: 69.23 GFLOPS
- Intel Core i7-980 XE : 107.6 GFLOPS
- Intel Core i5-2500K @4.5GHz: 123.35 GFLOPS (w/AVX instruction set)
- IBM POWER7: 264.96GFLOPS[2]
- nVIDIA Geforce 8800 Ultra(G80-450 GPU):393.6 GFLOPS
- nVIDIA Geforce GTX 280(G200-300 GPU):720 GFLOPS
- AMD Radeon HD 3870(RV670 GPU):497 GFLOPS
- AMD Radeon HD 4870(RV770 GPU):1008 GFlops
TFLOPS
- nVIDIA Geforce GTX 580(GF110-375 GPU):2.37 TFLOPS
- AMD Radeon HD 6990(R900 GPU):4.98 TFLOPS
- nVIDA Geforce GTX 1070: 6.5 TFLOPS
- nVIDA Geforce GTX 1080: 9 TFLOPS
- nVIDA Geforce GTX 1080Ti: 10.8 TFLOPS
- nIVIDIA Titan Xp : 12.1 TFLOPS
- ASCI White:12.3TFLOPS
- AMD Vega Frontier Edition : 13.1 TFLOPS
- Earth Simulator: 35.61 TFLOPS
- Blue Gene/L: 135.5 TFLOPS
- 中國曙光Dawning 5000A: 230 TFLOPS
PFLOPS
- IBM Roadrunner:1.026 PFLOPS
- Jaguar:1.75 PFLOPS
- 天河一號:2.566 PFLOPS
- Folding@home運算平臺:4.769 PFLOPS
- BOINC運算平臺:6.282 PFLOPS (持續增加中)
- IBM Mira: 8.16 PFLOPS
- 京:10.51 PFLOPS
- IBM Sequoia:16.32 PFLOPS
- Cray Titan:17.59 PFLOPS
- 天河二號:33.86PFLOPS
- 神威·太湖之光:125PFLOPS