GPU 実装を使用するかどうかを実行時に決定する必要があるハイブリッド OpenCL アプリケーションに取り組んでいます。
アプリケーションをクラッシュさせずに、アプリケーションが実行されているコンピューターが opencl フレームワークをサポートしているかどうかを判断するためのクロスプラットフォーム (つまり、インテル、nvidia、および ati の場合) の方法はありますか? 最初は、Windows プラットフォームのみを開発しています。
#include <CL/cl.h>
#include <iostream>
int main()
{
std::cout << "Start cross paltform testing" << std::endl;
cl_platform_id platform[1];
clGetPlatformIDs(1, platform, 0);
std::cout << "End cross paltform testing" << std::endl;
return 0;
}
現時点では、次のエラーが表示されます。
The application was unable to start correctly (0xc000007b)...
上記の状況で起動しようとすると。
NB: 実際には、少なくとも nvidia では可能です。このシナリオで nvidia GPU SDK から oclDeviceQuery をテストしたところ、正しく動作しました。「opencl.dll」形式の Windows/System フォルダをアプリケーション フォルダにコピーするだけで済みます。同じ状況でアプリがクラッシュする理由がわかりません。
前もって感謝します。