1

GPU デバイスとの相互作用を計測するための基礎として、CUDA SDK の ptxjit サンプルを使用しようとしています。

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

CUDA 機能 5.0 を持つ Geforce 830M を搭載した (バンブルビーを使用してディスクリート GPU を制御するラップトップ) システムで同じインストルメンテーション コードをコンパイルすると、コードはコンパイルされますが、209 (CUDA_ERROR_NO_BINARY_FOR_GPU) が返されます。

カーネルを CUDA 機能 5.0 と互換性があるようにコンパイルしようとしましたが、成功せず、同じエラーが発生しました。

何か案は?

4

1 に答える 1

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 リポジトリーからの更新をオフにすることです。

于 2016-10-05T04:05:22.490 に答える