99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TensorFlow Lite (TFLite) 在內(nèi)存使用方面的改進

Tensorflowers ? 來源:TensorFlow ? 作者: Juhyun Lee 和 Yury ? 2020-10-21 10:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

文 /Juhyun Lee 和 Yury Pisarchyk,軟件工程師

由于資源限制嚴重,必須在苛刻的功耗要求下使用資源有限的硬件,因此在移動和嵌入式設(shè)備上進行推理頗有難度。在本文中,我們將展示 TensorFlow Lite (TFLite) 在內(nèi)存使用方面的改進,更適合在邊緣設(shè)備上運行推理。

中間張量

一般而言,神經(jīng)網(wǎng)絡(luò)可以視為一個由算子(例如 CONV_2D 或 FULLY_CONNECTED)和保存中間計算結(jié)果的張量(稱為中間張量)組成的計算圖。這些中間張量通常是預(yù)分配的,目的是減少推理延遲,但這樣做會增加內(nèi)存用量。不過,如果只是以簡單的方式實現(xiàn),那么在資源受限的環(huán)境下代價有可能很高,它會占用大量空間,有時甚至比模型本身高幾倍。例如,MobileNet v2 中的中間張量占用了 26MB 的內(nèi)存(圖 1),大約是模型本身的兩倍。

圖 1. MobileNet v2 的中間張量(上圖)及其到二維內(nèi)存空間大小的映射(下圖)。如果每個中間張量分別使用一個專用的內(nèi)存緩沖區(qū)(用 65 種不同的顏色表示),它們將占用約 26MB 的運行時內(nèi)存

好消息是,通過數(shù)據(jù)相關(guān)性分析,這些中間張量不必共存于內(nèi)存中。如此一來,我們便可以重用中間張量的內(nèi)存緩沖區(qū),從而減少推理引擎占用的總內(nèi)存。如果網(wǎng)絡(luò)呈簡單的鏈條形狀,則兩個大內(nèi)存緩沖區(qū)即夠用,因為它們可以在整個網(wǎng)絡(luò)中來回互換。然而,對于形成復(fù)雜計算圖的任意網(wǎng)絡(luò),這個NP 完備(NP-complete)資源分配問題需要一個良好的近似算法。

我們針對此問題設(shè)計了許多不同的近似算法,這些算法的表現(xiàn)取決于神經(jīng)網(wǎng)絡(luò)和內(nèi)存緩沖區(qū)的屬性,但都通過張量使用記錄。中間張量的張量使用記錄是一種輔助數(shù)據(jù)結(jié)構(gòu),其中包含有關(guān)張量的大小以及在給定的網(wǎng)絡(luò)執(zhí)行計劃中首次最后一次使用時間的信息。借助這些記錄,內(nèi)存管理器能夠在網(wǎng)絡(luò)執(zhí)行的任何時刻計算中間張量的使用情況,并優(yōu)化其運行時內(nèi)存以最大限度減少占用空間。

共享內(nèi)存緩沖區(qū)對象

在 TFLite GPU OpenGL 后端中,我們?yōu)檫@些中間張量采用 GL 紋理。這種方式有幾個有趣的限制:(a) 紋理一經(jīng)創(chuàng)建便無法修改大小,以及 (b) 在給定時間只有一個著色器程序可以獨占訪問紋理對象。在這種共享內(nèi)存緩沖區(qū)對象模式的目標是最小化對象池中創(chuàng)建的所有共享內(nèi)存緩沖區(qū)對象的大小總和。這種優(yōu)化與眾所周知的寄存器分配問題類似,但每個對象的大小可變,因此優(yōu)化起來要復(fù)雜得多。

根據(jù)前面提到的張量使用記錄,我們設(shè)計了 5 種不同的算法,如表 1 所示。除了“最小成本流”以外,它們都是貪心算法,每個算法使用不同的啟發(fā)式算法,但仍會達到或非常接近理論下限。根據(jù)網(wǎng)絡(luò)拓撲,某些算法的性能要優(yōu)于其他算法,但總體來說,GREEDY_BY_SIZE_IMPROVED 和 GREEDY_BY_BREADTH 產(chǎn)生的對象分配占用內(nèi)存最小。

理論下限
https://arxiv.org/abs/2001.03288

表 1. “共享對象”策略的內(nèi)存占用量(以 MB 為單位;最佳結(jié)果以綠色突出顯示)。前 5 行是我們的策略,后 2 行用作基準(“下限”表示最佳數(shù)的近似值,該值可能無法實現(xiàn),而“樸素”表示為每個中間張量分配專屬內(nèi)存緩沖區(qū)的情況下可能的最差數(shù))

回到我們的第一個示例,GREEDY_BY_BREADTH 在 MobileNet v2 上表現(xiàn)最佳,它利用了每個算子的寬度,即算子配置文件中所有張量的總和。圖 2,尤其是與圖 1 相比,突出了使用智能內(nèi)存管理器的優(yōu)勢。

圖 2. MobileNet v2 的中間張量(上圖)及其大小到二維內(nèi)存空間的映射(下圖)。如果中間張量共享內(nèi)存緩沖區(qū)(用 4 種不同的顏色表示),它們僅占用大約 7MB 的運行時內(nèi)存

內(nèi)存偏移量計算

對于在 CPU 上運行的 TFLite,適用于 GL 紋理的內(nèi)存緩沖區(qū)屬性不適用。因此,更常見的做法是提前分配一個大內(nèi)存空間,并通過給定偏移量訪問內(nèi)存在所有不干擾其他讀取和寫入操作的讀取器和寫入器之間共享。這種內(nèi)存偏移量計算法的目的是最大程度地減小內(nèi)存空間的大小。

我們針對此優(yōu)化問題設(shè)計了 3 種不同的算法,同時還分析了先前的研究工作(Sekiyama 等人于 2018 年提出的 Strip Packing)。與“共享對象”法類似,根據(jù)網(wǎng)絡(luò)的不同,一些算法的性能優(yōu)于其他算法,如表 2 所示。這項研究的一個收獲是:“偏移量計算”法通常比“共享對象”法占用的空間更小。因此,如果適用,應(yīng)該選擇前者而不是后者。

Strip Packing
https://arxiv.org/abs/1804.10001

表 2. “偏移量計算”策略的內(nèi)存占用量(以 MB 為單位;最佳結(jié)果以綠色突出顯示)。前 3 行是我們的策略,接下來 1 行是先前的研究,后 2 行用作基準(“下限”表示最佳數(shù)的近似值,該值可能無法實現(xiàn),而“樸素”表示為每個中間張量分配專屬內(nèi)存緩沖區(qū)的情況下可能的最差數(shù))

這些針對 CPU 和 GPU 的內(nèi)存優(yōu)化默認已隨過去幾個穩(wěn)定的 TFLite 版本一起提供,并已證明在支持更苛刻的最新模型(如 MobileBERT)方面很有優(yōu)勢。直接查看 GPU 實現(xiàn)和 CPU 實現(xiàn),可以找到更多關(guān)于實現(xiàn)的細節(jié)。

MobileBERT
https://tfhub.dev/tensorflow/lite-model/mobilebert/1/default/1

GPU 實現(xiàn)
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/delegates/gpu/common/memory_management

CPU 實現(xiàn)
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/simple_memory_arena.h

致謝

感謝 Matthias Grundmann、Jared Duke 和 Sarah Sirajuddin,特別感謝 Andrei Kulik 參加了最開始的頭腦風(fēng)暴,同時感謝 Terry Heo 完成 TFLite 的最終實現(xiàn)。

責(zé)任編輯:xj

原文標題:優(yōu)化 TensorFlow Lite 推理運行環(huán)境內(nèi)存占用

文章出處:【微信公眾號:TensorFlow】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4814

    瀏覽量

    103641
  • 張量
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    2643
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    330

    瀏覽量

    61183
  • TensorFlow Lite
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    748

原文標題:優(yōu)化 TensorFlow Lite 推理運行環(huán)境內(nèi)存占用

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    無法將Tensorflow Lite模型轉(zhuǎn)換為OpenVINO?格式怎么處理?

    Tensorflow Lite 模型轉(zhuǎn)換為 OpenVINO? 格式。 遇到的錯誤: FrontEnd API failed with OpConversionFailure:No translator found for TFLi
    發(fā)表于 06-25 08:27

    FlexBuild構(gòu)建Debian 12,在“tflite_ethosu_delegate”上構(gòu)建失敗了怎么解決?

    /workspace/tn_debian_FlexBuild 構(gòu)建/components_lsdk2412/apps/ml/tflite/tensorflow/lite/tools/cmake
    發(fā)表于 04-01 06:53

    OpenVINO?是否與TensorFlow集成支持Raspberry Pi?

    無法確定OpenVINO?是否與 TensorFlow* 集成支持 Raspberry Pi。
    發(fā)表于 03-05 08:26

    新唐科技微控制器在觸控應(yīng)用方面的優(yōu)勢

    應(yīng)用帶來創(chuàng)新解決方案。本次新聞稿將涵蓋更多產(chǎn)品系列和技術(shù)細節(jié),更全面地展示 NuMicro 微控制器在觸控應(yīng)用方面的優(yōu)勢。
    的頭像 發(fā)表于 02-27 15:52 ?739次閱讀

    海力士展示AI專用計算內(nèi)存解決方案AiMX-xPU

    在Hot Chips 2024上,海力士專注于AI加速器的標準DRAM之外的產(chǎn)品。該公司展示了其在內(nèi)存計算方面的最新進展,這次是用其AiMX-xPU和LPDDR-AiM進行LLM推理。其理念是,無需
    的頭像 發(fā)表于 01-09 16:08 ?787次閱讀
    海力士展示AI專用計算<b class='flag-5'>內(nèi)存</b>解決方案AiMX-xPU

    中科創(chuàng)達RUBIK AI Glass Lite版預(yù)計2025年實現(xiàn)量產(chǎn)

    AI眼鏡點燃了市場的熱情,成為全球關(guān)注的焦點。中科創(chuàng)達最新推出的RUBIK AI Glass Lite版解決方案,很好地滿足了當下AI眼鏡在時尚、輕量化及自然語言交互方面的市場需求。目前,RUBIK AI Glass Lite
    的頭像 發(fā)表于 12-27 10:57 ?1306次閱讀

    南亞科技與補丁科技攜手開發(fā)定制超高帶寬內(nèi)存

    Memory)的開發(fā)。 此次合作將充分融合南亞科技在10nm級DRAM技術(shù)領(lǐng)域的深厚積累,以及補丁科技在定制內(nèi)存產(chǎn)品設(shè)計方面的卓越能力。雙方將強強聯(lián)手,共同打造出針對AI與邊緣應(yīng)用需求的高附加值、高性能、低功耗的定制超高帶寬內(nèi)存
    的頭像 發(fā)表于 12-20 14:28 ?643次閱讀

    如何解決高校宿舍用電浪費及管理方面的問題?

    為解決高校宿舍用電浪費及管理方面的問題,對高校宿舍用電現(xiàn)狀進行分析,并闡述節(jié)能背景下加強高校宿舍用電管理的重要意義,在此基礎(chǔ)上,提出用電改進措施和智慧監(jiān)管平臺構(gòu)建要點,以期為相關(guān)人員提供參考。
    的頭像 發(fā)表于 11-27 15:59 ?854次閱讀
    如何解決高校宿舍用電浪費及管理<b class='flag-5'>方面的</b>問題?

    Google AI Edge Torch的特性詳解

    我們很高興地發(fā)布 Google AI Edge Torch,可將 PyTorch 編寫的模型直接轉(zhuǎn)換成 TFLite 格式 (.tflite),且有著優(yōu)異的模型覆蓋率和 CPU 性能。TFLite
    的頭像 發(fā)表于 11-06 10:48 ?945次閱讀
    Google AI Edge Torch的特性詳解

    UPS電源與EPS電源在功能和應(yīng)用方面的區(qū)別

    電子發(fā)燒友網(wǎng)站提供《UPS電源與EPS電源在功能和應(yīng)用方面的區(qū)別.pdf》資料免費下載
    發(fā)表于 10-31 10:17 ?7次下載

    快速部署TensorflowTFLITE模型在Jacinto7 Soc

    電子發(fā)燒友網(wǎng)站提供《快速部署TensorflowTFLITE模型在Jacinto7 Soc.pdf》資料免費下載
    發(fā)表于 09-27 11:41 ?0次下載
    快速部署<b class='flag-5'>Tensorflow</b>和<b class='flag-5'>TFLITE</b>模型在Jacinto7 Soc

    內(nèi)存管理的硬件結(jié)構(gòu)

    常見的內(nèi)存分配函數(shù)有malloc,mmap等,但大家有沒有想過,這些函數(shù)在內(nèi)核中是怎么實現(xiàn)的?換句話說,Linux內(nèi)核的內(nèi)存管理是怎么實現(xiàn)的?
    的頭像 發(fā)表于 09-04 14:28 ?661次閱讀
    <b class='flag-5'>內(nèi)存</b>管理的硬件結(jié)構(gòu)

    第四章:在 PC 交叉編譯 aarch64 的 tensorflow 開發(fā)環(huán)境并測試

    本文介紹了在 PC 端交叉編譯 aarch64 平臺的 tensorflow 庫而非 tensorflow lite 的心酸過程。
    的頭像 發(fā)表于 08-25 11:38 ?2620次閱讀
    第四章:在 PC 交叉編譯 aarch64 的 <b class='flag-5'>tensorflow</b> 開發(fā)環(huán)境并測試

    光通信技術(shù)在醫(yī)療健康方面的應(yīng)用

    光通信技術(shù)在醫(yī)療健康方面的應(yīng)用是一個日益受到關(guān)注且快速發(fā)展的領(lǐng)域。隨著科技的進步,光通信技術(shù)以其高速、大容量、低損耗、抗干擾等優(yōu)勢,在醫(yī)療設(shè)備的研發(fā)、診斷、治療及健康管理等方面展現(xiàn)出了巨大的潛力和價值。本文將從光通信技術(shù)的基本原理出發(fā),深入探討其在醫(yī)療健康
    的頭像 發(fā)表于 08-09 16:19 ?2060次閱讀

    FPGA在視頻編碼方面的應(yīng)用有大佬做過嗎?

    有大佬做過FPGA在視頻編碼方面的應(yīng)用嗎?有沒有芯片的推薦?或者了解的路線?
    發(fā)表于 07-29 15:37