openworm / sibernetic

This is a C++/OpenCL implementation of the PCISPH algorithm supplemented with a set of biomechanics related features applied to C. elegans locomotion
Other
361 stars 105 forks source link

CL_OUT_OF_RESOURCES error on Nvidia GTX 1060 copying position buffer from device #136

Open jhurlbut opened 6 years ago

jhurlbut commented 6 years ago

I am able to run the simulation on the CPU and Intel HD GPU but when running on my Nvidia GPU on the same machine I get a CL_OUT_OF_RESOURCES error when the code tries to copy the position buffer from device. This is on Windows 10.

lungd commented 6 years ago

@jhurlbut I didn't run Sibernetic on a Windows machine yet. With Ubuntu, I think I got the same error after nvidia released and shipped CUDA 9 with the graphics driver package. After downgrading to an older version (375.82) it worked again.

@a-palyanov @skhayrulin Any comments?

skhayrulin commented 6 years ago

@lungd you can install clinfo utility (sudo apt-get install clinfo), than after installation newest driver (with which you have a problem) you can run it and it will show you all available OpenCL devices if your NVIDIA card there than the problem is on sibernetic side if it's not than something wrong with new NVIDIA driver, also could you please give information about this driver?

lungd commented 6 years ago

@skhayrulin clinfo_out sibernetic_out nvidia-driver version: 387.12 I got the same error with another machine (other GPU, driver version) so I think this issue can be fixed by changing the kernel? Or maybe the OpenCL version has to be >= 2.0 with CUDA >= 9.0 ?

@jhurlbut Do you get the same error?

jhurlbut commented 6 years ago

I tried installing Cuda 7.5 next to the Cuda v9 already installed. The same error occured with Cuda v9. The nvidia driver version is 385.54. Yes I get that same error "ERROR: Could not enqueue read data from buffer error code is error code is -5" which after looking up online is the CUDA error CL_OUT_OF_RESOURCES which I understand is usually an issue of trying to read a buffer of a larger size than was written into the buffer. Is there a version of clinfo for Windows? Google only comes up with linux installs. I will try 375.82 driver version. @lungd do you recall which version of CUDA comes with that driver? Thanks!

lungd commented 6 years ago

@jhurlbut with 375.82 I get the following output:

...
Configuration was loaded
 CL_PLATFORM_VERSION [0]:   OpenCL 2.1 LINUX
 CL_PLATFORM_VERSION [1]:   OpenCL 1.2 CUDA 8.0.0
 CL_PLATFORM_VERSION [2]:   OpenCL 2.0 LINUX
CL_CONTEXT_PLATFORM [1]: CL_DEVICE_NAME [0]:    GeForce GTX 1080 Ti

CL_CONTEXT_PLATFORM [1]: CL_DEVICE_TYPE [0]:    GPU
...

So if you can see CUDA 8 it should work. If you can see your GPU after 'CL_DEVICE_NAME [0]', you don't need to check the devices with clinfo or with an alternative tool for Windows.

BTW, I didn't install the cuda toolkit only the nvidia driver.