I have AMD FirePro v9800 and clGetDeviceInfo with CL_DEVICE_ADDRESS_BITS tells me '32'. Is there any way to make it work like a x64 bit system?
What do you mean? Do you want to replace '32' to '64'? As you know, global_work_size < 2^CL_DEVICE_ADDRESS_BITS-1. If you change it to 64, it must be wrong. And it can work fine in a x64 bit system.
Hi Wenju, thank you for answer,
I mean that now sizeof(int *) is equal to 4 on GPU and 8 on my CPU. I'd like to work on GPU with the same as CPU 64-bits pointers. Is there any function to do this?
I don't think such kind of function exist. Otherwise, why do you change it to 4, you can use win32, not x64.
FirePro v9800 has 4Gb of memory and if I use it like 32-bit system I cannot allocate more than (2^32 / 8) bytes (512Mb) of doubles. I'd like to allocate more memory for double arrays.
You could use env variable to increase memory limit:
I think your calculation is wrong. CL_DEVICE_ADDRESS_BITS = 32, the addressing range = 2^32 =4Gb (not 2^32/8). Moreover, if your system is 32bit. The CPU address line is more than 32, may be 35.
you can't pass pointers between device and host. so i don't understand why do you want it.
Retrieving data ...