Main.cpp
------------------------------------
#include<OpenCLSimple.h>
#include<OpenCLSimple.cpp>

const char *KernelSource = "\n" \
"#pragma OPENCL EXTENSION cl_khr_fp64 : enable                          \n" \
"                                                                       \n" \
"__kernel void MulScalar(                                               \n" \
"   const unsigned int count,                                           \n" \
"   __global double* input,                                             \n" \
"   __global double* output,                                            \n" \
"   double factor)                                                      \n" \
"{                                                                      \n" \
"   int i = get_global_id(0);                                           \n" \
"   if(i < count)                                                       \n" \
"       output[i] = input[i] * factor;                                  \n" \
"}                                                                      \n" \
"\n";

int main()
{
    double data   [DATA_SIZE];             
   
double results[DATA_SIZE]; 
   
   
for(int i = 0; i < DATA_SIZE; i++)
        data[i] = rand() / (
double)RAND_MAX;
   
    
int count = DATA_SIZE;
   
   
// ----------------------- OpenCL ----------------------------
    OpenCL cpu1(CPU);// CL_DEVICE_TYPE_CPU
    cpu1.Program(KernelSource);
    cpu1.Kernel(
"MulScalar");

    cl_mem input  = cpu1.MallocRead(
sizeof(double)  * DATA_SIZE);
    cl_mem output = cpu1.MallocWrite(
sizeof(double) * DATA_SIZE);
   
    cpu1.KernelArg(
"MulScalar",0, count);
    cpu1.KernelArg(
"MulScalar",1, input);
    cpu1.KernelArg(
"MulScalar",2, output);
    cpu1.KernelArg(
"MulScalar",3, 2.0);
   
   
    cpu1.ToGPU(input,data,
sizeof(double)*count);
    cpu1.Call(
"MulScalar",count);
    cpu1.Wait();
    cpu1.ToCPU(output,results,
sizeof(double)*count);
   
    // ---------------------- Output ----------------------------
   
for (int t=500;t<512;t++) {
        cout << data[t] <<
" " << results[t] <<  "\n";
    }

    getchar();
}



CMD 32Bit: g++ Main.cpp -lopencl