SELF_GPUBLAS Module


Uses

  • module~~self_gpublas~2~~UsesGraph module~self_gpublas~2 SELF_GPUBLAS iso_fortran_env iso_fortran_env module~self_gpublas~2->iso_fortran_env module~self_gpu_enums SELF_GPU_enums module~self_gpublas~2->module~self_gpu_enums iso_c_binding iso_c_binding module~self_gpublas~2->iso_c_binding module~self_constants SELF_Constants module~self_gpublas~2->module~self_constants module~self_gpu_enums->iso_c_binding module~self_constants->iso_fortran_env module~self_constants->iso_c_binding

Used by

  • module~~self_gpublas~2~~UsedByGraph module~self_gpublas~2 SELF_GPUBLAS module~self_tensor_3d~2 SELF_Tensor_3D module~self_tensor_3d~2->module~self_gpublas~2 module~self_mappedvector_2d SELF_MappedVector_2D module~self_mappedvector_2d->module~self_gpublas~2 module~self_mappedvector_2d_t SELF_MappedVector_2D_t module~self_mappedvector_2d->module~self_mappedvector_2d_t module~self_scalar_1d~3 SELF_Scalar_1D module~self_scalar_1d~3->module~self_gpublas~2 module~self_scalar_2d SELF_Scalar_2D module~self_scalar_2d->module~self_gpublas~2 module~self_tensor_2d SELF_Tensor_2D module~self_tensor_2d->module~self_gpublas~2 module~self_vector_2d~2 SELF_Vector_2D module~self_vector_2d~2->module~self_gpublas~2 module~self_scalar_3d SELF_Scalar_3D module~self_scalar_3d->module~self_gpublas~2 module~self_vector_3d~2 SELF_Vector_3D module~self_vector_3d~2->module~self_gpublas~2 module~self_mappedvector_3d SELF_MappedVector_3D module~self_mappedvector_3d->module~self_gpublas~2 module~self_mappedvector_3d_t SELF_MappedVector_3D_t module~self_mappedvector_3d->module~self_mappedvector_3d_t module~self_scalar_1d SELF_Scalar_1D module~self_scalar_1d->module~self_gpublas~2 module~self_geometry_3d SELF_Geometry_3D module~self_geometry_3d->module~self_tensor_3d~2 module~self_geometry_3d->module~self_scalar_3d module~self_geometry_3d->module~self_vector_3d~2 module~self_geometry_1d SELF_Geometry_1D module~self_geometry_1d->module~self_scalar_1d~3 module~self_mesh_1d SELF_Mesh_1D module~self_geometry_1d->module~self_mesh_1d module~self_mesh_1d->module~self_scalar_1d~3 module~self_dgmodel2d_t SELF_DGModel2D_t module~self_dgmodel2d_t->module~self_mappedvector_2d module~self_geometry_2d SELF_Geometry_2D module~self_dgmodel2d_t->module~self_geometry_2d module~self_mappedscalar_2d~2 SELF_MappedScalar_2D module~self_dgmodel2d_t->module~self_mappedscalar_2d~2 module~self_mappedscalar_3d_t SELF_MappedScalar_3D_t module~self_mappedscalar_3d_t->module~self_tensor_3d~2 module~self_mappedscalar_3d_t->module~self_scalar_3d module~self_mappedscalar_3d_t->module~self_geometry_3d module~self_mappedscalar_1d_t SELF_MappedScalar_1D_t module~self_mappedscalar_1d_t->module~self_scalar_1d~3 module~self_mappedscalar_1d_t->module~self_geometry_1d module~self_mappedscalar_1d_t->module~self_mesh_1d module~self_mappedscalar_2d_t SELF_MappedScalar_2D_t module~self_mappedscalar_2d_t->module~self_scalar_2d module~self_mappedscalar_2d_t->module~self_tensor_2d module~self_mappedscalar_2d_t->module~self_geometry_2d module~self_geometry_2d->module~self_scalar_2d module~self_geometry_2d->module~self_tensor_2d module~self_geometry_2d->module~self_vector_2d~2 module~self_mappedvector_2d_t->module~self_tensor_2d module~self_mappedvector_2d_t->module~self_vector_2d~2 module~self_mappedvector_2d_t->module~self_geometry_2d module~self_dgmodel3d_t SELF_DGModel3D_t module~self_dgmodel3d_t->module~self_mappedvector_3d module~self_dgmodel3d_t->module~self_geometry_3d module~self_mappedscalar_3d~2 SELF_MappedScalar_3D module~self_dgmodel3d_t->module~self_mappedscalar_3d~2 module~self_dgmodel1d_t SELF_DGModel1D_t module~self_dgmodel1d_t->module~self_mesh_1d module~self_mappedscalar_1d SELF_MappedScalar_1D module~self_dgmodel1d_t->module~self_mappedscalar_1d module~self_mappedscalar_3d~2->module~self_mappedscalar_3d_t module~self_mappedscalar_1d~2 SELF_MappedScalar_1D module~self_mappedscalar_1d~2->module~self_mappedscalar_1d_t module~self_mappedvector_2d~2 SELF_MappedVector_2D module~self_mappedvector_2d~2->module~self_mappedvector_2d_t module~self_dgmodel3d SELF_DGModel3D module~self_dgmodel3d->module~self_dgmodel3d_t module~self_mappedvector_3d_t->module~self_geometry_3d module~self_dgmodel2d~2 SELF_DGModel2D module~self_dgmodel2d~2->module~self_dgmodel2d_t module~self_dgmodel2d SELF_DGModel2D module~self_dgmodel2d->module~self_dgmodel2d_t module~self_dgmodel1d~2 SELF_DGModel1D module~self_dgmodel1d~2->module~self_mesh_1d module~self_dgmodel1d~2->module~self_dgmodel1d_t module~self_dgmodel1d~2->module~self_mappedscalar_1d module~self_mappedscalar_3d SELF_MappedScalar_3D module~self_mappedscalar_3d->module~self_mappedscalar_3d_t module~self_mappedscalar_1d->module~self_mappedscalar_1d_t module~self_mappedscalar_2d~2->module~self_mappedscalar_2d_t module~self_mappedscalar_2d SELF_MappedScalar_2D module~self_mappedscalar_2d->module~self_mappedscalar_2d_t module~self_dgmodel3d~2 SELF_DGModel3D module~self_dgmodel3d~2->module~self_dgmodel3d_t module~self_dgmodel1d SELF_DGModel1D module~self_dgmodel1d->module~self_dgmodel1d_t module~self_mappedvector_3d~2 SELF_MappedVector_3D module~self_mappedvector_3d~2->module~self_mappedvector_3d_t module~self_advection_diffusion_2d_t self_advection_diffusion_2d_t module~self_advection_diffusion_2d_t->module~self_dgmodel2d module~self_lineareuler2d_t self_LinearEuler2D_t module~self_lineareuler2d_t->module~self_dgmodel2d module~self_nulldgmodel1d_t self_NullDGModel1D_t module~self_nulldgmodel1d_t->module~self_dgmodel1d~2 module~self_burgers1d_t self_Burgers1D_t module~self_burgers1d_t->module~self_dgmodel1d~2 module~self_lineareuler3d_t self_LinearEuler3D_t module~self_lineareuler3d_t->module~self_dgmodel3d~2 module~self_nulldgmodel3d_t self_NullDGModel3D_t module~self_nulldgmodel3d_t->module~self_dgmodel3d~2 module~self_linearshallowwater2d_t self_LinearShallowWater2D_t module~self_linearshallowwater2d_t->module~self_dgmodel2d module~self_nulldgmodel2d_t self_NullDGModel2D_t module~self_nulldgmodel2d_t->module~self_dgmodel2d module~self_advection_diffusion_1d_t self_advection_diffusion_1d_t module~self_advection_diffusion_1d_t->module~self_dgmodel1d~2 module~self_advection_diffusion_1d self_advection_diffusion_1d module~self_advection_diffusion_1d->module~self_dgmodel1d~2 module~self_advection_diffusion_1d->module~self_advection_diffusion_1d_t module~self_advection_diffusion_3d_t self_advection_diffusion_3d_t module~self_advection_diffusion_3d_t->module~self_dgmodel3d~2 module~self_advection_diffusion_2d self_advection_diffusion_2d module~self_advection_diffusion_2d->module~self_advection_diffusion_2d_t module~self_nulldgmodel2d~2 self_NullDGModel2D module~self_nulldgmodel2d~2->module~self_nulldgmodel2d_t module~self_advection_diffusion_3d~2 self_advection_diffusion_3d module~self_advection_diffusion_3d~2->module~self_advection_diffusion_3d_t module~self_linearshallowwater2d~2 self_LinearShallowWater2D module~self_linearshallowwater2d~2->module~self_linearshallowwater2d_t module~self_nulldgmodel2d self_NullDGModel2D module~self_nulldgmodel2d->module~self_nulldgmodel2d_t module~self_advection_diffusion_1d~2 self_advection_diffusion_1d module~self_advection_diffusion_1d~2->module~self_advection_diffusion_1d_t module~self_lineareuler3d~2 self_LinearEuler3D module~self_lineareuler3d~2->module~self_lineareuler3d_t module~self_nulldgmodel1d~2 self_NullDGModel1D module~self_nulldgmodel1d~2->module~self_nulldgmodel1d_t module~self_burgers1d~2 self_Burgers1D module~self_burgers1d~2->module~self_burgers1d_t module~self_linearshallowwater2d self_LinearShallowWater2D module~self_linearshallowwater2d->module~self_linearshallowwater2d_t module~self_nulldgmodel1d self_NullDGModel1D module~self_nulldgmodel1d->module~self_nulldgmodel1d_t module~self_advection_diffusion_3d self_advection_diffusion_3d module~self_advection_diffusion_3d->module~self_advection_diffusion_3d_t module~self_lineareuler2d~2 self_LinearEuler2D module~self_lineareuler2d~2->module~self_lineareuler2d_t module~self_advection_diffusion_2d~2 self_advection_diffusion_2d module~self_advection_diffusion_2d~2->module~self_advection_diffusion_2d_t module~self_lineareuler2d self_LinearEuler2D module~self_lineareuler2d->module~self_lineareuler2d_t module~self_burgers1d self_Burgers1D module~self_burgers1d->module~self_burgers1d_t module~self_lineareuler3d self_LinearEuler3D module~self_lineareuler3d->module~self_lineareuler3d_t module~self_nulldgmodel3d self_NullDGModel3D module~self_nulldgmodel3d->module~self_nulldgmodel3d_t module~self_nulldgmodel3d~2 self_NullDGModel3D module~self_nulldgmodel3d~2->module~self_nulldgmodel3d_t

Contents


Interfaces

public interface hipblasCreate

  • public function hipblasCreate_(handle) bind(c,name="cublasCreate_v2")

    Arguments

    TypeIntentOptionalAttributesName
    type(c_ptr) :: handle

    Return Value integer(kind=kind(HIPBLAS_STATUS_SUCCESS))

public interface hipblasDestroy

  • public function hipblasDestroy_(handle) bind(c,name="cublasDestroy_v2")

    Arguments

    TypeIntentOptionalAttributesName
    type(c_ptr), value:: handle

    Return Value integer(kind=kind(HIPBLAS_STATUS_SUCCESS))

public interface hipblasDgemm

  • public function hipblasDgemm_(handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc) bind(c,name="cublasDgemm_v2")

    Arguments

    TypeIntentOptionalAttributesName
    type(c_ptr), value:: handle
    integer(kind=kind(HIPBLAS_OP_N)), value:: transa
    integer(kind=kind(HIPBLAS_OP_N)), value:: transb
    integer(kind=c_int), value:: m
    integer(kind=c_int), value:: n
    integer(kind=c_int), value:: k
    real(kind=c_double) :: alpha
    type(c_ptr), value:: A
    integer(kind=c_int), value:: lda
    type(c_ptr), value:: B
    integer(kind=c_int), value:: ldb
    real(kind=c_double) :: beta
    type(c_ptr), value:: C
    integer(kind=c_int), value:: ldc

    Return Value integer(kind=kind(HIPBLAS_STATUS_SUCCESS))

public interface hipblasDgemvStridedBatched

  • public function hipblasDgemvStridedBatched_(handle, trans, m, n, alpha, A, lda, strideA, x, incx, stridex, beta, y, incy, stridey, batchCount) bind(c,name="cublasDgemvStridedBatched")

    Arguments

    TypeIntentOptionalAttributesName
    type(c_ptr), value:: handle
    integer(kind=kind(HIPBLAS_OP_N)), value:: trans
    integer(kind=c_int), value:: m
    integer(kind=c_int), value:: n
    real(kind=c_double) :: alpha
    type(c_ptr), value:: A
    integer(kind=c_int), value:: lda
    integer(kind=c_int64_t), value:: strideA
    type(c_ptr), value:: x
    integer(kind=c_int), value:: incx
    integer(kind=c_int64_t), value:: stridex
    real(kind=c_double) :: beta
    type(c_ptr), value:: y
    integer(kind=c_int), value:: incy
    integer(kind=c_int64_t), value:: stridey
    integer(kind=c_int), value:: batchCount

    Return Value integer(kind=kind(HIPBLAS_STATUS_SUCCESS))

public interface hipblasSgemm

  • public function hipblasSgemm_(handle, transa, transb, m, n, k, alpha, A, lda, B, ldb, beta, C, ldc) bind(c,name="cublasSgemm_v2")

    Arguments

    TypeIntentOptionalAttributesName
    type(c_ptr), value:: handle
    integer(kind=kind(HIPBLAS_OP_N)), value:: transa
    integer(kind=kind(HIPBLAS_OP_N)), value:: transb
    integer(kind=c_int), value:: m
    integer(kind=c_int), value:: n
    integer(kind=c_int), value:: k
    real(kind=c_float) :: alpha
    type(c_ptr), value:: A
    integer(kind=c_int), value:: lda
    type(c_ptr), value:: B
    integer(kind=c_int), value:: ldb
    real(kind=c_float) :: beta
    type(c_ptr), value:: C
    integer(kind=c_int), value:: ldc

    Return Value integer(kind=kind(HIPBLAS_STATUS_SUCCESS))

public interface hipblasSgemvStridedBatched

  • public function hipblasSgemvStridedBatched_(handle, trans, m, n, alpha, A, lda, strideA, x, incx, stridex, beta, y, incy, stridey, batchCount) bind(c,name="cublasSgemvStridedBatched")

    Arguments

    TypeIntentOptionalAttributesName
    type(c_ptr), value:: handle
    integer(kind=kind(HIPBLAS_OP_N)), value:: trans
    integer(kind=c_int), value:: m
    integer(kind=c_int), value:: n
    real(kind=c_float) :: alpha
    type(c_ptr), value:: A
    integer(kind=c_int), value:: lda
    integer(kind=c_int64_t), value:: strideA
    type(c_ptr), value:: x
    integer(kind=c_int), value:: incx
    integer(kind=c_int64_t), value:: stridex
    real(kind=c_float) :: beta
    type(c_ptr), value:: y
    integer(kind=c_int), value:: incy
    integer(kind=c_int64_t), value:: stridey
    integer(kind=c_int), value:: batchCount

    Return Value integer(kind=kind(HIPBLAS_STATUS_SUCCESS))


Subroutines

public subroutine hipblasCheck(hipblasError_t)

Arguments

TypeIntentOptionalAttributesName
integer(kind=kind(HIPBLAS_STATUS_SUCCESS)) :: hipblasError_t

public subroutine self_blas_matrixop_1d(A, f, Af, opArows, opAcols, bcols, handle)

Arguments

TypeIntentOptionalAttributesName
type(c_ptr), intent(in) :: A
type(c_ptr), intent(in) :: f
type(c_ptr), intent(inout) :: Af
integer, intent(in) :: opArows
integer, intent(in) :: opAcols
integer, intent(in) :: bcols
type(c_ptr), intent(in) :: handle

public subroutine self_blas_matrixop_dim1_2d(A, f, Af, controldegree, targetdegree, nvars, nelems, handle)

Arguments

TypeIntentOptionalAttributesName
type(c_ptr), intent(in) :: A
type(c_ptr), intent(in) :: f
type(c_ptr), intent(inout) :: Af
integer, intent(in) :: controldegree
integer, intent(in) :: targetdegree
integer, intent(in) :: nvars
integer, intent(in) :: nelems
type(c_ptr), intent(in) :: handle

public subroutine self_blas_matrixop_dim1_3d(A, f, Af, controldegree, targetdegree, nvars, nelems, handle)

Arguments

TypeIntentOptionalAttributesName
type(c_ptr), intent(in) :: A
type(c_ptr), intent(in) :: f
type(c_ptr), intent(inout) :: Af
integer, intent(in) :: controldegree
integer, intent(in) :: targetdegree
integer, intent(in) :: nvars
integer, intent(in) :: nelems
type(c_ptr), intent(in) :: handle

public subroutine self_blas_matrixop_dim2_2d(A, f, Af, beta, controldegree, targetdegree, nvars, nelems, handle)

Arguments

TypeIntentOptionalAttributesName
type(c_ptr), intent(in) :: A
type(c_ptr), intent(in) :: f
type(c_ptr), intent(inout) :: Af
real(kind=c_prec), intent(in) :: beta
integer, intent(in) :: controldegree
integer, intent(in) :: targetdegree
integer, intent(in) :: nvars
integer, intent(in) :: nelems
type(c_ptr), intent(in) :: handle

public subroutine self_blas_matrixop_dim2_3d(A, f, Af, beta, controldegree, targetdegree, nvars, nelems, handle)

Arguments

TypeIntentOptionalAttributesName
type(c_ptr), intent(in) :: A
type(c_ptr), intent(in) :: f
type(c_ptr), intent(inout) :: Af
real(kind=c_prec), intent(in) :: beta
integer, intent(in) :: controldegree
integer, intent(in) :: targetdegree
integer, intent(in) :: nvars
integer, intent(in) :: nelems
type(c_ptr), intent(in) :: handle

public subroutine self_blas_matrixop_dim3_3d(A, f, Af, beta, controldegree, targetdegree, nvars, nelems, handle)

Arguments

TypeIntentOptionalAttributesName
type(c_ptr), intent(in) :: A
type(c_ptr), intent(in) :: f
type(c_ptr), intent(inout) :: Af
real(kind=c_prec), intent(in) :: beta
integer, intent(in) :: controldegree
integer, intent(in) :: targetdegree
integer, intent(in) :: nvars
integer, intent(in) :: nelems
type(c_ptr), intent(in) :: handle