Eclipse CDT(Mars)とintel_sdk_for_opencl_setup_6.1.0.1600に基づいてWindows 10でOpenCLアプリケーションを開発しています。私のコンピュータのデバイスは以下の通りです:intelを使用しているため、OpenCLコードがクラッシュするOpenCL.lib
OS:Windowsの10プロ CPU:I7-5500U ドライバ:
問題をwin64_15407.4279.exe:コードはEclipseのCDTで正常にビルドされているが、それはEclipse CDTで - >ローカルC/C++アプリケーションとして実行しているときにクラッシュしてハングします。実際には、OpenCL.lib(Intel OpenCL SDKから来て、C:\ Program Files(x86)\ Intel \ OpenCL SDK \ 6.1 \にあるファイルを置き換えることで、同じIDEとOSでビルドして正常に実行できます) lib \ x64 \ OpenCL.lib)をAMD OpenCL SDK(*** \ AMD APP \ lib \ x64 \ OpenCL.lib)の対角に置き換えます。
ファイル(C:\ Program Files(x86)\ Intel \ OpenCL SDK \ 6.1 \ lib \ x64 \ OpenCL.lib)を(*** \ AMD APP \ lib \ x64 \ OpenCL.lib)どのようにすれば、ネイティブintel_sdk_for_opencl_setup_6.1.0.1600とEclipse CDTを使用してコードを正常に実行できますか?
#include <stdio.h>
#include <stdlib.h>
#include<CL/cl.h>
int main(int argc, char *argv[]) {
cl_uint err;
cl_uint num_platform;
cl_platform_id *platform;
err = clGetPlatformIDs(0, NULL, &num_platform);
if (CL_SUCCESS == err)
printf("Number of Detected OpenCL platforms: %d\n\n", num_platform);
else
printf("Error calling clGetPlatformIDs. Error code: %d \n", err);
platform = (cl_platform_id *) malloc(sizeof(cl_platform_id) * num_platform);
err = clGetPlatformIDs(num_platform, platform, NULL);
size_t size;
for (cl_uint i = 0; i < num_platform; i++) {
err = clGetPlatformInfo(platform[i], CL_PLATFORM_NAME, 0, NULL, &size);
char *PName = (char *) malloc(size);
err = clGetPlatformInfo(platform[i], CL_PLATFORM_NAME, size, PName,NULL);
printf("PName:%s\n", PName);
err = clGetPlatformInfo(platform[i], CL_PLATFORM_VENDOR, 0, NULL,&size);
char *PVendor = (char *) malloc(size);
err = clGetPlatformInfo(platform[i], CL_PLATFORM_VENDOR, size, PVendor,NULL);
printf("PVendor:%s\n", PVendor);
err = clGetPlatformInfo(platform[i], CL_PLATFORM_VERSION, 0, NULL,&size);
char *PVersion = (char *) malloc(size);
err = clGetPlatformInfo(platform[i], CL_PLATFORM_VERSION, size,PVersion, NULL);
printf("PVersion:%s\n", PVersion);
printf("i=%d err=%d\n\n", i, err);
}
return 0;
}
まず、IntelのOpenCL.dllをAMDのOpenCL.dllで置き換えるのは効果的な解決策です。第2に、オフィシャルソリューションhttps://software.intel.com/en-us/forums/opencl/topic/676363?language=ruに関するトピックがあります – chengzi