pyscf/gpu4pyscf

Unable to compile in Docker image

Open

#126 opened on Mar 20, 2024

 (16 comments) (0 reactions) (0 assignees)Cuda (70 forks)auto 404
good first issue

Repository metrics

Stars
 (329 stars)
PR merge metrics
 (PR metrics pending)

Description

Hi,

I cannot get gpu4pyscf to compile inside the environment generated through 'dockerfiles/compile/Dockerfile'

Environment:

uname -a:
Linux 6.5.0-25-generic #25~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Feb 20 16:09:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
nvidia-smi:
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.161.07             Driver Version: 535.161.07   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce GTX 1080 Ti     Off | 00000000:01:00.0  On |                  N/A |
| 30%   60C    P2             175W / 275W |   5021MiB / 11264MiB |    100%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

Issues:

  1. unclear instructions on getting started

Based on assumptions / trail and error I followed this scenario:

  • build docker
  • login to docker env on a terminal
  • put gpu4pyscf inside '/usr/local/lib/python3.9/dist-packages/pyscf/'
  • CD into gpu4pyscf
  • run 'sh build.sh'

=> Are these steps correct? Or am I missing something already?

I suggest to add some instructions to get started with compiling to the Readme file

  1. compile failed due to missing Fortran compiler - no fortran compiler found in docker env

Actions taken: apt-get update && apt-get install gfortran

=> is this the correct Fortran compiler?

I Suggest to add proper Fortran compiler to docker 'compile' environment or add instructions for selecting/installing the correct compiler

  1. compile failed due to undefined references:

Errors below, I currently haven't been able to find out what I am missing.

Scanning dependencies of target multicharge-exe
[ 65%] Building Fortran object _deps/multicharge-build/app/CMakeFiles/multicharge-exe.dir/main.f90.o
[ 67%] Linking Fortran executable multicharge
/usr/bin/ld: ../libmulticharge.a(blas.F90.o): in function `__multicharge_blas_MOD_mchrg_dgemm':
/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/blas.F90:520: undefined reference to `dgemm_'
/usr/bin/ld: ../libmulticharge.a(blas.F90.o): in function `__multicharge_blas_MOD_mchrg_sgemm':
/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/blas.F90:475: undefined reference to `sgemm_'
/usr/bin/ld: ../libmulticharge.a(blas.F90.o): in function `__multicharge_blas_MOD_mchrg_dsymv':
/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/blas.F90:430: undefined reference to `dsymv_'
/usr/bin/ld: ../libmulticharge.a(blas.F90.o): in function `__multicharge_blas_MOD_mchrg_ssymv':
/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/blas.F90:397: undefined reference to `ssymv_'
/usr/bin/ld: ../libmulticharge.a(blas.F90.o): in function `__multicharge_blas_MOD_mchrg_dgemv':
/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/blas.F90:364: undefined reference to `dgemv_'
/usr/bin/ld: ../libmulticharge.a(blas.F90.o): in function `__multicharge_blas_MOD_mchrg_sgemv':
/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/blas.F90:330: undefined reference to `sgemv_'
/usr/bin/ld: ../libmulticharge.a(lapack.F90.o): in function `__multicharge_lapack_MOD_mchrg_dsytri':
/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:353: undefined reference to `dsytri_'
/usr/bin/ld: /usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:353: undefined reference to `dsytri_'
/usr/bin/ld: /usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:353: undefined reference to `dsytri_'
/usr/bin/ld: ../libmulticharge.a(lapack.F90.o): in function `__multicharge_lapack_MOD_mchrg_ssytri':
/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:322: undefined reference to `ssytri_'
/usr/bin/ld: /usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:322: undefined reference to `ssytri_'
/usr/bin/ld: /usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:322: undefined reference to `ssytri_'
/usr/bin/ld: ../libmulticharge.a(lapack.F90.o): in function `__multicharge_lapack_MOD_mchrg_dsytrs':
/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:247: undefined reference to `dsytrs_'
/usr/bin/ld: ../libmulticharge.a(lapack.F90.o): in function `__multicharge_lapack_MOD_mchrg_ssytrs':
/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:221: undefined reference to `ssytrs_'
/usr/bin/ld: ../libmulticharge.a(lapack.F90.o): in function `__multicharge_lapack_MOD_mchrg_dsytrf':
/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:183: undefined reference to `dsytrf_'
/usr/bin/ld: /usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:190: undefined reference to `dsytrf_'
/usr/bin/ld: /usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:183: undefined reference to `dsytrf_'
/usr/bin/ld: /usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:190: undefined reference to `dsytrf_'
/usr/bin/ld: /usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:183: undefined reference to `dsytrf_'
/usr/bin/ld: ../libmulticharge.a(lapack.F90.o):/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:183: more undefined references to `dsytrf_' follow
/usr/bin/ld: ../libmulticharge.a(lapack.F90.o): in function `__multicharge_lapack_MOD_mchrg_ssytrf':
/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:144: undefined reference to `ssytrf_'
/usr/bin/ld: /usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:151: undefined reference to `ssytrf_'
/usr/bin/ld: /usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:144: undefined reference to `ssytrf_'
/usr/bin/ld: /usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:151: undefined reference to `ssytrf_'
/usr/bin/ld: /usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:144: undefined reference to `ssytrf_'
/usr/bin/ld: ../libmulticharge.a(lapack.F90.o):/usr/local/lib/python3.9/dist-packages/pyscf/gpu4pyscf/build/temp.linux-x86_64/gpu4pyscf/deps/src/dftd4_static-build/_deps/multicharge-src/src/multicharge/lapack.F90:144: more undefined references to `ssytrf_' follow
collect2: error: ld returned 1 exit status
gmake[5]: *** [_deps/multicharge-build/app/CMakeFiles/multicharge-exe.dir/build.make:105: _deps/multicharge-build/app/multicharge] Error 1
gmake[4]: *** [CMakeFiles/Makefile2:489: _deps/multicharge-build/app/CMakeFiles/multicharge-exe.dir/all] Error 2
gmake[3]: *** [Makefile:160: all] Error 2
gmake[2]: *** [CMakeFiles/dftd4_static.dir/build.make:130: deps/src/dftd4_static-stamp/dftd4_static-build] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:211: CMakeFiles/dftd4_static.dir/all] Error 2
gmake: *** [Makefile:103: all] Error 2

Contributor guide