[解決済み] OSXでNVIDIA Cudaエラー「すべてのCUDA対応デバイスはビジー状態か使用不可」発生
2022-02-15 04:13:01
質問
cudaMallocのような単純な呼び出しでも、CUDAライブラリが完全に失敗してエラー46("すべてのCUDA対応デバイスはビジーまたは使用できません")で返されることがよくあります。コンピュータを再起動するとコードは正常に実行されますが、これは理想的な状態とは程遠いものです。この問題はどうやら なかなか 共通 .
私の設定は以下の通りです。
- OSX 10.6.8
- NVIDIA CUDA ドライバー : CUDA ドライバーバージョン。4.0.31 (最新)
- GPUドライババージョン:1.6.36.10 (256.00.35f11)
Nvidiaのフォーラムにある解決策をいろいろ試しましたが、うまくいきませんでした。起こるたびに再起動するのは嫌です。正しいと思われる手順でドライバのアンロードとリロードも試しました(違うかもしれません)。
kextunload -b com.nvidia.CUDA
kextload -b com.nvidia.CUDA
しかし、それでもうまくいきません。どうすればGPU(またはCUDA)を正気に戻せますか?
これはデバイスのクエリ結果です
CUDA Device Query (Runtime API) version (CUDART static linking)
Found 1 CUDA Capable device(s)
Device 0: "GeForce 9400M"
CUDA Driver Version / Runtime Version 4.0 / 4.0
CUDA Capability Major/Minor version number: 1.1
Total amount of global memory: 254 MBytes (265945088 bytes)
( 2) Multiprocessors x ( 8) CUDA Cores/MP: 16 CUDA Cores
GPU Clock Speed: 1.10 GHz
Memory Clock rate: 1075.00 Mhz
Memory Bus Width: 128-bit
Max Texture Dimension Size (x,y,z) 1D=(8192), 2D=(65536,32768), 3D=(2048,2048,2048)
Max Layered Texture Size (dim) x layers 1D=(8192) x 512, 2D=(8192,8192) x 512
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 16384 bytes
Total number of registers available per block: 8192
Warp size: 32
Maximum number of threads per block: 512
Maximum sizes of each dimension of a block: 512 x 512 x 64
Maximum sizes of each dimension of a grid: 65535 x 65535 x 1
Maximum memory pitch: 2147483647 bytes
Texture alignment: 256 bytes
Concurrent copy and execution: No with 0 copy engine(s)
Run time limit on kernels: Yes
Integrated GPU sharing Host Memory: Yes
Support host page-locked memory mapping: Yes
Concurrent kernel execution: No
Alignment requirement for Surfaces: Yes
Device has ECC support enabled: No
Device is using TCC driver mode: No
Device supports Unified Addressing (UVA): No
Device PCI Bus ID / PCI location ID: 2 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 4.0, CUDA Runtime Version = 4.0, NumDevs = 1, Device = GeForce 9400M
[deviceQuery] test results...
PASSED
これは、失敗する可能性のあるコードの例です(ただし、通常の状態では失敗しません)。
#include <stdio.h>
__global__ void add(int a, int b, int *c) {
*c = a + b;
}
int main(void) {
int c;
int *dev_c;
cudaMalloc( (void **) &dev_c, sizeof(int)); // fails here, returning 46
add<<<1,1>>>(2,7,dev_c);
cudaMemcpy(&c, dev_c, sizeof(int), cudaMemcpyDeviceToHost);
printf("hello world, %d\n",c);
cudaFree( dev_c);
return 0;
}
あと、たまに再起動しなくてもまともな動作に戻ることがあることがわかった。何が引き金になるのかはまだ分かりませんが。
解決方法は?
私の投稿にコメントされた方々の発言を確認します。他のアプリケーションがGPUを制御している場合、GPUが動作しないことがあります。私の場合、firefoxのフラッシュプレーヤーがカードの利用可能なリソースをすべて占有していたようです。私はフラッシュ用のfirefoxプラグインを停止させ、カードはすぐに再び動作し始めました。
関連
-
[解決済み】NVIDIA NVML Driver/library version mismatch [終了しました。]
-
[解決済み】CUDAドライバのバージョンがCUDAランタイムのバージョンに対して不足しています。
-
[解決済み】コマンドプロンプトからCUDAをコンパイルするとエラーになる。
-
[解決済み] ジョブを実行するGPUはどのように選択するのですか?
-
[解決済み] このCUDAカーネルの起動パラメータを理解する
-
[解決済み] OSXでNVIDIA Cudaエラー「すべてのCUDA対応デバイスはビジー状態か使用不可」発生
-
[解決済み] バンクコンフリクトとは何ですか?(Cuda/OpenCLのプログラミングをする)
-
[解決済み] GPU上のCUDAアクティビティを監視するためのtopライクなユーティリティ
-
[解決済み] AMD GPU上でCUDAを動作させることは可能ですか?
-
[解決済み】CuDNNのインストールを確認する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】NVIDIA NVML Driver/library version mismatch [終了しました。]
-
[解決済み】CUDAドライバのバージョンがCUDAランタイムのバージョンに対して不足しています。
-
[解決済み] ジョブを実行するGPUはどのように選択するのですか?
-
[解決済み] Cudamemcpy関数の使用法
-
[解決済み] このCUDAカーネルの起動パラメータを理解する
-
[解決済み] CUDAドライバのバージョンがCUDAランタイムのバージョンに対して不足しています。
-
[解決済み] nvcc fatal : Visual Studio 12.0 が PATH に追加されているが、コンパイラ 'cl.exe' が PATH に見つからない。
-
[解決済み] ハードウェアなしでCUDAプログラミングができるGPUエミュレータ【終了しました
-
[解決済み】CUDAランタイムAPIを使用してエラーをチェックする標準的な方法は何ですか?
-
[解決済み】CuDNNのインストールを確認する方法は?