SPECFEM / specfem3d

SPECFEM3D_Cartesian simulates acoustic (fluid), elastic (solid), coupled acoustic/elastic, poroelastic or seismic wave propagation in any type of conforming mesh of hexahedra (structured or not).
GNU General Public License v3.0
389 stars 223 forks source link

The problem is maybe -arch sm_13 instead of -arch sm_11 in the Makefile, please doublecheck #1661

Open brioglade opened 6 months ago

brioglade commented 6 months ago

Error in setConst_hprime_xx: invalid device symbol

The problem is maybe -arch sm_13 instead of -arch sm_11 in the Makefile, please doublecheck

hi, which line should I uncomment in the makefile? I have the same problem with cuda12.2.

https://github.com/SPECFEM/specfem3d/issues/1327 Screenshot from 2023-12-13 01-22-31

danielpeter commented 5 months ago

what is the GPU card you're using? check the architecture of the card (Pascal, Volta, Ampere, Hopper, ...) as the gencode should match the architecture, not the CUDA toolkit version:

from the Makefile:

# CUDA architecture / code version
# Fermi   (not supported): -gencode=arch=compute_10,code=sm_10
# Tesla   (Tesla C2050, GeForce GTX 480): -gencode=arch=compute_20,code=sm_20
# Tesla   (cuda4, K10, Geforce GTX 650, GT 650m): -gencode=arch=compute_30,code=sm_30
# Kepler  (cuda5, K20) : -gencode=arch=compute_35,code=sm_35
# Kepler  (cuda6.5, K80): -gencode=arch=compute_37,code=sm_37
# Maxwell (cuda6.5+/cuda7, Quadro K2200): -gencode=arch=compute_50,code=sm_50
# Pascal  (cuda8,P100, GeForce GTX 1080, Titan): -gencode=arch=compute_60,code=sm_60
# Volta   (cuda9, V100): -gencode=arch=compute_70,code=sm_70
# Turing  (cuda10, T4, GeForce RTX 2080): -gencode=arch=compute_75,code=sm_75
# Ampere  (cuda11, A100, GeForce RTX 3080): -gencode=arch=compute_80,code=sm_80
# Hopper  (cuda12, H100): -gencode=arch=compute_90,code=sm_90

for example, if you have an Ampere A100 card, configure the code with the flag --with-cuda=cuda11 even if you have a toolkit version 12.2.

trapprb8 commented 5 months ago

I have the same problem: Error in setConst_hprime_xx: invalid device symbol The problem is maybe -arch sm_13 instead of -arch sm_11 in the Makefile, please doublecheck

I am trying to configure with a Quadro P4000, which should be Pascal architecture. I used the following code:

$ ./configure FC=gfortran CC=gcc --with-mpi MPIFC=mpif90 USE_BUNDLED_SCOTCH=1 --with-cuda=cuda8 CUDA_LIB=/usr/local/cuda/lib64 $ make

danielpeter commented 4 months ago

follow-up responses are here: https://github.com/SPECFEM/specfem2d/issues/1199#issuecomment-1931871372