octoboar

OpenCL single memory allocation limit

Discussion created by octoboar on Jan 7, 2020

AMD OpenCL limits a single buffer allocation (CL_DEVICE_MAX_MEM_ALLOC_SIZE) to 50% of total memory.

 

So on a 8Gb card there is only 4Gb available for allocation in a single chunk.

 

This is very sad for many applications, for example Ethereum DAG buffer is approaching 4Gb. This will prevent not only all 4Gb AMD cards, but also the 8Gb cards from mining. CUDA is not affected by this.

 

Some magic environment variables worked sometime in the past:

 

GPU_FORCE_64BIT_PTR 0
GPU_MAX_HEAP_SIZE 100
GPU_USE_SYNC_OBJECTS 1
GPU_MAX_ALLOC_PERCENT 100
GPU_SINGLE_ALLOC_PERCENT 100

 

Now they don't work for me, only GPU_MAX_HEAP_SIZE seems to affect global memory size, and should equal 100.

 

Has anyone been able to do anything about this?

Outcomes