亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

簡析nvidia Container runtime和nvidia-container-tool區別

2023-10-25 09:05:52
1192
0

       在容器中調用nvidia GPU,官方提供了nvidia-docker2, nvidia-container-runtime,nvidia-container-tookit等多種方式,很多人不知道這幾個的區別,官方文檔也比較分散,今天我們就來說一說。

       libnvidia-container:該包確保容器能使用 NVIDIA GPU 來運行任務。它被設計為與容器運行時無關,并提供了定義良好的 API 和包裝器 CLI,不同的runtime可以調用這些 API 來將 NVIDIA GPU 支持注入到其容器中。

       nvidia-container-toolkit:該軟件包包含一個腳本,該腳本實現了 runC 預啟動掛鉤所需的接口。該腳本由 runC 在創建容器之后、啟動之前調用,并有權訪問與容器關聯的 config.json。然后,它獲取 config.json 中包含的信息,并通過設置合適的標志來調用 libnvidia-container CLI。其中最重要的標志之一是應將哪些特定 GPU 設備注入到容器中。

      nvidia-container-runtime:該軟件包曾經是 runC 的完整分支,其中注入了 NVIDIA 特定代碼。如今,它是安裝在計算機上的本機 runC 的薄包裝。它所做的只是將 runC 規范作為輸入,將 nvidia-container-toolkit 腳本作為預啟動鉤子注入其中,然后調用本機 runC,將帶有該鉤子集的修改后的 runC 規范傳遞給它。需要注意的是,這個包不一定特定于 docker(但它特定于 runC)

     nvidia-docker2這個包是其中唯一一個特定于 docker 的包。它獲取與 nvidia-container-runtime 關聯的腳本并將其安裝到 docker 的 /etc/docker/daemon.json 文件中。然后,您可以運行 docker run --runtime=nvidia 來自動向容器添加 GPU 支持。它還在本機 docker CLI 周圍安裝了一個名為 nvidia-docker 的包裝器腳本,它允許您調用 docker,而無需每次都指定 --runtime=nvidia。它還允許您在主機 (NV_GPU) 上設置環境變量,以指定應將哪些 GPU 注入到容器中。

     所以如果只安裝 nvidia-container-toolkit (建議在 Docker 19.03+ 中安裝),那么 nvidia-container-runtime 將不會作為其中的一部分安裝,因此無法使用--runtime =nvidia。這對 Docker 19.03+ 來說沒問題, 當使用--gpus 選項時,它會直接調用 nvidia-container-toolkit,而不是依賴 nvidia-container-runtime 作為代理。

     但是如果想將 Kubernetes 與 Docker 19.03 一起使用,實際上需要繼續使用 nvidia-docker2,因為 Kubernetes 還不支持通過 --gpus 標志將 GPU 信息傳遞給 docker。它仍然依賴 nvidia-container-runtime 通過一組環境變量將 GPU 信息傳遞到堆棧中。

0條評論
0 / 1000
李****萍
4文章數
0粉絲數
李****萍
4 文章 | 0 粉絲
原創

簡析nvidia Container runtime和nvidia-container-tool區別

2023-10-25 09:05:52
1192
0

       在容器中調用nvidia GPU,官方提供了nvidia-docker2, nvidia-container-runtime,nvidia-container-tookit等多種方式,很多人不知道這幾個的區別,官方文檔也比較分散,今天我們就來說一說。

       libnvidia-container:該包確保容器能使用 NVIDIA GPU 來運行任務。它被設計為與容器運行時無關,并提供了定義良好的 API 和包裝器 CLI,不同的runtime可以調用這些 API 來將 NVIDIA GPU 支持注入到其容器中。

       nvidia-container-toolkit:該軟件包包含一個腳本,該腳本實現了 runC 預啟動掛鉤所需的接口。該腳本由 runC 在創建容器之后、啟動之前調用,并有權訪問與容器關聯的 config.json。然后,它獲取 config.json 中包含的信息,并通過設置合適的標志來調用 libnvidia-container CLI。其中最重要的標志之一是應將哪些特定 GPU 設備注入到容器中。

      nvidia-container-runtime:該軟件包曾經是 runC 的完整分支,其中注入了 NVIDIA 特定代碼。如今,它是安裝在計算機上的本機 runC 的薄包裝。它所做的只是將 runC 規范作為輸入,將 nvidia-container-toolkit 腳本作為預啟動鉤子注入其中,然后調用本機 runC,將帶有該鉤子集的修改后的 runC 規范傳遞給它。需要注意的是,這個包不一定特定于 docker(但它特定于 runC)

     nvidia-docker2這個包是其中唯一一個特定于 docker 的包。它獲取與 nvidia-container-runtime 關聯的腳本并將其安裝到 docker 的 /etc/docker/daemon.json 文件中。然后,您可以運行 docker run --runtime=nvidia 來自動向容器添加 GPU 支持。它還在本機 docker CLI 周圍安裝了一個名為 nvidia-docker 的包裝器腳本,它允許您調用 docker,而無需每次都指定 --runtime=nvidia。它還允許您在主機 (NV_GPU) 上設置環境變量,以指定應將哪些 GPU 注入到容器中。

     所以如果只安裝 nvidia-container-toolkit (建議在 Docker 19.03+ 中安裝),那么 nvidia-container-runtime 將不會作為其中的一部分安裝,因此無法使用--runtime =nvidia。這對 Docker 19.03+ 來說沒問題, 當使用--gpus 選項時,它會直接調用 nvidia-container-toolkit,而不是依賴 nvidia-container-runtime 作為代理。

     但是如果想將 Kubernetes 與 Docker 19.03 一起使用,實際上需要繼續使用 nvidia-docker2,因為 Kubernetes 還不支持通過 --gpus 標志將 GPU 信息傳遞給 docker。它仍然依賴 nvidia-container-runtime 通過一組環境變量將 GPU 信息傳遞到堆棧中。

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0