[英]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.