首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenCL helloworld的问题

OpenCL helloworld的问题
EN

Stack Overflow用户
提问于 2017-04-20 21:13:59
回答 1查看 388关注 0票数 0

我是OpenCl的新手,我正在努力学习它。我安装了用于OpenCL™应用程序的英特尔®软件开发工具包,现在我正尝试将其用于visual studio 2015。当我试图运行hello world示例时,它在以下代码部分的"program.build“-part处返回一个错误。

有人能告诉我我错过了什么吗?

谢谢:)

consol返回以下内容:

代码语言:javascript
复制
Using platform: Intel<R> OpenCL
Using device: Intel<R> Core<TM> i7-3770 CPU e 3.40 GHz
-44
Error building: 

示例代码:

代码语言:javascript
复制
//get all platforms (drivers)
std::vector<cl::Platform> all_platforms;
cl::Platform::get(&all_platforms);
if (all_platforms.size() == 0) {
    std::cout << " No platforms found. Check OpenCL installation!\n";
    exit(1);
}

cl::Platform default_platform = all_platforms[0];
std::cout << "Using platform: " << default_platform.getInfo<CL_PLATFORM_NAME>() << "\n";

//get default device of the default platform
std::vector<cl::Device> all_devices;
default_platform.getDevices(CL_DEVICE_TYPE_ALL, &all_devices);
if (all_devices.size() == 0) {
    std::cout << " No devices found. Check OpenCL installation!\n";
    exit(1);
}
cl::Device default_device = all_devices[0];
std::cout << "Using device: " << default_device.getInfo<CL_DEVICE_NAME>() << "\n";


cl::Context context({ default_device });

cl::Program::Sources sources;

// kernel calculates for each element C=A+B
std::string kernel_code =
    "   void kernel simple_add(global const int* A, global const int* B, global int* C){       "
    "       C[get_global_id(0)]=A[get_global_id(0)]+B[get_global_id(0)];                 "
    "   }                                                                               ";
sources.push_back({ kernel_code.c_str(),kernel_code.length() });



cl::Program program(context, sources);
if (**program.build({ default_device }) != CL_SUCCESS**) {
std::cout << program.build({ default_device }) <<"\n";
std::cout << " Error building: " <<    program.getBuildInfo<CL_PROGRAM_BUILD_LOG>(default_device) << "\n";
exit(1);
}
EN

回答 1

Stack Overflow用户

发布于 2020-09-22 02:16:36

错误码-44表示“程序对象无效”。然而,这是不确定的,并暗示了一些其他破坏内存的问题。另请参阅this question

调用program.build()两次虽然不是很好的做法,但这里不是问题所在,而是一些线程问题?问题当然不在您提供的代码片段中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43520624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档