CUDA 11.7 undefined reference to cusolverDnDtrtri

Hi Brent,

I’m testing NVIDIA HPC SDK 22.9, which has Fortran interfaces for the functions I need (cusolverDnXtrtri_buffersize and cusolverDnXtrtri). I’m following this example of cusolverDnXgetrf_buffersize you posted last year:

My test code looks like this:

$ cat test.f90

program test_cusolver_workspace_size

   use cudafor
   use cusolverdn

   implicit none

   integer(8), parameter :: nn = 10
   integer :: ierr
   integer(8) :: lwork
   integer(8) :: lwork_d
   real(8), device, allocatable :: mat_d(:,:)
   type(cusolverDnHandle) :: cusolver_h

   ierr = cusolverDnCreate(cusolver_h)
   if(ierr /= 0) print *, "cusolverDnCreate error:", ierr

   ierr = cusolverDnXtrtri_buffersize(cusolver_h, CUBLAS_FILL_MODE_UPPER, CUBLAS_DIAG_NON_UNIT, &
        & nn, cudaDataType(CUSOLVER_R_64F), mat_d, nn, lwork_d, lwork)
   if(ierr /= 0) print *, "cusolverDnXtrtri_buffersize error:", ierr

   print *, "cusolverDnXtrtri_buffersize:", lwork_d, lwork

   ierr = cusolverDnDestroy(cusolver_h)
   if(ierr /= 0) print *, "cusolverDnDestroy error:", ierr

end program

But I’m getting error code 9 from cusolverDnXtrtri_buffersize:

$ nvfortran --version

nvfortran 22.9-0 64-bit target on x86-64 Linux -tp zen2 
NVIDIA Compilers and Tools
Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES.  All rights reserved.

$ nvfortran -cuda -gpu=cc80,cuda11.7 -cudalib=cusolver -o test.x test.f90

$ ./test.x

 cusolverDnXtrtri_buffersize error:            9
 cusolverDnXtrtri_buffersize:          140720438772200                  4199965

Do you see any problem with my test code? Looks like error code 9 means “not supported”, but how do I know what’s not supported?

https://docs.nvidia.com/hpc-sdk/compilers/fortran-cuda-interfaces/index.html#cfsolver-init:~:text=enumerator%20%3A%3A%20CUSOLVER_STATUS_NOT_SUPPORTED%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%209

Thanks in advance,

Victor