Closed Fifis closed 9 months ago
Hi @Fifis,
OpenCL has a (somewhat arbitrary) size limitation for how large a single VRAM buffer allocation can be. This is typically 1/4 of total VRAM capacity, in your case 512 MB. Most new GPU drivers do not inforce this limit anymore, and don't pose issues. However some very old GPU drivers for ancient GPUs do.
FluidX3D holds the majority of data (the density distribution functions) in one large buffer. You can compute the size of this largest buffer allocation as follows:
Nx*Ny*Nz cells * 76 Bytes/cell
Nx*Ny*Nz cells * 38 Bytes/cell
For the standard benchmark case (256³ resolution), this is 1216 MB (FP32) and 608 MB (FP16) respectively, so the AMD's old GPU driver throws OpenCL error -61 (too large single-buffer allocation).
You'll have to run FluidX3D at lower grid resolution unfortunately, and can't use even the small 2GB VRAM to the full extent. Largest supported cubic resolution is 188³ (FP32) or 240³ (FP16). You can change the benchmark resolution here.
Kind regards, Moritz
I have compiled everything for Linux + X11, and this is what it shows after compilation:
Here is the machine in question – it has 128 GB RAM and 24 physical cores:
How does one set the limits upon compilation / run? One of the few places where this problem is mentioned is this OpenBenchmarking page.