簡體   English   中英

如何將推理與在多個GPU上使用的張量流並行化?

[英]How to parallelize inference with tensorflow serving on multiple GPUs?

我在張量流模型的部署中使用Tensorflow-serving。 我在可用的服務器上有多個GPU,但是截至目前,在推理過程中,僅使用了一個GPU。

我現在的想法是,並行化大量圖像的分類,是為每個可用的GPU生成一個張量流服務圖像,並讓並行的“工人”從生成器中獲取圖像,提出請求並等待答案。 然后從生成器獲取新圖像,依此類推。 這意味着我必須實現自己的數據處理程序,但這似乎是可以實現的。

我在TensorFlow Serving SharedBatchScheduler中閱讀了有關SharedBatchScheduler ,但我不知道這是否對您有幫助。

我對tensorflow-serving總體而言還很陌生,我想知道這是否是實現我想要的最直接的方法。

在此先感謝您的幫助/建議!


編輯:感謝您的澄清問題:我知道311問題, github.com/tensorflow/serving/issues/ 311。 有沒有人解決此問題?

它與碼頭工人和完全可行的nvidia-docker 2.0 (從判斷docker run --runtime=nvidia ...問題 ,他們使用的第一個版本)。 我確實使用多個GPU和Serving進行了嘗試; 但是,最終並沒有在多個GPU上運行它。

不過,我有一台具有4個GPU的主機,並且目前每個調度運行Tensorflow的自定義映像調度1個GPU,以便每個用戶都可以在隔離的環境中使用GPU。 以前,我使用Kubernetes進行設備供應和容器管理,但這對我需要做的事情來說太過分了。 目前,我正在使用docker-compose進行所有操作。 這是一個例子:

version: '3'
services:
    lab:
        build: ./tensorlab
        image: centroida/tensorlab:v1.1
        ports:
            - "30166:8888"
            - "30167:6006"
        environment:
            NVIDIA_VISIBLE_DEVICES: 0,1,2
       ...

這里的關鍵部分是NVIDIA_VISIBLE_DEVICES變量,其中GPU的索引對應於nvidia-smi的輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM