欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

哪些安卓手機適合AI應用

錢諍諍2年前16瀏覽0評論

哪些安卓手機適合AI應用?

蘇黎世聯邦理工學院曾經開發了一款 AI Benchmark 應用,用于測試不同安卓設備和芯片的深度學習性能。近期,他們聯合谷歌、高通、華為、聯發科以及 Arm 發布了一篇 AI Benchmark 綜合測試結果的論文,對超過 10000 部移動設備進行了定量 Benchmark 測試,涵蓋了當今所有主要硬件配置,并全面比較了高通、海思、聯發科和三星芯片組的 AI 加速性能。

項目官網:http://ai-benchmark.com/

完整排行列表:http://ai-benchmark.com/ranking.html

APP 鏈接:https://play.google.com/store/apps/details?id=org.benchmark.demo

論文:AI Benchmark: Running Deep Neural Networks on Android Smartphones

論文地址:https://arxiv.org/pdf/1810.01109.pdf

摘要:近年來,手機、平板等移動設備的計算能力顯著提升,達到了臺式計算機不久之前的水平。盡管標準智能手機 app 對于手機來說已經不成問題,但還有一些任務(即運行人工智能算法)可以輕易難倒它們,甚至高端設備也不例外。本文介紹了深度學習在安卓生態系統中的現狀,介紹了可用的框架、編程模型以及在智能手機上運行人工智能算法的局限性。我們概述了四個主要移動芯片組平臺(高通、海思、聯發科和三星)上的可用硬件加速資源。此外,我們還展示了用 AI Benchmark 收集的不同移動 SoC 的真實性能結果,AI Benchmark 的測試涵蓋了當今所有主要硬件配置。

圖 1:為第三方人工智能應用程序提供潛在加速支持的移動 SoC。

AI Benchmark

AI Benchmark 是一款安卓應用程序,旨在檢測在移動平臺上運行 AI 和深度學習算法的性能和內存限制。該 Benchmark 包含由直接在安卓設備上運行的神經網絡執行的幾項計算機視覺任務。測試使用的網絡代表了當前可部署在智能手機上的最流行、最常用的架構,其詳細描述及應用程序的技術細節如下。

任務 1:目標識別/分類

神經網絡:MobileNet - V1 | CPU, NPU, DSP

圖像分辨率:224 x 224 px

ImageNet 準確率:69.7%。

這是一個非常基礎但很強大的神經網絡,能夠基于一張照片識別 1000 個不同的對象類別,準確率約為 70%。經過量化,其大小可小于 5Mb,再加上低耗內存,它可在幾乎所有現有智能手機上使用。

任務 2:目標識別/分類

神經網絡:Inception - V3 | CPU, NPU, DSP

圖像分辨率:346 x 346 px

ImageNet 準確率:78.0 %

這是對上一個網絡的進一步擴展:更加精確,但代價是規模是原來的 4 倍且對計算的要求較高。一個明顯的優勢是——它可以處理分辨率更高的圖像,這意味著更精確的識別和更小目標的檢測。

任務 3:人臉識別

神經網絡:Inception - Resnet - V1 |CPU

圖像分辨率:512x512 px

LFW 得分:0.987

這個任務無需過多介紹:根據人臉照片識別出這個人。實現方式如下:對于每個人臉圖像,神經網絡會對人臉編碼并生成一個 128 維的特征向量,該特征向量不隨縮放、移動或旋轉而改變。然后,在數據庫中檢索和此向量最匹配的特征向量(以及對應的身份),數據庫里包含數億個此類信息。

任務 4:圖像去模糊

神經網絡:SRCNN 9-5-5 | CPU, NPU, DSP

圖像分辨率:300 x 300 px

Set-5 得分 (x3):32.75 dB

還記得用手機拍出的模糊照片嗎?這個任務就是:讓圖片變得清晰。在最簡單的情況下,這種失真是通過對未損壞的圖像應用高斯模糊來建模的,然后嘗試使用神經網絡來恢復它們。在這個任務中,模糊是通過一種最原始、最簡單、最輕量級的神經網絡 SRCNN(只有 3 個卷積層)去除的。但是即便如此,它仍然顯示出相當令人滿意的結果。

任務 5:圖像超分辨率

神經網絡:VGG - 19 | CPU, NPU, DSP

圖像分辨率:192 x 192 px

Set-5 得分 (x3):33.66 dB

你有過縮放照片的經歷嗎?縮放時是不是會有失真、細節丟失或清晰度下降的問題?這項任務就是讓縮放過的照片看起來和原圖一樣。在本任務中,網絡被訓練用于完成一項等效的任務:將給定的縮小后圖像(如縮小四倍)恢復至原圖。此處我們使用一個 19 層的 VGG-19 網絡。盡管目前來看,該網絡的表現并不驚艷,也不能重建高頻部分,但它對于繪畫仍是理想的解決方案:該網絡可以讓圖像變得更加清晰、平滑。

任務 6:圖像超分辨率

神經網絡:SRGAN | 僅 CPU

圖像分辨率:512 x 512 px

Set-5 得分(x4):29.40 dB

任務同上,但完成方法略有不同:如果我們使用其他神經網絡訓練我們的神經網絡會如何?我們安排兩個網絡去完成兩個不同的任務:網絡 A 嘗試解決上面提到的超分辨率問題,網絡 B 觀察其結果,嘗試找到其中的缺陷并懲罰網絡 A。聽起來是不是很酷?實際上真的很酷:盡管該方法不盡完美,但結果往往非常驚艷。

任務 7:語義圖像分割

神經網絡:ICNet | 僅 CPU

圖像分辨率:384 x 576 px

CityScapes (mIoU):69.5 %

有沒有想過在手機上運行自動駕駛算法?這沒什么不可能,至少你可以完成一大部分任務——根據車載攝像頭拍攝的照片檢測 19 類目標(例如,車、行人、路、天空等)。在下圖中,你可以看到最近專為低性能設備設計的 ICNet 網絡的像素級分割結果(每個顏色對應每個目標類別)。

任務 8:圖像增強

神經網絡:ResNet - 12 | CPU, NPU, DSP

圖像分辨率:128 x 192 px

DPED PSNR i-得分:18.11 dB

看舊手機上的照片是不是覺得很難受?這個問題可以解決:經過恰當訓練的神經網絡可以讓舊手機(即使是 iPhone 3GS)上的照片看起來非常好、非常時髦。要做到這一點,網絡要觀察、學習如何將來自低端設備的照片優化成像用 DSLR 相機拍出來的一樣。當然,這一奇跡有一些明顯的缺陷(如:每次換新手機模型都要重新訓練網絡),但得到的圖像看起來非常好,尤其是舊設備上的照片。

任務 9:內存極限

神經網絡:SRCNN 9-5-5 | CPU, NPU, DSP

圖像分辨率:4 MP

參數:69.162

在任務 4 中我們已經認識了 SRCNN,它是最輕便、簡單的神經網絡之一,但即便如此,在處理高分辨率照片時,它也會讓大多數手機「給跪」:要處理高清照片,手機至少要有 6GB 的內存。這項測試的目的是找到你設備的極限:這個最簡易的網絡到底能處理多大的圖像?

圖 7:在相關深度學習測試中向用戶展示的結果可視化示例。

圖 8:測試結束后 AI Benchmark 給出的結果。

Benchmark 結果

我們展示了超過 10000 部移動設備的定量 Benchmark 結果。每部設備/SoC 的分數見表 2、表 3,包含每個測試/網絡對一張圖像的平均處理時間、可用 SRCNN 模型處理的最大可能圖像分辨率,以及總計 AI 分數。這些分數是通過對應設備/SoC 的所有結果去除異常值之后取平均得到的。結果細節將在下文中介紹。

神經網絡

表 1 總結了本 Benchmark 包含的所有深度學習架構的細節。表 2 與表 3 中的結果和網絡的相對處理時間以及內存消耗的理論期望高度一致。尤其是,第一個測試的量化 MobileNet CNN 相比相同的浮點模型僅需要 1/3 到 1/4 的 RAM,并且其在 CPU 上的運行速度比 Inception-V3 CNN 快了一個數量級。第三個人臉識別測試處理的是兩倍大的圖像,并且比第二個測試需要大約兩倍的推理時間,意味著 Inception-ResNet-V1 和 Inception-V3 的性能是相當的。

表 1:AI Benchmark 中用到的深度學習模型的特點總結。

在圖像到圖像的處理任務中,最高效的模型是 ICNet,因為計算主要發生在對圖像/特征圖的下采樣。相同的方法也在 SRGAN 上使用,其中原始圖像被下采樣至 128x128 像素,并在這個分辨率上處理,直到最后兩個層將其上采樣至原始尺寸。因此,盡管使用了 12 個殘差塊,其處理時間仍然是合理的,不過使用下采樣/上采樣層處理 512x512 像素的圖像使得 RAM 占用特別高。圖像增強任務中使用的 DPED 網絡包含 4 個殘差塊,在處理圖像的過程中沒有使用下采樣,因此處理時間應該是之前案例的 128x128x12/128x192x4=2 倍,正如在實驗中所展示的。

第五個測試中使用的 VGG-19 模型在所有 CNN 中是最消耗資源的,因為它由 19 個卷積層構成,在理論上其會比 DPED 慢 19/12=1.6 倍(它們的卷積層尺寸相似);但是 RAM 的消耗分布仍處于相近的范圍,因為其主要由最大卷積層的維度決定。最后,SRCNN 模型比 VGG-19 和 DPED 都快得多,并且內存消耗由于相同的原因也非常相似。SRCNN 可以處理的最高圖像像素的尺寸隨設備的總 RAM 大小而線性增長,盡管由于 NNAPI 中的一個 bug,這對于安卓 8.1 以上的手機不適用,它們一般要消耗更多的 RAM。我們應該注意目前所有的結論都是基于不支持硬件加速的結果,因為硬件加速能顯著改變測試 1、2、4、5、8 和 9 的結果。

表 2:多種安卓手機的 Benchmark 結果,完整列表在: http://ai-benchmark.com/ranking

表 3:幾個 SoC 的 Benchmark 結果,完整列表請參考鏈接: http://ai-benchmark.com/ranking_processors

智能手機和移動芯片

表 2 和表 3 的結果展示了使用 AI Benchmark 獲得的一些測試結果,其中分別包括安卓智能手機和移動端芯片。完整的列表可以在項目網站上查看。在具體討論測試細節之前,我們首先要提到幾個 Android NNAPI Bugs,這些漏洞同樣影響了表中的一些結果。首先是 Android 8.1 默認 NNAPI 驅動的漏洞,卷積運算在禁用這些驅動的情況下要比在啟用時性能快兩倍。因此在為表 3 中展示的不同 SoC 計算平均 runtime 時,我們忽略了手機測試結果可能存在的這一問題。

雖然使用 Android 8.1 和 Kirin 970 芯片的華為手機使用的是他們自己定制的 NNAPI 實現,它還是會遇到另外不同的 Bug:在長待機后,麒麟的 NPU 時鐘速度會下降,并且在重啟之前不會恢復。兩個表中的結果都是在華為設備剛啟動時測試的。最后因為 3.2 節中描述的 ByteBuffer 問題,在圖像到圖像的測試中使用 Android NNAPI 的 RAM 消耗要高了兩倍,它所造成的后果可以在最后的內存測試中觀察到。

我們在下面總結了每個 Soc 制造商的測試結果,并描述了市場上對應芯片的性能。

高通:驍龍芯片(Snapdragon)現在能為量化神經網絡提供硬件加速(當高通的 NNAPI 驅動存在時),不過現有的商業設備并不支持浮點模型。包含這些驅動的第一代智能手機是配備驍龍 845 SoC 和最新 Android P 固件的 OnePlus 6。它可以在 Hexagon DSP 上 25ms 內運行量化 MobileNet 模型,這比對應 CPU 速度(60-65ms)快得多。類似的性能在包含相同 Hexagon 685 DSP 的驍龍 670/710 芯片中獲得。帶有 Hexagon 682 的驍龍 835 和帶有 Hexagon 680 的驍龍 636/660/820/821 都采用相同的高通 68x DSP 家族,應該具有更長的運行時。

雖然目前高通 NNAPI 驅動還沒有所支持加速的浮點模型官方測試,但驍龍 625 SoC 相比于基于 CPU 的執行能實現兩倍的加速,其中驍龍 625 SoC 可能使用集成 Adreno 506 GPU 驅動程序的 Beta 版。雖然 Adreno 506 的性能約為 130 GFLOPs,這意味著驍龍 845 SoC 中的 Adreno 630(727 GFLOPs)能潛在地提供 3 到 4 倍的加速,但具體的數字可能變化很大。

至于與矩陣/深度學習計算相關的 CPU 性能,目前最強大的高通核心是驍龍 845 SoC 中的 Kryo 385 Gold。與高通 835 的 Kryo 280 核心相比,它展現出大約 30%的提升。有趣的是,與帶有定制化非 Cortex 的驍龍 820 SoC 及內部的第一代 Kryo 相比,Kryo 280 表現出相似或稍微降低的性能(每 GHz)。盡管第一代 Kryo 在設計上只有四個計算核心,但仍然比帶有更新 Kryo 260 核心的驍龍 636/660 快一些。以前在 2013 年由驍龍 800/801 所代表的 Krait 微架構仍然展現出很有競爭力的結果,性能優于 2xx、4xx 和 6xx 系列的大多數結果,甚至緊隨基于 Cortex-A57 微架構的 810 和 808 芯片的測試結果。我們還注意到定制的高通 CPU 核心通常比默認 ARM Cortex 架構表現出更好的結果。

華為:盡管海思 SoC 的 CPU 性能不如高通的那么令人印象深刻,其集成到麒麟 970 的 NPU 為浮點深度學習模型提供了巨大的加速效果。尤其是,根據任務類型,對比它的 CPU 它可以提供 7-21 倍加速的推理,對比總體最優的 CPU 結果它可以提供 4-7 倍的更優性能。在支持 GPU 加速的測試 2、4、5、8 中,它分別需要平均 132、274、240 和 193ms 的時間來處理一張圖像。該 NPU 僅有的主要缺點是缺乏對量化模型的加速支持。在第一個測試中,所有的計算都是在 CPU 上運行的,每張圖像的平均處理時間是 160ms,這相比驍龍 845 啟用 DSP 時的對應結果要高得多。盡管這個問題可以通過在麒麟的 NNAPI 驅動程序中實現量化模式得到解決,目前這項功能仍處于開發階段。

至于其它的海思芯片組,目前都不提供 AI 應用的加速,因此所有的計算都是在 CPU 上進行的。由于所有的海思的 SoC 都是基于標準的 Arm Cortex 核心,它們的性能和其它有相同 Cortex 架構的芯片組也很相似。

聯發科:Helio P60 是首個能利用 NNAPI 驅動程序以加速浮點和量化模型的芯片組。量化網絡在其集成的 APU 上運行,并展示了在第一個測試中處理一張圖像時和 Hexagon 685 DSP—21ms 相似的性能。浮點網絡在 Mali-G72 MP3 GPU 上執行,并對比 CPU 提供了 2-5 倍的加速,相比總體的最優 CPU 結果其運行時要快 1.5-2 倍。我們應該注意所有這些數值都是在 MediaTek 的開發者手機上獲得的結果,而僅有的基于 Helio P60 和 NNAPI 驅動程序的市場手機(vivo V11)得到了稍微差一點的結果。

其它聯發科芯片組目前不支持 AI 應用的加速。它們是在標準 Arm Cortex 設計的 CPU 核心上運行的。

三星:截至本文寫作時,三星的所有 SoC 都不能提供第三方 AI 應用的加速:所有配置這些芯片組的手機使用了默認的 NNAPI 驅動程序。由于最新的 Exynos 9810 SoC 擁有相同的 Mali-G72 顯卡。正如 MediaTek P60 芯片組一樣(但其有 12 個核心而不是 3 個),如果 Arm NN 庫被三星整合到 NNAPI 驅動程序中,我們預期對浮點神經網絡會有 3-4 的額外加速因子。由于所有近期的 Samsung Exynos 處理器使用了 Arm Mali GPU,它們也適用同樣的結論。

視任務類型而定,三星的 Mongoose M3 CPU 核心對比驍龍 845 的定制 Kryo 385 核心可以展示顯著更好或者更差的性能,但它們的總體性能是相當的。Mongoose M2 微架構相對于第一個 M1 版本有 50% 的顯著提升,同時第二代(M2)和第三代(M3)的性能很相似。最新的 Exynos 8895 和 9810 SoCs 的一個值得注意的問題和它們的集成能耗管理系統(可調整 CPU 性能)相關。它導致了大多數設備的非常不穩定的結果:尤其是,幾個之后在相同的 Galaxy S9 手機上運行的 Benchmark(有 10 分鐘的間隔,「高性能」模式)都展示了總體分數的 50% 的變動,從不同設備獲得的結果甚至有更大的變動(例如,第七個測試的 200-800ms 的處理時間)。目前,尚未有對不同性能模式的外部控制手段,因為它們是基于內部邏輯而自動選取的。

其它:我們還獲得了在其它不常用(如 Spreadtrum)或被制造商停產(例如,Intel Atom、Nvidia Tegra、TI OMAP)的芯片組上的測試結果。其中,在支持 CUDA 和專用于深度神經網絡的 cuDNN GPU 加速庫的 Nvidia Tegra 平臺上測試 AI 和深度學習時我們得到了非常有趣的結果。不幸的是,自 2015 年以來沒有新的設備使用過 Nvidia SoC,而已有的設備已經停產,并且不會再獲得加速機器學習移動端框架的(NNAPI)驅動程序。

討論

目前,對機器學習在移動設備上的軟硬件支持發展得非常快,每隔幾個月就有公司宣布里程碑式的技術。這些技術當然帶來了新的可能性和更高的性能,但目前缺乏標準化要求和公開規范,造成無法確保對技術優劣勢進行客觀評估。下文介紹了我們通過 NNAPI 驅動程序使用移動機器學習框架和硬件加速芯片組的體驗。

目前,開始在安卓設備上使用深度學習的最簡單方式是使用成熟、相對穩定的 TensorFlow Mobile 框架。該框架出現于兩年前,基本上解決了所有主要問題,且人們可在多個專門網站上找到關于細小問題的大量信息。如果硬件加速是關鍵問題,那么 TensorFlow Lite 仍然可以作為選擇,但是我們不推薦使用它進行比用 MobileNet 或 Inception CNN 執行圖像分類更復雜的任務,因為在移動平臺上使用不標準的網絡架構可能出現偶發問題。我們還提到從 TF Mobile 到 TF Lite 的遷移相對簡單,因為它們使用的安卓編程接口很相似(最大的區別在于 TF Lite 將預訓練模型轉換成 .tflite,而不是 .pb 格式),我們可以在 TF Lite 得到更好支持的情況下再進行遷移。如果某個應用針對某些特定設備或 SoC,那么對應的專用 SDK 也可以使用,盡管這種情況下開發可能不那么容易、簡便。至于 Caffe2 Mobile 和其他不那么廣泛使用的框架,目前它們的社區還比較小,這意味著網絡上幾乎沒什么教程和問題描述,因此所有出現的問題可能需要通過在對應的 GitHub repo 中創建新的 issue 來解決。

對安卓設備上的 AI 算法提供硬件支持目前是一個更有爭議的話題。截至本文寫作時,常規的浮點神經網絡的最快運行時屬于裝載了麒麟 970 的華為手機,遠遠領先于市場平均水平。但是,我們仍要客觀地看待未來的發展,我們的分析表明幾乎所有 SoC 制造商都有潛力使用新的芯片組達到類似的結果。下一年年初情況將逐漸明晰,那時裝載有麒麟 980、MediaTek P80 和新一代高通、Samsung Exynos premium SoC 的設備將上市。除了性能,我們還考察了它們的能耗,因為耗電過快會限制它們對一些標準相機內置處理技術的使用。

我們想解決的最后一個問題是量化網絡的使用。它們的目前應用很受限,因為目前仍然沒有用于量化網絡的可靠、標準工具,即使是對簡單的圖像分類任務,更不用說復雜的任務了。目前,我們期待該領域的兩種不同開發方式。第一種,量化問題將在某個時刻得到解決,部署在智能手機上的大多數神經網絡都能被量化。第二種,支持浮點網絡的特定 NPU 變得更加強大、高效,從而不再需要量化。當然我們沒辦法輕松地預測未來,但我們仍將在 AI benchmark 中使用量化和浮點模型的混合(浮點模型占主導),不過未來的版本中對應的比率可能會發生很大改變。

目前有很多重要的開放性問題可能會在出現新的機器學習相關軟硬件和新的專用芯片后得到解決,因此我們計劃出版介紹移動設備 AI 加速實際情況的常規 benchmark 報告,該報告也會涉及機器學習領域的改變以及 AI benchmark 所做出的相應調整。AI Benchmark 的最新測試結果和實際測試描述將在項目網站上進行每月更新。

AI轉css用處,哪些安卓手機適合AI應用