First of all thanks a lot for providing this tool! It looks like it could be quite helpful for me, but unfortunately I have troubles getting it up and running.
I followed the installation guide for Windows and left the OpenGL visualization flag in CMake unchecked for now. Compiling and installing with nmake worked, and so did the setting of the environment variables.
However, when I verify the installation in a Python console, I get the following error when running the line opencl_manager = GGEMSOpenCLManager():
Thank you for using GGEMS!
I have never encountered this error. Your installation of GGEMS seems correct, but I think that the problem comes rather from the installation of the NVIDIA driver. It’s like GGEMS couldn’t find any OpenCL devices on your PC.
In your terminal try the command ‘nvidia-smi’ to see if you see your graphics card.
In python, after the command ‘from ggems import *’, run the command ‘GGEMSVerbosity(3)’, maybe you will have more information regarding your error.
Also I have never used python with a Conda environment. If you can try GGEMS on a standard python console. But I don’t think that solves the problem.
… as I can not put two images as a new user in one post, here is the second part of my answer:
Changing the verbosity level does not bring much new information. And running the code with a standard python console did not solve the problem, unfortunately:
OpenCL initializes all the devices it finds if the drivers are correctly installed.
The problem comes from the GGEMSOpenCLManager::GetOpenCLDevices method in the src/GGEMSOpenCLManager.cc file. But I don’t know which function throws an error, because I can’t reproduce your error on my PC. If you look in the file, there is a problem with one of the ‘getInfo’ methods.
If you can, try to see which function does not work. To do a quick test comment out these lines (I’ve had trouble with these functions before):
To debug, can you print the number of platforms and devices that OpenCL finds? In C++, these lines must be placed in the src/GGEMSOpenCLManager.cc file (line 189):
Thanks Anneke.
Surely you have 16-bit float support on your PC, I had never entered this condition to test it. I don’t have a device that supports 16bit float.
To correct your problem more generally, I think you have to add 16-bit support (like 64-bit) directly in the file ‘include/GGEMS/tools/GGEMSTypes.hh’ line 118
Ah, I see. Thank you!
I pulled and built the newest version of the repo but unfortunately, I still get the CL_INVALID_VALUE error. Removing the CheckOpenCLError function again solves the problem.
Ok, I removed that part of the code. The CL_DEVICE_HALF_FP_CONFIG variable can no longer be used with the ‘getInfo’ method with OpenCL version 3. I hadn’t checked.