我在OpenCL中编写了我的第一个程序。但是我无法运行该程序,因为
失败断言平台大小:
#include <iostream>
#include <vector>
#include <cassert>
#include <fstream>
#include <string>
//#define CL_USE_DEPRECATED_OPENCL_2_0_APIS
#include <CL/cl.hpp>
using utyp = unsigned int;
constexpr utyp SIZE = 100000000;
int main(int argc, char *argv[] ) {
std::vector< cl::Platform > platforms;
const auto retGet = cl::Platform::get( &platforms );
std::cout << "retGet == " << retGet << std::endl;
std::cout << "Platforms.size == " << platforms.size() << std::endl;
assert( platforms.size() > 0 );
// etc
我使用kubuntu18.x。
感谢您的任何帮助。
最好的祝福。
继续...
我可以访问源cl::Platform::get:
static cl_int get( VECTOR_CLASS<Platform>* platforms) {
cl_uint n = 0;
if( platforms == NULL ) {
return detail::errHandler(CL_INVALID_ARG_VALUE, __GET_PLATFORM_IDS_ERR);
}
cl_int err = ::clGetPlatformIDs(0, NULL, &n);
if (err != CL_SUCCESS) {
return detail::errHandler(err, __GET_PLATFORM_IDS_ERR);
}
//etc
:: clGetPlatformIDs(0,NULL,&n)返回-1001。
我在文档中找不到任何描述值-1001。 :/
最佳答案
我找到了解决方案。我必须从此站点安装软件包:
https://github.com/intel/compute-runtime/blob/master/DISTRIBUTIONS.md