私は以前、このWin 10 64ビットホームシステムでCUDA 9.xを実行していた(1080Tiカードをターゲットにした)が、TensorFlow 2のCUDA 10.0に更新する必要があった。後になって初めてCUDA 10であることが判明しました。
動作しません...
TFをテストするために、これを実行してインストールを検証しました(Anacondaを介したJupyterノートブック-新しく構築されたTF2環境)
import tensforflow as tf
print(tf.reduce_sum(tf.random.normal([1000, 1000])))
基本的なPythonテストでこのエラーが発生します
InternalError:cudaGetDevice()が失敗しました。ステータス:cudaGetErrorStringシンボルが見つかりません
これは、キーファイルが見つからないことを示していますが、根本的な原因を特定することはできません。そのエラー情報にヒットすることはほとんどなく、どれも役に立ちませんでした。
現在の構成
CUDA 10.0がNvidiaドライバー436.48のゲーム対応ドライバーをインストール
潜在的な問題とこれまでの解決策
明らかに、どれも修正されたものはありません
既知の奇数
[更新2に置き換わる] nvidia-smi.exeはCUDA 10.1を報告します(はい、Win 10で利用可能です)-レジストリを確認しても、CUDA 10.1が残っていることを示唆するものは何も見つかりませんそこに...pdate C:\ Windows\System32にあります
アンインストールにもかかわらず、レジストリのComputer\HKEY_USERS.DEFAULT\Software\Microsoft\VisualStudio\14.0_Config\InstalledProductsの下にXYZ = 90、91、100、101のCudaXYZWizardsPackageが残っていますが、これはTFの問題だと思いますPython;)pdate C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\NVIDIAには何もありません10.0なので、Orphan regエントリのみです。
その他の情報
質問
@diegoが更新を要求するため、これは主に拡張コメントです...
CUDA 10.0がインストールされ、nVidiaコントロールパネルでnvcuda.dllがv 10.0.132と報告される
C:\ ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\1_Utilities\deviceQuery(vs.exeがC:\ ProgramData \で終わることに注意してください)のvsソリューションからVisual Studio 2017を使用して推奨デモdevicequery.exeを構築しましたNVIDIA Corporation\CUDA Samples\v10.0\bin\win64\Debug)
次に、プログラムはcmdプロンプトから実行され、次の出力が表示されました。
devicequeryを開始しています...
CUDAデバイスクエリ(ランタイムAPI)バージョン(CUDART静的リンク)
1 CUDA対応デバイスが検出されました
デバイス0: "GeForce GTX 1080 Ti" CUDAドライバーバージョン/ランタイムバージョン10.0/10.0 CUDA機能メジャー/マイナーバージョン番号:6.1グローバルメモリの総容量:11264 Mバイト(11811160064バイト)(28)マルチプロセッサー、(128)CUDAコア/ MP:3584 CUDAコアGPU最大クロック速度:
1607 MHz(1.61 GHz)メモリクロックレート:
5505 Mhzメモリバス幅:352ビットL2キャッシュサイズ:2883584バイト最大テクスチャディメンションサイズ(x、y、z)1D =(131072)、2D =(131072、65536)、3D =(16384、 16384、16384)最大レイヤード1Dテクスチャサイズ、(num)レイヤー1D =(32768)、2048レイヤー最大レイヤード2Dテクスチャサイズ、(num)レイヤー2D =(32768、32768)、2048レイヤー定数メモリの総容量:65536バイトブロックごとの共有メモリの総量:49152バイトブロックごとに使用可能なレジスタの総数:65536ワープサイズ:
32マルチプロセッサあたりの最大スレッド数:2048ブロックあたりの最大スレッド数:1024スレッドブロックの最大ディメンションサイズ(x、y、z):(1024、1024、64)グリッドの最大ディメンションサイズサイズ(x、y、z):(2147483647、65535、65535)最大メモリピッチ:
2147483647バイトテクスチャアライメント:512バイト同時コピーとカーネル実行:2つのコピーエンジンで可カーネルでの実行時間制限:はい
統合されたGPU共有ホストメモリ:サポートなしホストページロックメモリマッピング:はいサーフェスのアライメント要件:はいデバイスはECCサポートを備えています:
無効なCUDAデバイスドライバーモード(TCCまたはWDDM):WDDM(Windowsディスプレイドライバーモデル)デバイスは統合アドレッシング(UVA)をサポートします:はいデバイスは計算プリエンプションをサポートします:いいえ
協同カーネルの起動をサポートします:マルチデバイス共同カーネルの起動をサポートしません:デバイスなしPCIドメインID /バスID /ロケーションID:0/1/0計算モード:<デフォルト(複数のホストスレッドが:: cudaSetDeviceを使用できます()デバイスと同時に)>deviceQuery、CUDAドライバー= CUDART、CUDAドライバーバージョン= 10.0、CUDAランタイムバージョン= 10.0、NumDevs = 1結果= PASS
これを達成するために私は何をしましたか?成功したことに気付いていなかったので具体的にはわかりませんが、ディスプレイドライバーをVGAに設定し、再起動(安全のために2回)してからCUDA 10.0をアンインストールし、再起動して10.0をインストールしたことを思い出しました。
VsQueryソリューションを使用してdeviceQueryを構築したことに気づきましたが、ソリューションオープン時にVSを更新することに同意しました。