![](/img/trans.png)
[英]I have error "cudaGetDevice() failed. Status: initialization error for CNN Model
[英]InternalError: cudaGetDevice() failed. Status: initialization error when running tensorflow
我最近買了一台新的 Windows 計算機,它配備了 GPU (NVIDIA Quadpro P4200) 用於工作。 我希望運行一些舊代碼,但現在利用 GPU。我正在嘗試使用 Tensorflow 運行 LSTM model 進行文本分類。讓我提前為可能太多的信息道歉,我只是在迷路了,不知道問題出在哪里。 另外,誠然,我對這方面的一些更技術性的方面知之甚少。
我目前有以下版本:
\# Name Version Build Channel
tensorflow 2.6.0 gpu_py39he88c5ba_0
tensorflow-base 2.6.0 gpu_py39hb3da07e_0
tensorflow-estimator 2.6.0 pyh7b7c402_0
tensorflow-gpu 2.6.0 h17022bd_0
cudatoolkit 11.3.1 h59b6b97_2
cudnn 8.2.1 cuda11.3_0
另外,當我運行 nvidia-smi 時,我得到:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 419.17 Driver Version: 419.17 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Quadro P4200 WDDM | 00000000:01:00.0 Off | N/A |
| N/A 51C P8 8W / N/A | 111MiB / 8192MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
當我運行 nvcc --version 時,我得到:
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Thu_Nov_18_09:52:33_Pacific_Standard_Time_2021
Cuda compilation tools, release 11.5, V11.5.119
Build cuda_11.5.r11.5/compiler.30672275_0
當我查看 Windows 設備管理器並查看驅動程序時,它會列出版本:25.21.14.1917
當我運行我的代碼時,出現以下錯誤:
InternalError: cudaGetDevice() failed. Status: initialization error
我用谷歌搜索了解決方案,發現有幾個建議我使用不同版本的 cudatoolkit、cudnn 和 tensorflow。我嘗試了幾個選項,包括恢復到 cudatoolkit 10.1 和 cudnn 7.6.5,這需要使用舊版本的 tensorflow 和 python 3.8 (以上是使用 3.9)。 當我進行這些更改時,tensorflow 似乎根本沒有檢測到我的 GPU。
我想我會要求我們的 IT 部門從這里更新我的 GPU 驅動程序,但是我有點擔心這可能無法解決我的問題(並可能使問題變得更糟?)。
我得到了一切工作。 我想將其保留在這里以防其他人遇到類似問題會很有用。
所以,問題確實是我需要使用舊版本的 cudatoolkit。 我所做的是安裝 cudatoolkit 10.1。 但是在安裝tensorflow-gpu 2.3的時候需要使用pip install而不是conda install。 不知道為什么。
因此,簡而言之,為了讓舊版本的 tensorflow 識別我的 GPU,我需要使用 pip 安裝所有軟件包(盡管我確實使用 conda 安裝了 cudatoolkit 和 cudnn……所有其他軟件包似乎都需要 pip)。
在這里重復上面的答案:
我得到了一切工作。 我想將其保留在這里以防其他人遇到類似問題會很有用。
所以,問題確實是我需要使用舊版本的 cudatoolkit。 我所做的是安裝 cudatoolkit 10.1。 但是在安裝tensorflow-gpu 2.3的時候需要使用pip install而不是conda install。 不知道為什么。
因此,簡而言之,為了讓舊版本的 tensorflow 識別我的 GPU,我需要使用 pip 安裝所有軟件包(盡管我確實使用 conda 安裝了 cudatoolkit 和 cudnn……所有其他軟件包似乎都需要 pip)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.