But if I try to perform actions on a GPU vector of any type other than <float>,
for example
cl::vector<double> gpu_data(...);
or
cl::vector<uint> gpu_data(...);
then the transform method fails:
--- Host results (double) ---
42476.927949
29102.076902
41008.447910
41408.174652
44246.444377
terminate called after throwing an instance of 'boost::wrapexcept<boost::compute::program_build_failure>'
what(): Build Program Failure
And it concerns not only root calculation.
For example, the floor() rounding function also fails.
My test program (Qt/C++):
It's a normal output:
But if I try to perform actions on a GPU vector of any type other than
<float>
, for exampleor
then the
transform
method fails:And it concerns not only root calculation. For example, the
floor()
rounding function also fails.Some tests with combinations of types:
Is my GPU the problem? Is it Boost? OpenCL?