hello everybody,
i'm getting this error on compilation however i think i have the right includes. any hint?
here is the code (simplified) :
#include <string.h>
#include <stdio.h>
#include "CL/cl.h"
#include "CL/cl_ext.h"
#include "CL/cl_platform.h"
#include "CL/cl_gl.h"
#include "CL/opencl.h"
#define DATA_SIZE 10
const char *KernelSource =
"__kernel void hello(__global float *input, __global float *output)\n"\
"{\n"\
" size_t id = get_global_id(0);\n"\
" output[id] = input[id] * input[id];\n"\
"}\n"\
"\n";
int main(void)
{
cl_context context;
cl_context_properties properties[3];
cl_kernel kernel;
cl_command_queue command_queue;
cl_program program;
cl_int err;
cl_uint num_of_platforms=0;
cl_platform_id platform_id;
cl_device_id device_id;
cl_uint num_of_devices=0;
cl_mem input, output, host;
size_t global;
float inputData[DATA_SIZE]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
float results[DATA_SIZE]={0};
int i;
clGetPlatformIDs(1, &platform_id, &num_of_platforms);
clGetDeviceIDs(platform_id, CL_DEVICE_TYPE_GPU, 1, &device_id,
&num_of_devices) ;
properties[0]= CL_CONTEXT_PLATFORM;
properties[1]= (cl_context_properties) platform_id;
properties[2]= 0;
context = clCreateContext(properties,1,&device_id,NULL,NULL,&err);
command_queue = clCreateCommandQueue(context, device_id, 0, &err);
program = clCreateProgramWithSource(context,1,(const char **)
&KernelSource, NULL, &err);
clBuildProgram(program, 0, NULL, NULL, NULL, NULL);
kernel = clCreateKernel(program, "hello", &err);
input = clCreateBuffer(context, CL_MEM_BUS_ADDRESSABLE_AMD,
sizeof(float) * DATA_SIZE, NULL, NULL);
cl_bus_address_amd busadress;
memset(&busadress, 0 , sizeof(cl_bus_address_amd));
clEnqueueMakeBuffersResidentAMD(command_queue,1 ,&input , CL_TRUE, busadress, 0,0,0);
printf(" adress : surface : %l, marker : %l\n",busadress.surface_bus_address, busadress.marker_bus_address);
}