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?
Thanks in advance,
Victor