2017-02-20 9 views
1

私のシンプルなcuda helloworldアプリケーションは、Windows 10上でVisual Studio 2015コミュニティを使用して32ビットでビルドしたときにうまく動作します。ただし、64ビットでビルドした場合、実行されません。cudaシンプルなアプリケーションが32ビットで64ビットではない

GPU:テスラK40c

ツールキット:CUDA 8

オペレーティングシステム:Windows 10、64ビット

のVisual Studio:コミュニティ版。

出力コンソールにエラーメッセージはありません。

#include "cuda_runtime.h" 
#include "device_launch_parameters.h" 
#include<stdio.h> 
__global__ void welcome() { 
printf("Hello world :)"); 
} 

int main() { 
welcome << <1, 1 >> >(); 
cudaDeviceSynchronize(); 
return 0; 
} 
+0

壊れたインストールであれば、インストールガイドの正確な手順に従って、deviceQueryサンプルの動作を確認しました。 –

+0

64ビットのホストコードに加えて、64ビットのCUDAコードを生成しますか?それはそれを制御する独立したフラグです。より正確には、 'nvcc -m32'は32ビットデバイスコードを生成します。このようなフラグがないと、64ビットデバイスコードが生成されます。 – CygnusX1

答えて

1

同じ問題が発生し、nvidia#1855074にバグがありました。

彼らはそれをうまく再現しました。私はそれを更新するのを待っています。

1つのことは確かです、それは彼らの側です。

私が見つけた唯一の回避策は、自分のタスクバーを壊したnvidia-smi経由でWDDMモードでカードを置くことでした。

修正を待つことをおすすめします。

+0

このバグを追跡する方法は?これは解決されましたか?私も同様の問題に直面しています。 cudaMallocは私のアプリケーションの1つでWin10 x64にハングアップします! – azmath

+0

これはCUDA 9以降で解決する必要があります。 –

+0

VS 2017 15.5.6でCUDA 9.1に同じ問題があることを確認できます。私はコアアプリケーションが実行時にdllをロードするプラグインベースのアプリケーションを持っています。これらのDLLはすべてCUDAを使用しています。問題なく動作するdllは、 'dlib'深い学習ライブラリを使用します。この問題は、「darknet」深い学習フレームワークを使用する特定のdllによって引き起こされ、cudaMallocを呼び出すとハングアップします。 – azmath

関連する問題