With the latest drivers available at the moment (17.10), I'm able to allocate about 3.5GB of memory on Windows 10 64-bit on R290x with 4 GB RAM in one go. Yet, for some reason, clGetDeviceInfo(...CL_DEVICE_MAX_MEM_ALLOC_SIZE...) reports about 2.5 GB on Ubuntu 16.04 Linux with 17.40 drivers, which is the latest version at the moment as I understand it.
This said, is there a way for me to alloc a single chunk that is at least 3 GB on Linux? Most links and posts online lead me to some cryptocoin mining stuff, recommending to set various environment variables to get past this limit, for example,
I'm not mining, but still, setting these env variables to the suggested values doesn't seem to help - I am consistently getting ~2.5GB limit reported by clGetDeviceInfo.
I suppose I could split one large buffer into two smaller ones to get past this limitation, but that would introduce all sorts of #ifdef-s and so on into the code, which is acceptable but not ideal.
So, can I somehow alloc a single 3.5 GB chunk on Linux? Is it at all possible? What should I try and what should I do?
Thank you in advance.
~3 GB will do too, just not 2.5 GB, if it is at all possible.