Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@
* `fftw_iodim64` declares its fields `integer(c_intptr_t)` instead of
`integer(c_ptrdiff_t)`, which is Fortran 2008. Both kinds are equal on every
platform ROCm supports, so existing code is unaffected.
* The `_typed` forms of hipSOLVER and hipSPARSE declare their `hipDataType`
arguments `integer(c_int)`, like their `bind(C)` interfaces, instead of
`integer(kind(HIP_R_32F))`. Both are the C `int` kind, so existing code is
unaffected, and these routines no longer `use hipfort_enums`.

### Fixed

Expand Down
56 changes: 24 additions & 32 deletions lib/hipfort/hipfort_hipsolver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -21025,26 +21025,25 @@ function hipsolverDnXgeev_bufferSize_typed(handle,params,jobvl,jobvr,n,dataTypeA
dataTypeW,W,dataTypeVL,VL,ldvl,dataTypeVR,VR,ldvr,computeType,lworkOnDevice,lworkOnHost)
use iso_c_binding
use hipfort_hipsolver_enums
use hipfort_enums
implicit none
integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnXgeev_bufferSize_typed
type(c_ptr), value :: handle
type(c_ptr), value :: params
integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobvl
integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobvr
integer(c_int64_t) :: n
integer(kind(HIP_R_32F)) :: dataTypeA
integer(c_int) :: dataTypeA
type(c_ptr), value :: A
integer(c_int64_t) :: lda
integer(kind(HIP_R_32F)) :: dataTypeW
integer(c_int) :: dataTypeW
type(c_ptr), value :: W
integer(kind(HIP_R_32F)) :: dataTypeVL
integer(c_int) :: dataTypeVL
type(c_ptr), value :: VL
integer(c_int64_t) :: ldvl
integer(kind(HIP_R_32F)) :: dataTypeVR
integer(c_int) :: dataTypeVR
type(c_ptr), value :: VR
integer(c_int64_t) :: ldvr
integer(kind(HIP_R_32F)) :: computeType
integer(c_int) :: computeType
integer(c_size_t),target :: lworkOnDevice
integer(c_size_t),target :: lworkOnHost
!
Expand All @@ -21057,19 +21056,18 @@ function hipsolverDnXgeqrf_bufferSize_typed(handle,params,m,n,dataTypeA,A,lda,da
computeType,lworkOnDevice,lworkOnHost)
use iso_c_binding
use hipfort_hipsolver_enums
use hipfort_enums
implicit none
integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnXgeqrf_bufferSize_typed
type(c_ptr), value :: handle
type(c_ptr), value :: params
integer(c_int64_t) :: m
integer(c_int64_t) :: n
integer(kind(HIP_R_32F)) :: dataTypeA
integer(c_int) :: dataTypeA
type(c_ptr), value :: A
integer(c_int64_t) :: lda
integer(kind(HIP_R_32F)) :: dataTypeTau
integer(c_int) :: dataTypeTau
type(c_ptr), value :: tau
integer(kind(HIP_R_32F)) :: computeType
integer(c_int) :: computeType
integer(c_size_t),target :: lworkOnDevice
integer(c_size_t),target :: lworkOnHost
!
Expand All @@ -21081,17 +21079,16 @@ function hipsolverDnXgetrf_bufferSize_typed(handle,params,m,n,dataTypeA,A,lda,co
lworkOnDevice,lworkOnHost)
use iso_c_binding
use hipfort_hipsolver_enums
use hipfort_enums
implicit none
integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnXgetrf_bufferSize_typed
type(c_ptr), value :: handle
type(c_ptr), value :: params
integer(c_int64_t) :: m
integer(c_int64_t) :: n
integer(kind(HIP_R_32F)) :: dataTypeA
integer(c_int) :: dataTypeA
type(c_ptr), value :: A
integer(c_int64_t) :: lda
integer(kind(HIP_R_32F)) :: computeType
integer(c_int) :: computeType
integer(c_size_t),target :: lworkOnDevice
integer(c_size_t),target :: lworkOnHost
!
Expand All @@ -21103,7 +21100,6 @@ function hipsolverDnXlarft_bufferSize_typed(handle,params,myDirect,storev,n,k,da
dataTypeTau,tau,dataTypeT,T,ldt,computeType,lworkOnDevice,lworkOnHost)
use iso_c_binding
use hipfort_hipsolver_enums
use hipfort_enums
implicit none
integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnXlarft_bufferSize_typed
type(c_ptr), value :: handle
Expand All @@ -21112,15 +21108,15 @@ function hipsolverDnXlarft_bufferSize_typed(handle,params,myDirect,storev,n,k,da
integer(kind(HIPSOLVER_STOREV_COLUMNWISE)) :: storev
integer(c_int64_t) :: n
integer(c_int64_t) :: k
integer(kind(HIP_R_32F)) :: dataTypeV
integer(c_int) :: dataTypeV
type(c_ptr), value :: V
integer(c_int64_t) :: ldv
integer(kind(HIP_R_32F)) :: dataTypeTau
integer(c_int) :: dataTypeTau
type(c_ptr), value :: tau
integer(kind(HIP_R_32F)) :: dataTypeT
integer(c_int) :: dataTypeT
type(c_ptr), value :: T
integer(c_int64_t) :: ldt
integer(kind(HIP_R_32F)) :: computeType
integer(c_int) :: computeType
integer(c_size_t),target :: lworkOnDevice
integer(c_size_t),target :: lworkOnHost
!
Expand All @@ -21133,17 +21129,16 @@ function hipsolverDnXpotrf_bufferSize_typed(handle,params,uplo,n,dataTypeA,A,lda
lworkOnDevice,lworkOnHost)
use iso_c_binding
use hipfort_hipsolver_enums
use hipfort_enums
implicit none
integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnXpotrf_bufferSize_typed
type(c_ptr), value :: handle
type(c_ptr), value :: params
integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo
integer(c_int64_t) :: n
integer(kind(HIP_R_32F)) :: dataTypeA
integer(c_int) :: dataTypeA
type(c_ptr), value :: A
integer(c_int64_t) :: lda
integer(kind(HIP_R_32F)) :: computeType
integer(c_int) :: computeType
integer(c_size_t),target :: lworkOnDevice
integer(c_size_t),target :: lworkOnHost
!
Expand All @@ -21155,20 +21150,19 @@ function hipsolverDnXsyevd_bufferSize_typed(handle,params,jobz,uplo,n,dataTypeA,
dataTypeW,W,computeType,lworkOnDevice,lworkOnHost)
use iso_c_binding
use hipfort_hipsolver_enums
use hipfort_enums
implicit none
integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnXsyevd_bufferSize_typed
type(c_ptr), value :: handle
type(c_ptr), value :: params
integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz
integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo
integer(c_int64_t) :: n
integer(kind(HIP_R_32F)) :: dataTypeA
integer(c_int) :: dataTypeA
type(c_ptr), value :: A
integer(c_int64_t) :: lda
integer(kind(HIP_R_32F)) :: dataTypeW
integer(c_int) :: dataTypeW
type(c_ptr), value :: W
integer(kind(HIP_R_32F)) :: computeType
integer(c_int) :: computeType
integer(c_size_t),target :: lworkOnDevice
integer(c_size_t),target :: lworkOnHost
!
Expand All @@ -21180,20 +21174,19 @@ function hipsolverDnXsyevBatched_bufferSize_typed(handle,params,jobz,uplo,n,data
dataTypeW,W,computeType,lworkOnDevice,lworkOnHost,batchSize)
use iso_c_binding
use hipfort_hipsolver_enums
use hipfort_enums
implicit none
integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnXsyevBatched_bufferSize_typed
type(c_ptr), value :: handle
type(c_ptr), value :: params
integer(kind(HIPSOLVER_EIG_MODE_NOVECTOR)) :: jobz
integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo
integer(c_int64_t) :: n
integer(kind(HIP_R_32F)) :: dataTypeA
integer(c_int) :: dataTypeA
type(c_ptr), value :: A
integer(c_int64_t) :: lda
integer(kind(HIP_R_32F)) :: dataTypeW
integer(c_int) :: dataTypeW
type(c_ptr), value :: W
integer(kind(HIP_R_32F)) :: computeType
integer(c_int) :: computeType
integer(c_size_t),target :: lworkOnDevice
integer(c_size_t),target :: lworkOnHost
integer(c_int64_t) :: batchSize
Expand All @@ -21207,18 +21200,17 @@ function hipsolverDnXsytrs_bufferSize_typed(handle,uplo,n,nrhs,dataTypeA,A,lda,d
dataTypeB,B,ldb,lworkOnDevice,lworkOnHost)
use iso_c_binding
use hipfort_hipsolver_enums
use hipfort_enums
implicit none
integer(kind(HIPSOLVER_STATUS_SUCCESS)) :: hipsolverDnXsytrs_bufferSize_typed
type(c_ptr), value :: handle
integer(kind(HIPSOLVER_FILL_MODE_UPPER)) :: uplo
integer(c_int64_t) :: n
integer(c_int64_t) :: nrhs
integer(kind(HIP_R_32F)) :: dataTypeA
integer(c_int) :: dataTypeA
type(c_ptr), value :: A
integer(c_int64_t) :: lda
type(c_ptr) :: devIpiv
integer(kind(HIP_R_32F)) :: dataTypeB
integer(c_int) :: dataTypeB
type(c_ptr), value :: B
integer(c_int64_t) :: ldb
integer(c_size_t),target :: lworkOnDevice
Expand Down
Loading