91精品国产综合久久四虎久久_国产成人午夜高潮毛片_99er视频精品免费观看_2020亚洲熟女在线观看_日本女优人体写真_国内黄色毛片_年轻的老师中文版在线_丰满女邻居做爰_久久久久久精品成人免费图片

在Kubernetes上使用GPU加速版TensorFlow
關(guān)于工作流調(diào)度,數(shù)據(jù)管理和模型載入到GPU的統(tǒng)一方法論

許多使用了TensorFlow的工作流,需要在圖像或視頻數(shù)據(jù)上用GPU來(lái)有效地訓(xùn)練模型。 然而,這些工作流同時(shí)也包含多個(gè)階段的數(shù)去前后處理,這些處理工作可能不需要在GPU上運(yùn)行。 如圖1所示,這種混合處理階段,導(dǎo)致數(shù)據(jù)科學(xué)團(tuán)隊(duì)在系統(tǒng)中不僅需要CPU,同時(shí)用『交流基本靠吼』的模式管理GPU資源,在辦公室里喊:『嘿,有誰(shuí)在占用GPU機(jī)器嗎?』 我們急需一種統(tǒng)一的方法論,進(jìn)行多階段工作流調(diào)度,數(shù)據(jù)管理和把某部分模型載入到GPU上。

figure1-34fca470ba4c4527170d0b8cbea792f7

圖1. 在機(jī)器學(xué)習(xí)的不同階段使用CPU和GPU。 感謝Daniel Whitenack提供圖片

Kubernetes與TensorFlow配合使用,為這些類(lèi)型的工作流程提供了一個(gè)非常優(yōu)雅、易于管理的解決方案。例如,圖1顯示了三個(gè)不同的數(shù)據(jù)處理階段。 數(shù)據(jù)預(yù)處理在CPU上運(yùn)行,模型訓(xùn)練在GPU上發(fā)生,而模型推斷再次在CPU上進(jìn)行。 人們可能需要在一組共享的計(jì)算資源(例如,云服務(wù)實(shí)例上)上部署和維護(hù)每一個(gè)工作流階段,這就是Kubernetes最擅長(zhǎng)的。 每個(gè)階段都可以通過(guò)Docker進(jìn)行容器化,并用聲明的形式,通過(guò)Kubernetes部署于一個(gè)機(jī)器集群上(見(jiàn)圖2)。

figure2-b7618e41b42e08833dc3b43f0cf73abe

圖2. 使用Kubernetes和Pachyderm在CPU或GPU上安排任務(wù)。 感謝Daniel Whitenack提供圖片

除了調(diào)度和部署之外,您還可以利用Kubernetes生態(tài)系統(tǒng)中的其他開(kāi)源工具(如Pachyderm)來(lái)確保在正確類(lèi)型的節(jié)點(diǎn)(即CPU或GPU節(jié)點(diǎn))上把正確的數(shù)據(jù)送入正確的TensorFlow代碼。 Pachyderm充當(dāng)Kubernetes頂層的容器化數(shù)據(jù)管線層。通過(guò)使用這個(gè)工具,您可以將TensorFlow處理的不同階段訂閱到特定版本的數(shù)據(jù)集(以對(duì)象存儲(chǔ)數(shù)據(jù)庫(kù)作為后端)上,并自動(dòng)收集輸出,這些輸出又可以送給其他處理階段作為輸入,這些階段可能運(yùn)行在相同節(jié)點(diǎn)上,也可能運(yùn)行在不同節(jié)點(diǎn)上。而且,將我們工作流程的某些階段(如模型訓(xùn)練截?cái)啵┌l(fā)送到GPU的過(guò)程如此簡(jiǎn)單,只需要通過(guò)一個(gè)JSON參數(shù)傳給Pachyderm說(shuō), 『我們有個(gè)計(jì)算階段需要一個(gè)GPU』。然后,Pachyderm將與Kubernetes合作,在擁有GPU的實(shí)例上對(duì)這個(gè)計(jì)算階段進(jìn)行調(diào)度。

聽(tīng)起來(lái)不錯(cuò)對(duì)嗎? 那么,你可以自己試試在Kubernetes上,按如下方法運(yùn)行TensorFlow + GPU:

1.將Kubernetes部署到您選擇的云/私有云中。某些云提供商(例如Google云平臺(tái),Google Cloud Platform)甚至?xí)褂妙?lèi)似Google Kubernetes 引擎(GKE)等工具,一鍵部署Kubernetes。

2.將一個(gè)或多個(gè)GPU實(shí)例添加到您的Kubernetes集群。這可能涉及到一些操作,如果您正在使用GKE,您可能需要?jiǎng)?chuàng)建一個(gè)新的節(jié)點(diǎn)資源池,如果您正在使用kops,您可能需要?jiǎng)?chuàng)先一個(gè)新的實(shí)例組。無(wú)論如何,您需要更新群集,在這些GPU節(jié)點(diǎn)上安裝GPU驅(qū)動(dòng)。舉個(gè)例子,您可以通過(guò)gcloud命令,將新的節(jié)點(diǎn)池添加到您的alpha GKE集群(在這里可以使用最新的GPU高級(jí)特性):

$ gcloud alpha container node-pools create gpu-pool –accelerator type=nvidia-tesla-k80,count=1 –machine-type <your-chosen-machine-type> –num-nodes 1 –zone us-east1-c –image-type UBUNTU –cluster <your-gke-cluster-name>

然后你可以利用ssh訪問(wèn)該群集,添加nvidia GPU驅(qū)動(dòng):

$ curl -O http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb

$ sudo -s

$ dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb

$ apt-get update && apt-get install cuda -y

1.在您的Kubernetes集群上部署Pachyderm來(lái)管理數(shù)據(jù)管線,以及您的輸入/輸出數(shù)據(jù)集。

2.將你的工作流程的不同階段使用Docker進(jìn)行容器化。

3.通過(guò)引用您的Docker鏡像以及JSON參數(shù),部署您的數(shù)據(jù)管線。如果您需要GPU,只需使用Kubernetes提供的資源請(qǐng)求和限制功能,即可獲取。 請(qǐng)注意,您可能需要將GPU驅(qū)動(dòng)程序的路徑添加到容器中的LD_LIBRARY_PATH環(huán)境變量,詳述見(jiàn)此處。

如果您還有任何問(wèn)題,或需要更多信息:

? 查看有關(guān)使用Kubernetes調(diào)度GPU的文檔。

? 檢查Pachyderm文檔 。

? 通過(guò)加入公眾Pachyderm Slack和/或Kubernetes Slack獲得幫助。

? 運(yùn)行一個(gè)Tensorflow + Kubernetes示例

這篇文章由O’Reilly和TensorFlow合作完成。在這里查看我們的編輯獨(dú)立聲明。

Daniel Whitenack

Daniel Whitenack擁有博士學(xué)位,是一位訓(xùn)練有素的數(shù)據(jù)科學(xué)家/工程師,具備為大中小型公司開(kāi)發(fā)數(shù)據(jù)科學(xué)應(yīng)用程序的工業(yè)經(jīng)驗(yàn),其中包括預(yù)測(cè)模型,數(shù)據(jù)面板,推薦引擎等等。 Daniel在世界各地的會(huì)議(Gopherfest,GopherCon 等)上發(fā)言。他為Jupyter維護(hù)Go內(nèi)核,對(duì)于各種開(kāi)源數(shù)據(jù)科學(xué)項(xiàng)目,他都進(jìn)行了積極的幫助,并組織開(kāi)發(fā)者貢獻(xiàn)代碼。

猶太教堂Goe Platz的細(xì)節(jié)。來(lái)源:Wikimedia上Daniel Schwen的作品