精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

TensorRT怎么在多個GPU中指定推理設備

OpenCV學堂 ? 來源:OpenCV學堂 ? 2023-08-03 14:10 ? 次閱讀

前言

說實話,之前我在筆記本上都一直都是只有一塊N卡,所以沒有過多關注過這個問題。然而昨天有個人問我,TensorRT怎么在多個GPU中指定模型推理GPU設備?我查了一下,發現官方有幾個不同的解決方案,個人總結了一下,主要的做法有兩種。

01配置環境變量支持

該方法的好處是不需要修改代碼,通過配置環境變量就可以實現指定的GPU運行,缺點是缺乏靈活性,特別是想切換不同GPU實現模型推理的時候,這個方法就弊端就比較明顯。

CUDA編程中支持的指定GPU設備的環境變量為:

CUDA_VISIBLE_DEVICES
通過該系統的環境變量可以設置指定的單個GPU編號或者多個GPU編號合集,然后在程序測試與調試環境中使用。通過這種方式指定GPU編號執行模型推理,就無需修改代碼,實現在單一指定的GPU上運行TensorRT推理程序。

02代碼指定GPU設備執行

一臺機器上可能有多個GPU設備,通過CUDA編程可以查詢機器上所有的GPU設備,查詢這些設備的屬性以及決定使用哪個GPU設備作為當前設備。

cudaGetDeviceCount
該函數可以查詢到當前機器上GPU設備數目,然后遍歷查詢每個GPU設備的屬性。官方教程給出的代碼如下:
//查詢設備數目
intdeviceCount;
cudaGetDeviceCount(&deviceCount);

//遍歷設備編號信息
intdevice;
for(device=0;device
根據查詢的設備數目,GPU編號從0開始,默認情況下當前使用的設備就是編號為0的GPU設備,通過函數cudaSetDevice()可以修改運行時使用GPU設備,在初始化TensorRT之前,先通過cudaSetDevice()函數修改默認的當前設備,然后再初始化就可以把TensorRT的模型綁定到指定編號的GPU設備上推理。以我的筆記本上為例,設置當前的GPU設備,然后初始化TensorRT代碼如下:
// 設置當前設備為GPU 0
cudaSetDevice(0);// 初始化TensorRT
this->runtime=createInferRuntime(gLogger);
assert(this->runtime!=nullptr);
this->engine=runtime->deserializeCudaEngine(trtModelStream,size);
assert(this->engine!=nullptr);
this->context=engine->createExecutionContext();
assert(this->context!=nullptr);
delete[]trtModelStream;

// do more thing here// insert query input and output layers information
//創建GPU顯存輸入/輸出緩沖區
std::cout<getNbBindings()<input_h*this->input_w*3*sizeof(float));
cudaMalloc(&buffers[2],this->output_h*this->output_w*sizeof(float));
cudaMalloc(&buffers[1],32*25600*sizeof(float));

//創建臨時緩存輸出
prob.resize(output_h*output_w);
mprob.resize(32*25600);

//創建cuda流
cudaStreamCreate(&stream);
在多個GPU設備上執行多個模型推理的初始化代碼如下:
//初始化時間標記
cudaEvent_tstart,stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);
cudaEventRecord(start,0);

//查詢設備數目
intdeviceCount;
cudaGetDeviceCount(&deviceCount);

//遍歷設備編號信息
intdevice;
for(device=0;device

關于延時加載

TensorRT8.6支持CUDA Lazy Loading(延時加載),開發者文檔上說這種方式可以有效降低GPU顯存與內存使用,加速初始化,節省模型初始化時間,可以通過環境變量配置實現延時加載支持,相關環境變量為:

CUDA_MODULE_LOADING=LAZY

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4700

    瀏覽量

    128697
  • 編程
    +關注

    關注

    88

    文章

    3592

    瀏覽量

    93594
  • 模型
    +關注

    關注

    1

    文章

    3171

    瀏覽量

    48711
  • 調試環境
    +關注

    關注

    0

    文章

    4

    瀏覽量

    6005

原文標題:TensorRT | 在多個GPU中指定推理設備

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何在GPU上使用TensorRT部署深度學習應用程序

    本文未涉及的一個主題是 TensorRT 中以 INT8 精度精確地執行推理TensorRT 自動轉換 FP32 網絡以進行部署,同時降低精度損失。為了實現這一目標,
    的頭像 發表于 04-01 15:19 ?4897次閱讀
    如何在<b class='flag-5'>GPU</b>上使用<b class='flag-5'>TensorRT</b>部署深度學習應用程序

    NVIDIA 首個AI推理基準測試中大放異彩

    TensorRT軟件的成熟程度。它們讓用戶能夠更加輕松地將所有的NVIDIA GPU應用于數據中心、邊緣等領域。MLPerf定義了五項推理基準,涵蓋了三個現有的人工智能應用:圖像分類、目標檢測和翻譯。每項基準
    發表于 11-08 19:44

    TensorFlow指定CPU和GPU設備操作詳解

    TensorFlow 支持 CPU 和 GPU。它也支持分布式計算。可以一個或多個計算機系統的多個設備上使用 TensorFlow。Ten
    發表于 07-28 14:33

    充分利用Arm NN進行GPU推理

    Arm擁有跨所有處理器的計算IP。而且,無論您要在GPU,CPU還是NPU上進行ML推理,都可以一個通用框架下使用它們:Arm NN。Arm NN是適用于CPU,GPU和NPU的開源
    發表于 04-11 17:33

    如何判斷推理何時由GPU或NPUiMX8MPlus上運行?

    當我為 TFLite 模型運行基準測試時,有一個選項 --nnapi=true我如何知道 GPU 和 NPU 何時進行推理?謝謝
    發表于 03-20 06:10

    Keil中指定代碼段與常量Flash中地址方法

    圖 分配代碼文件到Flash指定位置方法 .sct文件中指定代碼輸出文件(.o格式)到Flash指定位置,如下圖 BootMain
    發表于 11-20 14:36 ?20次下載
    Keil<b class='flag-5'>中指定</b>代碼段與常量<b class='flag-5'>在</b>Flash中地址方法

    NVIDIA TensorRT 8.2將推理速度提高6倍

      TensorRT 是一款高性能的深度學習推理優化器和運行時,為人工智能應用程序提供低延遲、高吞吐量推理TensorRT 用于醫療、汽車、制造、互聯網/電信服務、金融服務和能源等
    的頭像 發表于 03-31 17:10 ?1711次閱讀

    如何實現高效的部署醫療影像推理

    一個完整的醫療影像推理流程一般包含數據的前處理、AI 推理以及數據后處理這幾部分。通常情況下,我們可以通過 TensorRT, TensorFlow 或者 PyTorch 這些框架來實現 GP
    的頭像 發表于 04-09 08:18 ?1308次閱讀

    NVIDIA TensorRT助力打造AI計算機視覺算法推理平臺

    使用 NVIDIA TensorRT和NVIDIA T4 GPU對平臺賦能后,“極星”推理平臺的算法推理效率得到了進一步的提升,更好地支
    的頭像 發表于 04-13 14:49 ?1123次閱讀

    NVIDIA T4 GPUTensorRT加速微信搜索速度

      使用NVIDIA T4 GPU以及TensorRT推理引擎進行INT8低精度推理,極大提升了微信搜索的速度,進一步提升了用戶體驗,節約了公司成本。
    的頭像 發表于 04-21 10:53 ?1550次閱讀

    NVIDIA TensorRT插件的全自動生成工具

    NVIDIA TensorRT 是性能最優、應用最廣的 GPU 推理框架,但用戶常常因為不支持的算子而面臨手寫插件的痛點。為此,騰訊 TEG 與 NVIDIA 聯合開發了一款能自動生成插件的工具
    的頭像 發表于 07-18 10:13 ?1114次閱讀

    學習資源 | NVIDIA TensorRT 全新教程上線

    NVIDIA TensorRT ? 是一個用于高效實現已訓練好的深度學習模型推理過程的軟件開發工具包,內含推理優化器和運行環境兩部分,其目的在于讓深度學習模型能夠
    的頭像 發表于 08-04 17:45 ?804次閱讀
    學習資源 | NVIDIA <b class='flag-5'>TensorRT</b> 全新教程上線

    現已公開發布!歡迎使用 NVIDIA TensorRT-LLM 優化大語言模型推理

    NVIDIA 于 2023 年 10 月 19 日公開發布 TensorRT-LLM ,可在 NVIDIA GPU 上加速和優化最新的大語言模型(Large Language Models)的推理
    的頭像 發表于 10-27 20:05 ?935次閱讀
    現已公開發布!歡迎使用 NVIDIA <b class='flag-5'>TensorRT</b>-LLM 優化大語言模型<b class='flag-5'>推理</b>

    Torch TensorRT是一個優化PyTorch模型推理性能的工具

    那么,什么是Torch TensorRT呢?Torch是我們大家聚在一起的原因,它是一個端到端的機器學習框架。而TensorRT則是NVIDIA的高性能深度學習推理軟件工具包。Torch Te
    的頭像 發表于 01-09 16:41 ?1524次閱讀
    Torch <b class='flag-5'>TensorRT</b>是一個優化PyTorch模型<b class='flag-5'>推理</b>性能的工具

    利用NVIDIA組件提升GPU推理的吞吐

    本實踐中,唯品會 AI 平臺與 NVIDIA 團隊合作,結合 NVIDIA TensorRT 和 NVIDIA Merlin HierarchicalKV(HKV)將推理的稠密網絡和熱 Embedding 全置于 GPU 上進行
    的頭像 發表于 04-20 09:39 ?644次閱讀