0

Intel CPU と NVIDIA GPU を搭載し、Windows 7 を実行しているコンピューターがあります。NVIDIA CUDA で記述されたソフトウェア モジュールと、OpenCL で記述された別のモジュールがあります。OpenCL の Intel 実装を使用して CPU で OpenCL モジュールを実行し、同時に CUDA モジュールを使用したいと考えています。

私のシステムでは、最初に CUDA SDK をインストールし、次に Intel の SDK をインストールしました。

Visual Studio 2012 でプログラムをコンパイルし、リンカにインテルのライブラリを使用するように指示しました (インテルが提供する OpenCL ヘッダーに対してコンパイルしました)。

ただし、単純なプログラムを実行してハードウェアを照会すると、NVIDIA カードしか表示されません。

Windows レジストリと PATH 変数を何も見ずに変更しようとしました。「Dependecy Walker」で依存関係を照会すると、プログラムが c:\windows\system32 にある dll に依存していることがわかります。これは Intel dll があるフォルダーではありません。この dll を削除しようとしましたが、まだこの依存関係が見られ、GPU にしかアクセスできません。

何が起こっているのかについて何か考えはありますか?

4

2 に答える 2

2

Windows では、「OpenCL.dll」Khronos によって提供され、AMD、NVIDIA、および Intel によって再配布された ICD です。

実際のドライバーはレジストリによって参照され、ICD はそれらすべてを列挙します。

OpenCL プラットフォームを照会すると、インストールされているドライバー (AMD、NVIDIA、Intel) ごとに 1 つが表示されます。

各プラットフォーム内にはデバイス (またはデバイス) があります。たとえば、NVIDIA プラットフォームには NVIDIA GPU があり、Intel プラットフォームには CPU があります。

OpenCL.dll を置き換えないでください

clinfo または GPU-Z を実行して、認識される OpenCL プラットフォームとデバイスを確認します。

Intel CPU ドライバー (新しいドライバーは 2 日前に投稿されたばかりです) を再インストールして、ドライバーがインストールされていることを確認します。

注: Intel CPU ドライバーが機能するには、CPU に SSE 4.2 が必要です。

于 2013-10-16T18:43:56.207 に答える