亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

致命錯誤:cuda_runtime_api.h:嘗試在 docker 中使用 cuda 時沒有此類

致命錯誤:cuda_runtime_api.h:嘗試在 docker 中使用 cuda 時沒有此類

jeck貓 2023-12-20 19:57:09
我正在嘗試為我想要部署的 python 腳本構建一個 docker 映像。這是我第一次使用 docker,所以我可能做錯了什么,但我不知道是什么。我的系統:OS: Ubuntu 20.04docker version: 19.03.8我正在使用這個 Dockerfile:# DockerfileFROM nvidia/cuda:11.0-baseCOPY . /SingleModelTestWORKDIR /SingleModelTestRUN nvidia-smiRUN set -xe \           #these are just to make sure pip and git are installed to install the requirements    && apt-get update \    && apt-get install python3-pip -y \    && apt-get install git -y RUN pip3 install --upgrade pipRUN pip3 install -r requirements/requirements1.txtRUN pip3 install -r requirements/requirements2.txt    #this is where it failsENTRYPOINT ["python"]CMD ["TabNetAPI.py"]nvidia-smi 的輸出符合預期:+-----------------------------------------------------------------------------+| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     ||-------------------------------+----------------------+----------------------+| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC || Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. ||                               |                      |               MIG M. ||===============================+======================+======================||=============================================================================|+-----------------------------------------------------------------------------+
查看完整描述

2 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

原來我只需要用作nvidia/cuda/10.0-devel基礎圖像而不是nvidia/cuda/10.0-base


所以我的 Dockerfile 現在是:


# Dockerfile

FROM nvidia/cuda:10.0-devel


RUN nvidia-smi


RUN set -xe \

    && apt-get update \

    && apt-get install python3-pip -y \

    && apt-get install git -y 

RUN pip3 install --upgrade pip


WORKDIR /SingleModelTest


COPY requirements /SingleModelTest/requirements


RUN export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64


RUN pip3 install -r requirements/requirements1.txt

RUN pip3 install -r requirements/requirements2.txt



COPY . /SingleModelTest


ENTRYPOINT ["python"]


CMD ["TabNetAPI.py"]


查看完整回答
反對 回復 2023-12-20
?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

編輯:這個答案只是告訴您如何驗證 docker 映像中發生的情況。不幸的是我無法弄清楚為什么會發生這種情況。


如何檢查呢?


在 docker 構建的每個步驟中,您都可以看到正在生成的各個層。您可以使用該 ID 創建臨時映像來檢查發生了什么。例如


docker build -t my_bonk_example .

[...]

Removing intermediate container xxxxxxxxxxxxx

 ---> 57778e7c9788

Step 19/31 : RUN mkdir -p /tmp/spark-events

 ---> Running in afd21d853bcb

Removing intermediate container xxxxxxxxxxxxx

 ---> 33b26e1a2286 <-- let's use this ID

[ failure happens ]


docker run -it --rm --name bonk_container_before_failure 33b26e1a2286 bash

# now you're in the container


echo $LD_LIBRARY_PATH

ls /usr/local/cuda

關于 Dockerfile 的旁注:


如果更改 Dockerfile 中的指令順序,則可以縮短未來構建的構建時間。Docker 使用的緩存在發現與之前構建不同的內容時就會失效。我希望您更改代碼的頻率高于 docker 映像的要求,因此將 COPY 移到 apt 指令之后是有意義的。例如


# Dockerfile

FROM nvidia/cuda:10.2-base


RUN set -xe \

    && apt-get update \

    && apt-get install python3-pip -y \

    && apt-get install git -y 


RUN pip3 install --upgrade pip


WORKDIR /SingleModelTest


COPY requirements /SingleModelTest/requirements


RUN pip3 install -r requirements/requirements1.txt

RUN pip3 install -r requirements/requirements2.txt


COPY . /SingleModelTest


RUN nvidia-smi


ENTRYPOINT ["python"]

CMD ["TabNetAPI.py"]

注意:這只是一個例子。


關于為什么圖像無法構建,我發現 PyTorch 1.4 不支持 CUDE 11.0 ( https://discuss.pytorch.org/t/pytorch-with-cuda-11-compatibility/89254 ),但也使用以前的CUDA版本并沒有解決這個問題。


查看完整回答
反對 回復 2023-12-20
  • 2 回答
  • 0 關注
  • 371 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號