Open alucard20724 opened 6 years ago
Not sure why there is a limit, if you are seeing improvements. I skimmed over the "src/main.cpp", and its using on lots of places uint32_t. I haven't tried, to see if it will work, but you can probably try changing some of the lines to "uint64_t", where "WorkSize" is used.
But, be wary, no idea why this is present:
// compute max runs // 4294967295 max nonce const uint64_t numNonces = 4294967296ULL / (uint64_t)global::numWorkerThreads; uint32_t maxRuns = (uint32_t)(numNonces / (uint32_t)clDevice.workSize);
Changing it to uint64_t and trying larger WorkSize will probably break it, since there is for some reason "C max nonce". Probably algorithm specific, or dunno.
WorkSize value is limited by GPU memory and OpenCL platform/driver configuration.
If you set it too high you may get an error:
Failed to create a lyra state buffer.
WorkSize 33554432 requires 4GB(4294967296) of VRAM for Lyra states buffer.
Open a Command Prompt/Terminal and type:
clinfo
It will print all OpenCL platforms with their capabilities.
There is a field called:
Max memory allocation
(in bytes)
On Windows it will probably be: 4244635648(not enough)
On Linux(ROCm) it is: 7301444403
is there going to be support for worksize greater than 16777216. a few of my vegas have thier highest hashrate at 16777216. was just wondering if there was support for a greater worksize. trying to see what my vegas can do.