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

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";

#define DATA_SIZE (1024)

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 cpu1(CPU);
    cpu1.Program(KernelSource);
    cpu1.Kernel(
"MulScalar");

    cpu1.Bind(
"MulScalar",count);
    cpu1.Bind(
"MulScalar",data   , sizeof(double)*count, READ);
    cpu1.Bind(
"MulScalar",results, sizeof(double)*count, WRITE);
    cpu1.Bind(
"MulScalar",2.0);

    cpu1.ToDevice(
"MulScalar");
    cpu1.Call(
"MulScalar",count);
    cpu1.Wait();
    cpu1.FromDevice(
"MulScalar");
   
   
for (int t=500;t<512;t++)
    cout << data[t] <<
" " << results[t] <<  "\n";

    getchar();
}



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