When I include "viennacl/linalg/svd.hpp", I got compiling error:
"~/viennalcl/include/viennacl/ocl/context.hpp", line 627: error:
incomplete type is not allowed
viennacl::ocl::kernel temp(kernel_handle, this, p_context_, kernel_name);
did you compile with the OpenCL backend enabled? SVD is currently only available with the OpenCL backend, so this must be available in order to get the compilation going.
Thanks Karli. I enabled the CUDA, OpenCL and OpenMP. I got the same error in both my linux and mac. I'll keep updates.
By adding "-DVIENNACL_WITH_OPENCL -fopenmp -DVIENNACL_WITH_OPENMP", I compile viennacl successfully in linux but still get errors in Mac:
viennacl/ocl/kernel.hpp:192:16: error: request for member ‘handle’ in ‘val’, which is of non-class type ‘const long int’
assert(&val.handle().opencl_handle().context() == &handle_.context() && bool("Kernel and memory object not in the same context!"));
Also, the c++11 and pgi compiler seems not being able to compile viennacl.
After replacing long with cl_uint in some test cpp files, it makes viennacl compiled.
thanks for letting us know. Could you please let me know which cpp-files you had to edit? Any of the ones shipped in ViennaCL? I'd like to fix these problems so the others won't stumble over it again.
Please find all my local modifications as the following:
if (run_test<viennacl::column_major, cl_uint>(epsilon) != EXIT_SUCCESS)
if (run_test<viennacl::row_major, cl_uint>(epsilon) != EXIT_SUCCESS)
retval = test<cl_uint, viennacl::row_major>(epsilon);
retval = test<cl_uint, viennacl::column_major>(epsilon);
result = std::max(double(result), double(*it));
Thanks! Apparently this only affects the latest dev-branch, not the release version. I'll fix this as soon as I've got a Windows machine available again...
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.