hypre-space / hypre

Parallel solvers for sparse linear systems featuring multigrid methods.
https://www.llnl.gov/casc/hypre/
Other
674 stars 185 forks source link

ij.c fails when compiling with cuda 12.2 #1092

Open lacrymose opened 5 months ago

lacrymose commented 5 months ago

Hello! I complied ij.c and ran it with arguments "-solver 3 -restritype 2 -difconv -c 1.2 1.2 1e-3 -a 1000 1000 1000 -atype 3 -AIR 1 -device_id 0". The following errors occur. Could you help me, please?

Hypre init times:

Hypre init: wall clock time = 0.030000 seconds wall MFLOPS = 0.000000 cpu clock time = 0.028266 seconds cpu MFLOPS = 0.000000

Using HYPRE_RELEASE_VERSION: 2.31.0

Running with these driver parameters: solver ID = 3

Convection-Diffusion: -cx Dxx - cy Dyy - cz Dzz + ax Dx + ay Dy + az Dz = f (nx, ny, nz) = (10, 10, 10) (Px, Py, Pz) = (1, 1, 1) (cx, cy, cz) = (1.200000, 1.200000, 0.001000) (ax, ay, az) = (1000.000000, 1000.000000, 1000.000000)

============================================= Generate Matrix:

Spatial Operator: wall clock time = 0.000000 seconds wall MFLOPS = 0.000000 cpu clock time = 0.000413 seconds cpu MFLOPS = 0.000000

Number of vector components: 1 RHS vector has unit coefficients Initial guess is 0

IJ Vector Setup:

RHS and Initial Guess: wall clock time = 0.010000 seconds wall MFLOPS = 0.000000 cpu clock time = 0.014575 seconds cpu MFLOPS = 0.000000

Solver: AMG-GMRES HYPRE_GMRESGetPrecond got good precond terminate called after throwing an instance of 'thrust::system::system_error' what(): reduce failed to synchronize: cudaErrorIllegalAddress: an illegal memory access was encountered.

Hypre configuration: ./configure --prefix=/path/to/install/folder --enable-shared --enable-fortran --enable-unified-memory --enable-cublas --enable-device-memory-pool --enable-gpu-profiling --disable-gpu-aware-mpi --without-MPI --without-blas --without-lapack --with-print-errors --with-timing --with-openmp --with-cuda --with-cuda-home=/public/software/cuda --with-gpu-arch="70 75 80" CC=gcc CFLAGS="-O3 -Wall -fopenmp" CXX=g++ CXXFLAGS="-O3 -Wall -fopenmp" FC=gfortran FCFLAGS="-O3 -Wall -fopenmp" -with-LDFLAGS="-fopenmp"

ij.c compiling configuration: g++ -fopenmp DHAVE_CONFIG_H -DHYPRE_USING_CUDA -DNOFEI -DHYPRE_TIMING -I"${hypre}/include" -I"${cuda}/include" -O0 -g3 -Wall -c -fmessage-length=0 g++ -fopenmp -L"${hypre}/lib" -L"${cuda}/lib64" -L"${cuda}/extras/CPUTI/lib64" -lHYPRE -lcudart