2013-07-31 74 views
0

我正在使用docker啓動獨立的應用程序。我的應用程序將使用CUDA庫進行GPGPU計算。我正在考慮在它上面安裝cuda,但這會讓它太龐大。我不確定CUDA顯示驅動程序安裝是否可以在Docker鏡像上成功通過。與Docker容器共享CUDA庫

更好的方法是在容器上共享機器上的CUDA庫,有沒有辦法做到這一點?

謝謝, pradeep。

+0

你肯定泊塢窗提供的PCI-E的容器通過?沒有它,您的容器化應用程序將無法與主機內核驅動程序或GPU進行交互。 – talonmies

+0

@talonmies:我也不確定,我也是碼頭工人。所以探索讓CUDA在容器中運行的方式 – pradeep

回答

1

如果你可以安裝你的驅動程序爲您的主機上卷,那麼你可能能夠與它直接從容器內用docker run -v hostdir:containerdir:rw安裝它說話(見run docs

如果你不」如果將設備安裝在容器外部,那麼我懷疑即使通過共享庫直接與您的圖形卡交談,也無法使用標準Docker配置,因爲Docker中默認的LXC配置不包括sys_rawio,這是出於安全性和便攜性的原因。

請參閱lxc_template.go文件以查看默認情況下已丟棄的功能列表。

+0

謝謝Andy。我確實有裝置,我只是不知道安裝部件。 – pradeep

+0

好吧,我已經過去了大部分的錯誤。編譯CUDA代碼也很好。我生成了一個可執行文件,但是當我運行這個東西時,它會吐出一條消息,指出所選的NVIDIA驅動程序版本不正確。將發佈確切的錯誤消息,我現在正在嘗試其他的東西。 – pradeep

+0

docker run -v/usr/bin:/ usr/bin:ro -v/usr/lib:/ usr/lib:ro -v/dev/dev:ro ubuntu nvidia-smi NVIDIA:無法打開設備文件/ dev/nvidiactl:不允許操作 – pradeep

3

我將開始與只使用

docker run --privileged ubuntu -ti --rm bash 

的--privileged是一個大鐵錘,而是讓你有充分權力:)