Closed vsheg closed 2 years ago
@vsheg Thank you for your report and the fantastic formatting (I learned something new today). Unfortunately, I cannot reproduce the problem. Tested on a freshly installed current version of Arch Linux (with current gcc 11.1.0, make 4.3, and cuda 11.5.50 packages) with only our environment variables (and no others) set right before compiling:
export GPU_INCLUDE_PATH=/opt/cuda/include
export GPU_LIBRARY_PATH=/opt/cuda/lib64
make DEVICE=GPU NUMWI=128
It looks as if gcc in your case is ignoring the -I
options specified (search path for include files) which is odd and something I haven't seen happen before. Also, it seems (for your second try) that you overwrote LD_LIBRARY_PATH
which could be somewhat dangerous (it's usually good practice to append/prepend to it only: export LD_LIBRARY_PATH=$SOME_PATH:$LD_LIBRARY_PATH
) but this should only affect the system's ability to find dynamic libraries at runtime.
As shown above with the fresh Arch Linux install, only the two environment variables GPU_INCLUDE_PATH
and GPU_LIBRARY_PATH
should need to be set for successful compilation.
@vsheg For completeness, I also successfully compiled the 1.5.2 release version like above with
export GPU_INCLUDE_PATH=/opt/cuda/include
export GPU_LIBRARY_PATH=/opt/cuda/lib64
make DEVICE=GPU NUMWI=128
I just realized that your compilation fails for otool
(which is the non-accelerated tool). I wonder wether compiling only the docking software with make DEVICE=GPU NUMWI=128 odock
would work for you.
@atillack Thank you! The following works without any error.
$ make DEVICE=GPU NUMWI=64 otool
I'm not fluent in make
. It's not enough, is it?
So, then I run:
$ make DEVICE=GPU NUMWI=64 odock
and now I can see binary
$ ls -l bin/
total 948
-rwxr-xr-x 1 sheg sheg 259072 Nov 12 15:12 adgpu_analysis
-rwxr-xr-x 1 sheg sheg 708120 Nov 12 15:12 autodock_gpu_64wi
It seems now I can use autodock_gpu_64wi
to perform docking. I'm a little surprised
I don't have root access to the machine I'm working with. I figured out that it has multiple CUDA installations in inconsistent locations. I'll try to compile with your default instruction (when I'll have all information about the host) and update the issue if I find something out.
@vsheg I'm glad it worked :-) It seems separating the two compilations (otool -> adgpu_analysis
and odock -> autodock_gpu_Nwi
) is what did the trick. In the included Makefile this is what is supposed to happen as well but from your compilation output earlier it looked like make stumbled and interleaved them.
For docking (and even the contact analysis) you will only need autodock_gpu_Nwi
. The included adgpu_analysis
tool is thought as a nice fallback in non-accelerated environments and for running separate analyses, i.e. on a smaller calculation node not used for computations.
Hi, it seems that a problem was with Linux installation. Thanks for helping, I'm closing the issue
Hello, I have some problems with compilation. I've already exported environment variables:
Paths are OK
```bash $ ls $GPU_INCLUDE_PATH/cuda.h /opt/cuda/include/cuda.h $ ls $GPU_LIBRARY_PATH/libnppim.so /opt/cuda/lib64/libnppim.so # soft symlinks: $ ls -l $GPU_INCLUDE_PATH lrwxrwxrwx 1 root root 28 Jan 3 2021 /opt/cuda/include -> targets/x86_64-linux/include $ ls -l $GPU_LIBRARY_PATH lrwxrwxrwx 1 root root 24 Jan 3 2021 /opt/cuda/lib64 -> targets/x86_64-linux/lib ```Attempt №1
```bash $ cd AutoDock-GPU-1.5.2 $ make DEVICE=GPU NUMWI=64 rm -f ./host/inc/performdocking.h ./host/src/performdocking.cpp nvcc -DN64WI -use_fast_math --ptxas-options="-v" -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -std=c++11 -I./common -I./host/inc -I/opt/cuda/include -I./cuda -c ./cuda/kernels.cu ln -sf performdocking.h.Cuda ./host/inc/performdocking.h ln -sf performdocking.cpp.Cuda ./host/src/performdocking.cpp DEVICE is set to GPU CPU_INCLUDE_PATH is undefined CPU_LIBRARY_PATH is undefined GPU_INCLUDE_PATH is set to /opt/cuda/include GPU_LIBRARY_PATH is set to /opt/cuda/lib64 Building adgpu_analysis ... g++ \ ./host/src/calcenergy.cpp ./host/src/getparameters.cpp ./host/src/main.cpp ./host/src/miscellaneous.cpp ./host/src/performdocking.cpp ./host/src/processgrid.cpp ./host/src/processligand.cpp ./host/src/processresult.cpp ./host/src/setup.cpp \ -std=c++11 -I./common -I./host/inc -DVERSION=\"v1.5-release\" \ -o./bin/adgpu_analysis \ -O3 -DTOOLMODE ptxas info : 0 bytes gmem, 288 bytes cmem[3] ptxas info : Compiling entry function '_Z27gpu_gradient_minAdam_kernelPfS_' for 'sm_52' ptxas info : Function properties for _Z27gpu_gradient_minAdam_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 64 registers, 7416 bytes smem, 336 bytes cmem[0], 112 bytes cmem[2] ptxas info : Compiling entry function '_Z25gpu_gradient_minAD_kernelPfS_' for 'sm_52' ptxas info : Function properties for _Z25gpu_gradient_minAD_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 64 registers, 7428 bytes smem, 336 bytes cmem[0], 120 bytes cmem[2] ptxas info : Compiling entry function '_Z31gpu_gen_and_eval_newpops_kernelPfS_S_S_' for 'sm_52' ptxas info : Function properties for _Z31gpu_gen_and_eval_newpops_kernelPfS_S_S_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 48 registers, 3672 bytes smem, 352 bytes cmem[0], 44 bytes cmem[2] ptxas info : Compiling entry function '_Z21gpu_perform_LS_kernelPfS_' for 'sm_52' ptxas info : Function properties for _Z21gpu_perform_LS_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 40 registers, 4112 bytes smem, 336 bytes cmem[0], 44 bytes cmem[2] ptxas info : Compiling entry function '_Z20gpu_sum_evals_kernelv' for 'sm_52' ptxas info : Function properties for _Z20gpu_sum_evals_kernelv 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 13 registers, 4 bytes smem, 320 bytes cmem[0] ptxas info : Compiling entry function '_Z23gpu_calc_initpop_kernelPfS_' for 'sm_52' ptxas info : Function properties for _Z23gpu_calc_initpop_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 48 registers, 3076 bytes smem, 336 bytes cmem[0], 36 bytes cmem[2] ptxas info : 0 bytes gmem, 288 bytes cmem[3] ptxas info : Compiling entry function '_Z27gpu_gradient_minAdam_kernelPfS_' for 'sm_60' ptxas info : Function properties for _Z27gpu_gradient_minAdam_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 64 registers, 7416 bytes smem, 336 bytes cmem[0], 112 bytes cmem[2] ptxas info : Compiling entry function '_Z25gpu_gradient_minAD_kernelPfS_' for 'sm_60' ptxas info : Function properties for _Z25gpu_gradient_minAD_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 64 registers, 7428 bytes smem, 336 bytes cmem[0], 120 bytes cmem[2] ptxas info : Compiling entry function '_Z31gpu_gen_and_eval_newpops_kernelPfS_S_S_' for 'sm_60' ptxas info : Function properties for _Z31gpu_gen_and_eval_newpops_kernelPfS_S_S_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 48 registers, 3672 bytes smem, 352 bytes cmem[0], 44 bytes cmem[2] ptxas info : Compiling entry function '_Z21gpu_perform_LS_kernelPfS_' for 'sm_60' ptxas info : Function properties for _Z21gpu_perform_LS_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 40 registers, 4112 bytes smem, 336 bytes cmem[0], 44 bytes cmem[2] ptxas info : Compiling entry function '_Z20gpu_sum_evals_kernelv' for 'sm_60' ptxas info : Function properties for _Z20gpu_sum_evals_kernelv 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 13 registers, 4 bytes smem, 320 bytes cmem[0] ptxas info : Compiling entry function '_Z23gpu_calc_initpop_kernelPfS_' for 'sm_60' ptxas info : Function properties for _Z23gpu_calc_initpop_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 48 registers, 3076 bytes smem, 336 bytes cmem[0], 36 bytes cmem[2] In file included from ./host/src/performdocking.cpp:34: ./host/inc/performdocking.h:32:10: fatal error: cuda.h: No such file or directory 32 | #includeAttempt №2
```bash $ make DEVICE=GPU NUMWI=64 rm -f ./host/inc/performdocking.h ./host/src/performdocking.cpp nvcc -DN64WI -use_fast_math --ptxas-options="-v" -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_61,code=sm_61 -gencode arch=compute_70,code=sm_70 -std=c++11 -I./common -I./host/inc -I/opt/cuda/include -I./cuda -c ./cuda/kernels.cu ln -sf performdocking.h.Cuda ./host/inc/performdocking.h ln -sf performdocking.cpp.Cuda ./host/src/performdocking.cpp DEVICE is set to GPU GPU_INCLUDE_PATH is set to /opt/cuda/include GPU_LIBRARY_PATH is set to /opt/cuda/lib64 CPU_INCLUDE_PATH is undefined CPU_LIBRARY_PATH is undefined Building adgpu_analysis ... g++ \ ./host/src/calcenergy.cpp ./host/src/getparameters.cpp ./host/src/main.cpp ./host/src/miscellaneous.cpp ./host/src/performdocking.cpp ./host/src/processgrid.cpp ./host/src/processligand.cpp ./host/src/processresult.cpp ./host/src/setup.cpp \ -std=c++11 -I./common -I./host/inc -DVERSION=\"v1.5-release\" \ -o./bin/adgpu_analysis \ -O3 -DTOOLMODE ptxas info : 0 bytes gmem, 288 bytes cmem[3] ptxas info : Compiling entry function '_Z27gpu_gradient_minAdam_kernelPfS_' for 'sm_52' ptxas info : Function properties for _Z27gpu_gradient_minAdam_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 64 registers, 7416 bytes smem, 336 bytes cmem[0], 112 bytes cmem[2] ptxas info : Compiling entry function '_Z25gpu_gradient_minAD_kernelPfS_' for 'sm_52' ptxas info : Function properties for _Z25gpu_gradient_minAD_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 64 registers, 7428 bytes smem, 336 bytes cmem[0], 120 bytes cmem[2] ptxas info : Compiling entry function '_Z31gpu_gen_and_eval_newpops_kernelPfS_S_S_' for 'sm_52' ptxas info : Function properties for _Z31gpu_gen_and_eval_newpops_kernelPfS_S_S_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 48 registers, 3672 bytes smem, 352 bytes cmem[0], 44 bytes cmem[2] ptxas info : Compiling entry function '_Z21gpu_perform_LS_kernelPfS_' for 'sm_52' ptxas info : Function properties for _Z21gpu_perform_LS_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 40 registers, 4112 bytes smem, 336 bytes cmem[0], 44 bytes cmem[2] ptxas info : Compiling entry function '_Z20gpu_sum_evals_kernelv' for 'sm_52' ptxas info : Function properties for _Z20gpu_sum_evals_kernelv 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 13 registers, 4 bytes smem, 320 bytes cmem[0] ptxas info : Compiling entry function '_Z23gpu_calc_initpop_kernelPfS_' for 'sm_52' ptxas info : Function properties for _Z23gpu_calc_initpop_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 48 registers, 3076 bytes smem, 336 bytes cmem[0], 36 bytes cmem[2] ptxas info : 0 bytes gmem, 288 bytes cmem[3] ptxas info : Compiling entry function '_Z27gpu_gradient_minAdam_kernelPfS_' for 'sm_60' ptxas info : Function properties for _Z27gpu_gradient_minAdam_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 64 registers, 7416 bytes smem, 336 bytes cmem[0], 112 bytes cmem[2] ptxas info : Compiling entry function '_Z25gpu_gradient_minAD_kernelPfS_' for 'sm_60' ptxas info : Function properties for _Z25gpu_gradient_minAD_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 64 registers, 7428 bytes smem, 336 bytes cmem[0], 120 bytes cmem[2] ptxas info : Compiling entry function '_Z31gpu_gen_and_eval_newpops_kernelPfS_S_S_' for 'sm_60' ptxas info : Function properties for _Z31gpu_gen_and_eval_newpops_kernelPfS_S_S_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 48 registers, 3672 bytes smem, 352 bytes cmem[0], 44 bytes cmem[2] ptxas info : Compiling entry function '_Z21gpu_perform_LS_kernelPfS_' for 'sm_60' ptxas info : Function properties for _Z21gpu_perform_LS_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 40 registers, 4112 bytes smem, 336 bytes cmem[0], 44 bytes cmem[2] ptxas info : Compiling entry function '_Z20gpu_sum_evals_kernelv' for 'sm_60' ptxas info : Function properties for _Z20gpu_sum_evals_kernelv 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 13 registers, 4 bytes smem, 320 bytes cmem[0] ptxas info : Compiling entry function '_Z23gpu_calc_initpop_kernelPfS_' for 'sm_60' ptxas info : Function properties for _Z23gpu_calc_initpop_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 48 registers, 3076 bytes smem, 336 bytes cmem[0], 36 bytes cmem[2] In file included from ./host/src/performdocking.cpp:34: ./host/inc/performdocking.h:47:10: fatal error: GpuData.h: No such file or directory 47 | #include "GpuData.h" | ^~~~~~~~~~~ compilation terminated. ptxas info : 0 bytes gmem, 288 bytes cmem[3] ptxas info : Compiling entry function '_Z27gpu_gradient_minAdam_kernelPfS_' for 'sm_61' ptxas info : Function properties for _Z27gpu_gradient_minAdam_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 64 registers, 7416 bytes smem, 336 bytes cmem[0], 112 bytes cmem[2] ptxas info : Compiling entry function '_Z25gpu_gradient_minAD_kernelPfS_' for 'sm_61' ptxas info : Function properties for _Z25gpu_gradient_minAD_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 64 registers, 7428 bytes smem, 336 bytes cmem[0], 120 bytes cmem[2] ptxas info : Compiling entry function '_Z31gpu_gen_and_eval_newpops_kernelPfS_S_S_' for 'sm_61' ptxas info : Function properties for _Z31gpu_gen_and_eval_newpops_kernelPfS_S_S_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 48 registers, 3672 bytes smem, 352 bytes cmem[0], 44 bytes cmem[2] ptxas info : Compiling entry function '_Z21gpu_perform_LS_kernelPfS_' for 'sm_61' ptxas info : Function properties for _Z21gpu_perform_LS_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 40 registers, 4112 bytes smem, 336 bytes cmem[0], 44 bytes cmem[2] ptxas info : Compiling entry function '_Z20gpu_sum_evals_kernelv' for 'sm_61' ptxas info : Function properties for _Z20gpu_sum_evals_kernelv 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 13 registers, 4 bytes smem, 320 bytes cmem[0] ptxas info : Compiling entry function '_Z23gpu_calc_initpop_kernelPfS_' for 'sm_61' ptxas info : Function properties for _Z23gpu_calc_initpop_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 48 registers, 3076 bytes smem, 336 bytes cmem[0], 36 bytes cmem[2] ptxas info : 0 bytes gmem, 288 bytes cmem[3] ptxas info : Compiling entry function '_Z27gpu_gradient_minAdam_kernelPfS_' for 'sm_70' ptxas info : Function properties for _Z27gpu_gradient_minAdam_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 64 registers, 7416 bytes smem, 368 bytes cmem[0] ptxas info : Compiling entry function '_Z25gpu_gradient_minAD_kernelPfS_' for 'sm_70' ptxas info : Function properties for _Z25gpu_gradient_minAD_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 64 registers, 7428 bytes smem, 368 bytes cmem[0] ptxas info : Compiling entry function '_Z31gpu_gen_and_eval_newpops_kernelPfS_S_S_' for 'sm_70' ptxas info : Function properties for _Z31gpu_gen_and_eval_newpops_kernelPfS_S_S_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 48 registers, 3672 bytes smem, 384 bytes cmem[0] ptxas info : Compiling entry function '_Z21gpu_perform_LS_kernelPfS_' for 'sm_70' ptxas info : Function properties for _Z21gpu_perform_LS_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 40 registers, 4112 bytes smem, 368 bytes cmem[0] ptxas info : Compiling entry function '_Z20gpu_sum_evals_kernelv' for 'sm_70' ptxas info : Function properties for _Z20gpu_sum_evals_kernelv 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 15 registers, 4 bytes smem, 352 bytes cmem[0] ptxas info : Compiling entry function '_Z23gpu_calc_initpop_kernelPfS_' for 'sm_70' ptxas info : Function properties for _Z23gpu_calc_initpop_kernelPfS_ 0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads ptxas info : Used 48 registers, 3076 bytes smem, 368 bytes cmem[0] Building autodock_gpu_64wi ... g++ \ ./host/src/calcenergy.cpp ./host/src/getparameters.cpp ./host/src/main.cpp ./host/src/miscellaneous.cpp ./host/src/performdocking.cpp ./host/src/processgrid.cpp ./host/src/processligand.cpp ./host/src/processresult.cpp ./host/src/setup.cpp \ -std=c++11 -I./common -I./host/inc -I/opt/cuda/include -I./cuda -L/opt/cuda/lib64 -Wl,-rpath=/opt/cuda/lib64: -DVERSION=\"v1.5-release\" \ kernels.o -lcurand -lcudart \ -o./bin/autodock_gpu_64wi \ -DGPU_DEVICE -DN64WI -O3 make: *** [Makefile.Cuda:191: otool] Error 1 make: *** Waiting for unfinished jobs.... ```System
``` $ hostnamectl <...> Operating System: Arch Linux Kernel: Linux 5.10.6-arch1-1 Architecture: x86-64 ```nvcc
``` $ nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2020 NVIDIA Corporation Built on Mon_Nov_30_19:08:53_PST_2020 Cuda compilation tools, release 11.2, V11.2.67 Build cuda_11.2.r11.2/compiler.29373293_0 ```