diff --git a/src/OCLStream.cpp b/src/OCLStream.cpp index 422b409..ed419b5 100644 --- a/src/OCLStream.cpp +++ b/src/OCLStream.cpp @@ -70,7 +70,12 @@ OCLStream::OCLStream(const unsigned int ARRAY_SIZE, const int device_index) // Create program cl::Program program(context, kernels); if (sizeof(T) == sizeof(double)) + { + // Check device can do double + if (!device.getInfo()) + throw std::runtime_error("Device does not support double precision, please use --float"); program.build("-DTYPE=double"); + } else if (sizeof(T) == sizeof(float)) program.build("-DTYPE=float");