Open Tuleshwori opened 1 month ago
I am also experiencing this issue and looking for a solution. It shows up for AutoDock-Vina-GPU-2.1
, QuickVina2-GPU-2.1
and QuickVina-W-GPU-2.1
. I already tried several combinations of GNU and CUDA compilers, but the problem persisted.
@Tuleshwori , what is the setup of the machine where the code works successfully? What compilers are you using? Also, are you using OpenCL 2.0 or 3.0? Thanks!
@vwcruzeiro It's a CPU (32 processor) with Ubuntu 20.04.6.LTS system, x86_64 architecture. compiler I have use is gcc, with cuda 11, boost_1_78 version, and OpenCL 3.0. I had issue with the latest version of boost while installing it, so change it to boost 1.78, and it work, and running so far
@vwcruzeiro , I've been fighting with this same error as well for the past week. It appears to be tied to some issue with the clBuildFromSource() function in the wrapcl.cl file. I've tried several GNU and clang compilers and have had little luck. What does your makefile look like? I have an NVIDIA machine and I haven't been able to reproduce this error on it yet, so I had thought it was tied to AMD specifically, but if you are getting this same error for a NVIDIA system maybe something else is going on.
@KelvinHobbes I reproduced the error on machines with NVIDIA RTX A5000
or NVIDIA GeForce GTX 970
GPUs. I explored the issue more on the A5000 machine and I tried several GCC versions (6.5.0, 7.5.0, 8.5.0, 11.4.0, 12.3.0, 13.2.0, and 14.1.0), CUDA versions (10.2.89, 11.5.0, 12.0.0, 12.1.0, 12.2.2, and 12.4.0) and Boost versions (1.77.0 and 1.84.0). Nothing worked. I tried both OpenCL 2.0 and 3.0.
What does your environment look like on the NVIDIA machine that worked for you?
@Tuleshwori @KelvinHobbes What do you get when you compile make out
instead of make source
? This disables compiling the OpenCL kernels from source during run time. I get a segmentation fault error if I do that.
I have been experiencing same error. Config:Pop!_OS 22.04, NVIDIA GeForce RTX 3060, cuda 12.4, boost 1.77, OpenCL 3 (tried with 2.0 too without success).
Thank you @vwcruzeiro, using make out
worked, still nedd to make sure the run outputs make sense.
Still I am not sure if compiling with the provided source is required or not
@Tuleshwori @KelvinHobbes @diallobakary4 I still did not succeed in compiling the code. Following @Tuleshwori specifications, I used the same compiler in Ubuntu 20.04.6.LTS (GCC 9.3.0) and Boost 1.78 and CUDA 11.5 compiled with this GCC version but, unfortunately, the compilation issue with AutoDockVina-GPU-2.1 persisted, both for make source
and make out
. I am running out of options... Do you have any suggestions?
@vwcruzeiro by using make out, it got compiled and is running. thank you so much for this. I tried this command in this system with ubuntu 22.04, NVIDIA A100 PCIe 80GB, AMD Epyc 7452 32core processor 128 GPU, gcc version 11.4.0, boost 1.78, cuda 12.4, OpenCL 3. I still need to try compiling like this in another system. I suppose you have changed the work_dir path in the Makefile and opencl_binary path in the test example also right ?
Hello @Tuleshwori , I used gcc version 11.4.0, boost 1.78, cuda 12.4, OpenCL 3.
and unfortunately the issue persisted for me.
Allright @vwcruzeiro i am also out of options to suggest anything. but thanks for your help !
@Tuleshwori Thank you so much for your help!
I have come across this docker file: https://github.com/ddnovikov/vina-gpu-dockerized/blob/main/Dockerfile This is for vina-gpu, yet the build process is very similar and may be easily adapted.
@vwcruzeiro Sorry for the late reply; I can compile (and get the OpenCL to work) on a NVIDIA V100S system with the following settings in my makefile: BOOST_LIB_PATH=/boost_1_78_0/ OPENCL_LIB_PATH=/cuda/11.4.2/rhel8_binary/ OPENCL_VERSION=-DOPENCL_2_0 GPU_PLATFORM=-DNVIDIA_PLATFORM
After digging around a bit, I think I've found the source of the issue. In the OpenCL kernels the VinaGPU code has a mismatch in pointer types. For some versions of the OpenCL drivers provided by the GPU manufacturers, the OpenCL JIT compiler permits the pointer to "degrade" into the necessary type (as what would happen if you could compile the kernel itself with gcc for instance); however, strictly speaking this type of behavior is not permitted. As a result, it looks like some of the OpenCL JIT compilers don't treat the pointer issue as a warning, but instead treat it as an error. As a result, when VinaGPU is run on systems with those OpenCL drivers, the vinaGPU executable will fail and the kernels will not compile.
Someone that is more familiar with the code might be able to fix this pointer issue.
@KelvinHobbes I greatly appreciate your insights! They’ve been incredibly helpful! As I’ve already tried various CUDA versions without success, could you suggest how I can verify your hypothesis independently? Would this involve changing my NVIDIA driver to a different version? For reference, I’m currently operating with the NVIDIA driver version 550.54.14 on A5000 GPUs. If applicable, could you please share the driver version you’ve found to compile the code correctly? Thank you so much!
I had the same error and in my compilation it only worked when: I extracted Boost_1_83_0 as root to /usr/local/boost_1_83_0 ;
I ran it in the /usr/local/boost_1_83_0 folder: ./bootstrap.sh --with-libraries=all && ./b2 && ./b2 install (I didn't change project-config.jam); I extracted AutoDock-Vina-GPU-2.1 to $HOME with the executable path as /home/moises/Vina-GPU-2.1/AutoDock-Vina-GPU-2.1/AutoDock-Vina-GPU-2-1 ;
I edited the makefile: WORK_DIR=/home/moises/Vina-GPU-2.1/AutoDock-Vina-GPU-2.1 BOOST_LIB_PATH=/usr/local/boost_1_83_0 OPENCL_LIB_PATH=/usr/local/cuda-12.4 OPENCL_VERSION=-DOPENCL_3_0 GPU_PLATFORM=-DNVIDIA_PLATFORM
I edited the PATH environment variables like: export PATH=$PATH:'/usr/local/boost_1_83_0' export PATH=$PATH:'/usr/local/boost_1_83_0/bin.v2' export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:'/usr/local/boost_1_83_0/stage/lib' export PATH=$PATH:'/home/moises/Vina-GPU-2.1/AutoDock-Vina-GPU-2.1' alias vina_GPU='/home/moises/Vina-GPU-2.1/AutoDock-Vina-GPU-2.1/AutoDock-Vina-GPU-2-1'
I ran it in the /home/moises/Vina-GPU-2.1/AutoDock-Vina-GPU-2.1 folder: make clean && make source
Tested: ./AutoDock-Vina-GPU-2-1 --config ./input_file_example/2bm2_config.txt
THE POST ERROR GENERATED HERE!!!!
I copied, as root, the two kernel files (Kernel1_Opt.bin and Kernel2_Opt.bin) to OPENCL_LIB_PATH=/usr/local/cuda-12.4 in the lib64 directory. And after that I ran "make clean && make" again (without the source). After days and days of suffering, it worked!
For those of you who were able to compile and run the code successfully, could you please report which NVIDIA driver you used? Thank you!
"I have the Nvidia driver 535.171.04 on one PC, and on the other, I believe it is more up to date. Both worked."
I could compile only with 'make out'. My driver version is 550.67
On Fri, Jun 14, 2024 at 6:39 PM moimaian @.***> wrote:
"I have the Nvidia driver 535.171.04 on one PC, and on the other, I believe it is more up to date. Both worked."
— Reply to this email directly, view it on GitHub https://github.com/DeltaGroupNJUPT/Vina-GPU-2.1/issues/27#issuecomment-2168566483, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADHIEFI76HWA6CXADGOVMKLZHM2ELAVCNFSM6AAAAABH2ARSZWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRYGU3DMNBYGM . You are receiving this because you were mentioned.Message ID: @.***>
-- ---- Bakary N'tji Diallo LinkedIn https://www.linkedin.com/in/bakarydiallo/ Google Scholar https://scholar.google.com/citations?user=CyRZO8cAAAAJ&hl=en
I have Nvidia Driver Version: 550.54.15
I have compiled the Vina-GPU-2.1 in a Ubuntu 22 system (GPU) following the instructions with cuda 12.4 and boost 1.78 version, but face this error when trying to test the example.
While the same set up is compiled, working and running successfully in another workstation (Ubuntu 20).