Platform Information
OS: Windows 11
GPU: NVIDIA Tesla P40
OpenCL Version: 3.01
Steps to Reproduce
Run the command:
./Vina-GPU+_K.exe --config=./input_file_example/2bm2_config.txt
Expected Behavior
The program should successfully generate Kernel1_Opt.bin and Kernel2_Opt.bin for the target platform.
Actual Behavior
The compilation fails with the following error:
Output will be in the directory ./test_out
Reading input ... done.
Setting up the scoring function ... done.
Using heuristic search_depth
Analyzing the binding site ... done.
GPU Platform: NVIDIA CUDA
GPU Device: Tesla P40
Using random seed: 2022
Build kernel 1 from source
OpenCL version: 3.01 error generated.
Error: Failed to build program executable!
log:<kernel>:63:10: error: incompatible pointer types assigning to 'const __global int *' from 'int const __global (*)[1024]'
address = &(ar->relation[temp]);
^ ~~~~~~~~~~~~~~~~~~~~~
The error occurs due to incompatible pointer types in the OpenCL kernel code.
Solution
File: /Vina-GPU+/OpenCL/src/kernels/kernel1.cl
Line 58 (originally line 63 in the error log):
Before (incorrect):
address = &(ar->relation[temp]); // Incorrect
After (correct):
address = ar->relation[temp]; // Correct
Useful Tip
The generated Kernel1_Opt.bin and Kernel2_Opt.bin files are compatible between Vina-GPU 2.0 and Vina-GPU 2.1. You can compile the kernels once and reuse the .binfiles across both versions
Platform Information
OS: Windows 11
GPU: NVIDIA Tesla P40
OpenCL Version: 3.01
Steps to Reproduce
Run the command:
Expected Behavior
The program should successfully generate Kernel1_Opt.bin and Kernel2_Opt.bin for the target platform.
Actual Behavior
The compilation fails with the following error:
The error occurs due to incompatible pointer types in the OpenCL kernel code.
Solution
File: /Vina-GPU+/OpenCL/src/kernels/kernel1.cl
Line 58 (originally line 63 in the error log):
Before (incorrect):
After (correct):
Useful Tip
The generated Kernel1_Opt.bin and Kernel2_Opt.bin files are compatible between Vina-GPU 2.0 and Vina-GPU 2.1. You can compile the kernels once and reuse the .binfiles across both versions