<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Forward DL深度學(xué)習(xí)推理加速框架

          聯(lián)合創(chuàng)作 · 2023-09-26 06:24

          Forward 是一款騰訊研發(fā)并開源的 GPU 高性能推理加速框架。它提出了一種解析方案,可直接加載主流框架模型(Tensorflow / PyTorch / Keras / ONNX)轉(zhuǎn)換成 TensorRT 推理加速引擎,幫助用戶節(jié)省中間繁雜的模型轉(zhuǎn)換或網(wǎng)絡(luò)構(gòu)建步驟。

          相對(duì)于直接使用 TensorRT,F(xiàn)orward 更易用以及更容易擴(kuò)展支持更多模型和算子。目前,F(xiàn)orward 除了覆蓋支持主流的 CV,NLP 及推薦領(lǐng)域的深度學(xué)習(xí)模型外,還支持一些諸如 BERT,F(xiàn)aceSwap,StyleTransfer 這類高級(jí)模型。

          特性

          • 模型性能優(yōu)化高:基于 TensorRT API 開發(fā)網(wǎng)絡(luò)層級(jí)的支持,保證對(duì)于通用網(wǎng)絡(luò)層級(jí)的推理性能優(yōu)化處于最優(yōu)級(jí)別;
          • 模型支持范圍廣:除了通用的 CV,NLP,及推薦類模型,還支持一些諸如 BERT,F(xiàn)aceSwap,StyleTransfer 這類高級(jí)模型;
          • 多種推理模式:支持 FLOAT / HALF / INT8 推理模式;
          • 接口簡(jiǎn)單易用:直接導(dǎo)入已訓(xùn)練好的 Tensorflow(.pb) / PyTorch(.pth) / Keras(.h5) / ONNX(.onnx) 模型文件,隱式轉(zhuǎn)換為高性能的推理 Engine 進(jìn)行推理加速;
          • 支持自研擴(kuò)展:可根據(jù)業(yè)務(wù)模型擴(kuò)展支持自定義網(wǎng)絡(luò)層級(jí);
          • 支持 C++ 和 Python 接口調(diào)用。

          快速上手 Forward

          環(huán)境依賴

          • NVIDIA CUDA >= 10.0, CuDNN >= 7 (推薦 CUDA 10.2 以上)
          • TensorRT >= 7.0.0.11 (推薦 TensorRT-7.2.1.6)
          • CMake >= 3.12.2
          • GCC >= 5.4.0, ld >= 2.26.1
          • PyTorch >= 1.7.0
          • TensorFlow >= 1.15.0 (若使用 Linux 操作系統(tǒng),需額外下載 Tensorflow 1.15.0,并將解壓出來(lái)的 .so 文件拷貝至 Forward/source/third_party/tensorflow/lib 目錄下)
          • Keras HDF5 (從 Forward/source/third_party/hdf5 源碼構(gòu)建)

          項(xiàng)目構(gòu)建

          使用 CMake 進(jìn)行構(gòu)建生成 Makefiles 或者 Visual Studio 項(xiàng)目。根據(jù)使用目的,F(xiàn)orward 可構(gòu)建成適用于不同框架的庫(kù),如 Fwd-Torch、Fwd-Python-Torch、Fwd-Tf、Fwd-Python-Tf、Fwd-Keras、Fwd-Python-Keras、Fwd-Onnx 和 Fwd-Python-Onnx。

          以 Linux 平臺(tái)構(gòu)建 Fwd-Tf 為例,

          步驟一:克隆項(xiàng)目

          1 git clone https://github.com/Tencent/Forward.git

          步驟二:下載 Tensorflow 1.15.0(僅在 Linux 平臺(tái)使用 Tensorflow 框架推理時(shí)需要)

          1 cd Forward/source/third_party/tensorflow/
          2 wget https://github.com/neargye-forks/tensorflow/releases/download/v1.15.0/libtensorflow-cpu-linux-x86_64-1.15.0.tar.gz
          3 tar -xvf libtensorflow-gpu-linux-x86_64-1.15.0.tar.gz

          步驟三:創(chuàng)建 build 文件夾

          1 cd ~/Forward/
          2 rm -rf build
          3 mkdir -p build
          4 cd build/

          步驟四:使用 cmake 生成構(gòu)建關(guān)系,需指定 TensorRT_ROOT 安裝路徑

          1 cmake ..  -DTensorRT_ROOT=<path_to_TensorRT> -DENABLE_TENSORFLOW=ON -DENABLE_UNIT_TESTS=ON

          步驟五:使用 make 構(gòu)建項(xiàng)目

          1 make -j

          步驟六:運(yùn)行 unit_test 驗(yàn)證項(xiàng)目是否構(gòu)建成功

          cd bin/
          ./unit_test --gtest_filter=TestTfNodes.*
          
          # 出現(xiàn)已下提示表示項(xiàng)目構(gòu)建成
          # [       OK ] TestTfNodes.ZeroPadding (347 ms)
          # [----------] 22 tests from TestTfNodes (17555 ms total)
          
          # [----------] Global test environment tear-down
          # [==========] 22 tests from 1 test case ran. (17555 ms total)
          # [  PASSED  ] 22 tests.

          Logging 日志

          Forward 使用 easylogging++ 作為日志功能,并使用 forward_log.conf 作為日志配置文件。

          • 若工作目錄中存在 forward_log.conf 文件,F(xiàn)orward 將使用該配置文件,更多內(nèi)容可參考 Using-configuration-file;
          • 若工作目錄中不存在 forward_log.conf 文件,F(xiàn)orward 將使用默認(rèn)配置,并將日志記錄到 logs/myeasylog.log 。

          forward_log.conf 文件配置樣例

          * GLOBAL:
            FORMAT               =  "[%level] %datetime %fbase(%line): %msg"
            FILENAME             =  "Forward.log"
            ENABLED              =  true
            TO_FILE              =  true
            TO_STANDARD_OUTPUT   =  true
            PERFORMANCE_TRACKING =  true
            MAX_LOG_FILE_SIZE    =  2097152 ## 2MB - Comment starts with two hashes (##)
            LOG_FLUSH_THRESHOLD  =  100 ## Flush after every 100 logs

          模型和算子支持

          當(dāng)前 Forward 的模型與算子支持如下所示,如有需要添加更多支持的,歡迎聯(lián)系添加 Issue 反饋。如需要自行擴(kuò)展添加支持的,可參考 開源共建:擴(kuò)展添加支持操作的流程

          模型

          算子

          參考資料

          1. 推理流程構(gòu)建過(guò)程
          2. 推理引擎使用方法
          3. 工具與測(cè)試
          4. 常見(jiàn)問(wèn)題
          瀏覽 52
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  影音先锋午夜性爱av | 性爱激情小说视频 | 人人人人人人草 | 肏屄免费 | 欧美 自拍 视频 |