2016-10-03 5 views
1

CUDA SDKのptxjitサンプルをGPUデバイスとの相互作用の基礎として使用しようとしています。CUDA機能5.0を搭載したデバイスに対してPTXをプログラムにロードするとエラー209が返される

私はインストルメンテーションコードをコンパイルし、CUDA機能2.0を備えたGeforce GT440でPTXモジュールをロードして実行するようにデバイスを制御しました。

CUDA機能5.0を搭載したGeforce 830Mを搭載したラップトップ(バンブルビーを使用したラップトップコンピュータ)で同じ計測コードをコンパイルすると、コードはコンパイルされますが、209(CUDA_ERROR_NO_BINARY_FOR_GPU)が表示されます。

私はCUDA機能5.0と互換性があるようにカーネルをコンパイルしようとしましたが、成功しませんでしたが、それと同じエラーです。

アイデア?

+0

[MCVE]がなければ、何が間違っていると言うのは非常に難しいです。通常は 'CUDA_ERROR_NO_BINARY_FOR_GPU'は、正しいアーキテクチャーのためのコードなしのCUBINを持っているか、またはPTXに構文エラーまたはJITコンパイル中に何か他のものが含まれていることを意味します。 – talonmies

+0

私が言及したように、CUDA SDKで提供されているコードを使用していますが、ptxとともにその一部をコピーします。 – prmottajr

+1

実際にCUDA SDKに付属のptxjitサンプルプロジェクトをビルドして実行していますか?または、このptxjitサンプルコードを自分のプロジェクトにドロップしていますか?どのCUDAバージョンをお使いですか? –

答えて

0

最後に、問題がドライバにあった。 CUDA Capability 5.0を持つGPUでのPTXコードの読み込みに使用される関数にのみ影響します。

最近更新されたすべてのnvidiaドライバパッケージを削除し、CUDA SDKに付属のドライバとOpenGLライブラリをインストールしました。 SDK 7.5のドライババージョンは352.39です。このドライバでは、オリジナルのptxjitサンプルと変更されたサンプルが完全に他のシステムと同様に実行されます。

同じ問題が発生するかどうかをテストするCUDA機能3.0を備えたGPUがありません。また、デスクトップを367.44ドライバに更新してptxjitサンプルが破損するかどうかを確認しませんでした。

今のところ解決策は、CUDA SDKに付属のドライバを保持し、nvidiaリポジトリからアップデートをオフにすることです。

関連する問題