Skip to content

Bug Report and Solution: Kernel Compilation Error on Windows 11 with NVIDIA GPU (Applies to Vina-GPU 2.0 and 2.1) #73

Description

@liszt-c

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions