Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error while testing the example file using Vina-GPU-2.1 #27

Open
Tuleshwori opened this issue May 16, 2024 · 18 comments
Open

Error while testing the example file using Vina-GPU-2.1 #27

Tuleshwori opened this issue May 16, 2024 · 18 comments

Comments

@Tuleshwori
Copy link

Tuleshwori commented May 16, 2024

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.
Error-Vina-GPU-2 1
While the same set up is compiled, working and running successfully in another workstation (Ubuntu 20).

@Tuleshwori Tuleshwori changed the title Error while testing the exmaple file using Vina-GPU-2.1 Error while testing the example file using Vina-GPU-2.1 May 16, 2024
@vwcruzeiro
Copy link

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!

@Tuleshwori
Copy link
Author

@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

@KelvinHobbes
Copy link

KelvinHobbes commented May 17, 2024

@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.

@vwcruzeiro
Copy link

@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.

@diallobakary4
Copy link

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

@vwcruzeiro
Copy link

@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?

@Tuleshwori
Copy link
Author

@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 ?

@vwcruzeiro
Copy link

Hello @Tuleshwori , I used gcc version 11.4.0, boost 1.78, cuda 12.4, OpenCL 3. and unfortunately the issue persisted for me.

@Tuleshwori
Copy link
Author

Allright @vwcruzeiro i am also out of options to suggest anything. but thanks for your help !

@vwcruzeiro
Copy link

@Tuleshwori Thank you so much for your help!

@diallobakary4
Copy link

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.

@KelvinHobbes
Copy link

@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.

@vwcruzeiro
Copy link

@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!

@moimaian
Copy link

moimaian commented May 24, 2024

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!

@vwcruzeiro
Copy link

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!

@moimaian
Copy link

"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."

@diallobakary4
Copy link

diallobakary4 commented Jun 15, 2024 via email

@Tuleshwori
Copy link
Author

I have Nvidia Driver Version: 550.54.15

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants