c++11 - OpenCL 1.2 命名空间 cl 中没有成员错误
问题描述
我正在尝试根据我在网上找到的示例编写一个 openCL 1.2 程序,但遇到了错误。库是否已更改为使用类似于 std::vector 的 std::exception?
使用下面的代码段:
// Build the kernel
cl::Program program(context, sources);
try{
program.build({device});
} catch(cl::Error& e){
std::cerr << program.getBuildInfo<CL_PROGRAM_BUILD_LOG>(device) << std::endl;
throw e;
}
解决方案
我认为您使用的命令program.build
错误。它不将设备列表作为输入参数,而是一串预处理器选项。context
要使用的设备已在对象中烘焙。它也确实返回错误代码。试试这样:
int error = program.build("-cl-fast-relaxed-math");
if(error) std::cerr << program.getBuildInfo<CL_PROGRAM_BUILD_LOG>(device) << std::endl;
这里的示例"-cl-fast-relaxed-math"
是关闭浮点完整性检查的选项。
推荐阅读
- c# - 重新加载/重新启动 ASP.NET Core 2.1 Web 应用程序
- javascript - 动态选择选项列表的vue渲染
- java - 输出问题,用户输入通过 void 函数(Caesar's Cipher,Java,swing)
- prolog - Prolog 中的无损通用量化
- android - Firebase 身份验证 - 发生网络错误(例如超时、连接中断或无法访问主机)
- python - jinja2.exceptions.TemplateNotFound: home.html
- php - WHERE 子句不显示数据
- python - Heroku 上托管的简单烧瓶应用程序的身份验证
- java - 如何在 VSCode 中为 Bamboo Specs Java 启用 Intellisense
- c# - REST API HttpPost 它让我失望了