Skip to main content

Crate singe_cusolver_sys

Crate singe_cusolver_sys 

Source

Structs§

CUstream_st
_IO_FILE
_IO_codecvt
_IO_marker
_IO_wide_data
__BindgenBitfieldUnit
cusolverDnContext
cusolverDnIRSInfos
cusolverDnIRSParams
cusolverDnParams
double2
float2
gesvdjInfo
syevjInfo

Enums§

cublasDiagType_t
cublasFillMode_t
The type indicates which part (lower or upper) of the dense matrix was filled and consequently should be used by the function.
cublasOperation_t
The cublasOperation_t type indicates which operation needs to be performed with the dense matrix.
cublasSideMode_t
cusolverAlgMode_t
The cusolverAlgMode_t type indicates which algorithm is selected by cusolverDnSetAdvOptions. The set of algorithms supported for each routine is described in detail along with the routine’s documentation.
cusolverDeterministicMode_t
The cusolverDeterministicMode_t type indicates whether multiple cuSolver function executions with the same input have the same bitwise equal result (deterministic) or might have bitwise different results (non-deterministic). In comparison to cublasAtomicsMode_t, which only includes the usage of atomic functions, cusolverDeterministicMode_t includes all non-deterministic programming patterns. The deterministic mode can be set and queried using cusolverDnSetDeterministicMode and cusolverDnGetDeterministicMode routines, respectively.
cusolverDirectMode_t
Specifies the order in which the elementary reflectors are multiplied to form the block reflector.
cusolverDnFunction_t
The cusolverDnFunction_t type indicates which routine needs to be configured by cusolverDnSetAdvOptions. The value cusolverDnFunction_t::CUSOLVERDN_GETRF corresponds to the routine Getrf.
cusolverEigMode_t
The cusolverEigMode_t type indicates whether or not eigenvectors are computed.
cusolverEigRange_t
cusolverEigType_t
The cusolverEigType_t type indicates which type of eigenvalue the solver is.
cusolverIRSRefinement_t
The cusolverIRSRefinement_t type indicates which solver type would be used for the specific cusolver function. Most of our experimentation shows that cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_GMRES is the best option.
cusolverMathMode_t
The cusolverMathMode_t type is used in cusolverDnSetMathMode to choose compute precision modes as defined in the following table:
cusolverNorm_t
cusolverPrecType_t
cusolverStatus_t
This is a status type returned by the library functions and it can have the following values.
cusolverStorevMode_t
Specifies how the vectors which define the elementary reflectors are stored.

Constants§

CUSOLVER_VERSION
CUSOLVER_VER_BUILD
CUSOLVER_VER_MAJOR
CUSOLVER_VER_MINOR
CUSOLVER_VER_PATCH

Functions§

cusolverDnCCgels
cusolverDnCCgels_bufferSize
cusolverDnCCgesv
cusolverDnCCgesv_bufferSize
cusolverDnCEgels
cusolverDnCEgels_bufferSize
cusolverDnCEgesv
cusolverDnCEgesv_bufferSize
cusolverDnCKgels
cusolverDnCKgels_bufferSize
cusolverDnCKgesv
cusolverDnCKgesv_bufferSize
cusolverDnCYgels
cusolverDnCYgels_bufferSize
cusolverDnCYgesv
cusolverDnCYgesv_bufferSize
cusolverDnCgebrd
These helper functions calculate the size of work buffers needed.
cusolverDnCgebrd_bufferSize
cusolverDnCgeqrf
These helper functions calculate the size of work buffers needed.
cusolverDnCgeqrf_bufferSize
cusolverDnCgesvd
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnCgesvd_bufferSize
cusolverDnCgesvdaStridedBatched
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnCgesvdaStridedBatched_bufferSize
cusolverDnCgesvdj
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnCgesvdjBatched
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnCgesvdjBatched_bufferSize
cusolverDnCgesvdj_bufferSize
cusolverDnCgetrf
These helper functions calculate the size of work buffers needed.
cusolverDnCgetrf_bufferSize
cusolverDnCgetrs
Please visit cuSOLVER Library Samples - getrf for a code example.
cusolverDnCheevd
cusolverDnCheevd_bufferSize
cusolverDnCheevdx
cusolverDnCheevdx_bufferSize
cusolverDnCheevj
cusolverDnCheevjBatched
cusolverDnCheevjBatched_bufferSize
cusolverDnCheevj_bufferSize
cusolverDnChegvd
cusolverDnChegvd_bufferSize
cusolverDnChegvdx
cusolverDnChegvdx_bufferSize
cusolverDnChegvj
cusolverDnChegvj_bufferSize
cusolverDnChetrd
cusolverDnChetrd_bufferSize
cusolverDnClaswp
cusolverDnClauum
cusolverDnClauum_bufferSize
cusolverDnCpotrf
These helper functions calculate the necessary size of work buffers.
cusolverDnCpotrfBatched
The S and D data types are real valued single and double precision, respectively. Please visit cuSOLVER Library Samples - potrfBatched for a code example.
cusolverDnCpotrf_bufferSize
cusolverDnCpotri
These helper functions calculate the necessary size of work buffers.
cusolverDnCpotri_bufferSize
cusolverDnCpotrs
This function solves a system of linear equations:
cusolverDnCpotrsBatched
This function solves a sequence of linear systems:
cusolverDnCreate
This function initializes the cuSolverDN library and creates a handle on the cuSolverDN context. It must be called before any other cuSolverDN API function is invoked. It allocates hardware resources necessary for accessing the GPU. This function allocates 4 MiB or 32 MiB of memory (for GPUs with Compute Capability of 9.0 and higher), which will be used as the cuBLAS workspace for the first user-defined stream on which cusolverDnSetStream is called. For the default stream and in all the other cases, cuBLAS will manage its own workspace.
cusolverDnCreateGesvdjInfo
This function creates and initializes the structure of gesvdj and gesvdjBatched to default values.
cusolverDnCreateParams
This function creates and initializes the structure of 64-bit API to default values.
cusolverDnCreateSyevjInfo
This function creates and initializes the structure of syevj, syevjBatched and sygvj to default values.
cusolverDnCsytrf
These helper functions calculate the size of the needed buffers.
cusolverDnCsytrf_bufferSize
cusolverDnCsytri
cusolverDnCsytri_bufferSize
cusolverDnCungbr
cusolverDnCungbr_bufferSize
cusolverDnCungqr
cusolverDnCungqr_bufferSize
cusolverDnCungtr
cusolverDnCungtr_bufferSize
cusolverDnCunmqr
cusolverDnCunmqr_bufferSize
cusolverDnCunmtr
cusolverDnCunmtr_bufferSize
cusolverDnDBgels
cusolverDnDBgels_bufferSize
cusolverDnDBgesv
cusolverDnDBgesv_bufferSize
cusolverDnDDgels
cusolverDnDDgels_bufferSize
cusolverDnDDgesv
cusolverDnDDgesv_bufferSize
cusolverDnDHgels
cusolverDnDHgels_bufferSize
cusolverDnDHgesv
cusolverDnDHgesv_bufferSize
cusolverDnDSgels
cusolverDnDSgels_bufferSize
cusolverDnDSgesv
cusolverDnDSgesv_bufferSize
cusolverDnDXgels
cusolverDnDXgels_bufferSize
cusolverDnDXgesv
cusolverDnDXgesv_bufferSize
cusolverDnDestroy
This function releases CPU-side resources used by the cuSolverDN library.
cusolverDnDestroyGesvdjInfo
This function destroys and releases any memory required by the structure.
cusolverDnDestroyParams
This function destroys and releases any memory required by the structure.
cusolverDnDestroySyevjInfo
This function destroys and releases any memory required by the structure.
cusolverDnDgebrd
These helper functions calculate the size of work buffers needed.
cusolverDnDgebrd_bufferSize
cusolverDnDgeqrf
These helper functions calculate the size of work buffers needed.
cusolverDnDgeqrf_bufferSize
cusolverDnDgesvd
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnDgesvd_bufferSize
cusolverDnDgesvdaStridedBatched
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnDgesvdaStridedBatched_bufferSize
cusolverDnDgesvdj
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnDgesvdjBatched
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnDgesvdjBatched_bufferSize
cusolverDnDgesvdj_bufferSize
cusolverDnDgetrf
These helper functions calculate the size of work buffers needed.
cusolverDnDgetrf_bufferSize
cusolverDnDgetrs
Please visit cuSOLVER Library Samples - getrf for a code example.
cusolverDnDlaswp
cusolverDnDlauum
cusolverDnDlauum_bufferSize
cusolverDnDorgbr
These helper functions calculate the size of work buffers needed.
cusolverDnDorgbr_bufferSize
cusolverDnDorgqr
These helper functions calculate the size of work buffers needed. Please visit cuSOLVER Library Samples - orgqr for a code example.
cusolverDnDorgqr_bufferSize
cusolverDnDorgtr
These helper functions calculate the size of work buffers needed.
cusolverDnDorgtr_bufferSize
cusolverDnDormqr
These helper functions calculate the size of work buffers needed. Please visit cuSOLVER Library Samples - ormqr for a code example.
cusolverDnDormqr_bufferSize
cusolverDnDormtr
These helper functions calculate the size of work buffers needed.
cusolverDnDormtr_bufferSize
cusolverDnDpotrf
These helper functions calculate the necessary size of work buffers.
cusolverDnDpotrfBatched
The S and D data types are real valued single and double precision, respectively. Please visit cuSOLVER Library Samples - potrfBatched for a code example.
cusolverDnDpotrf_bufferSize
cusolverDnDpotri
These helper functions calculate the necessary size of work buffers.
cusolverDnDpotri_bufferSize
cusolverDnDpotrs
This function solves a system of linear equations:
cusolverDnDpotrsBatched
This function solves a sequence of linear systems:
cusolverDnDsyevd
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnDsyevd_bufferSize
cusolverDnDsyevdx
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnDsyevdx_bufferSize
cusolverDnDsyevj
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnDsyevjBatched
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnDsyevjBatched_bufferSize
cusolverDnDsyevj_bufferSize
cusolverDnDsygvd
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnDsygvd_bufferSize
cusolverDnDsygvdx
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnDsygvdx_bufferSize
cusolverDnDsygvj
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnDsygvj_bufferSize
cusolverDnDsytrd
These helper functions calculate the size of work buffers needed.
cusolverDnDsytrd_bufferSize
cusolverDnDsytrf
These helper functions calculate the size of the needed buffers.
cusolverDnDsytrf_bufferSize
cusolverDnDsytri
cusolverDnDsytri_bufferSize
cusolverDnGetDeterministicMode
This function queries the deterministic mode which is set for handle.
cusolverDnGetEmulationSpecialValuesSupport
This function queries the special floating point value support which is set for handle if floating point emulation is allowed.
cusolverDnGetEmulationStrategy
This function queries the emulation strategy which is set for handle.
cusolverDnGetFixedPointEmulationMantissaBitOffset
This function queries the mantissa bit offset for fixed point FP64 emulation in case of dynamic mantissa control mode.
cusolverDnGetFixedPointEmulationMantissaControl
This function queries how the number of mantissa bits is determined for fixed point FP64 emulation.
cusolverDnGetFixedPointEmulationMaxMantissaBitCount
This function queries the maximum number of mantissa bits used for fixed point FP64 emulation.
cusolverDnGetMathMode
This function queries the math modes which are set for handle. Note that math modes can be combined, e.g., cusolverDnSetMathMode(handle, CUSOLVER_FP32_EMULATED_BF16X9_MATH | CUSOLVER_FP64_EMULATED_FIXEDPOINT_MATH). Please see cusolverMathMode_t for allowed combinations.
cusolverDnGetStream
This function queries the stream to be used by the cuSolverDN library to execute its routines.
cusolverDnIRSInfosCreate
This function creates and initializes the Infos structure that will hold the refinement information of an Iterative Refinement Solver (IRS) call. Such information includes the total number of iterations that was needed to converge (Niters), the outer number of iterations (meaningful when two-levels preconditioner such as cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_CLASSICAL_GMRES is used ), the maximal number of iterations that was allowed for that call, and a pointer to the matrix of the convergence history residual norms. The Infos structure needs to be created before a call to an IRS solver. The Infos structure is valid for only one call to an IRS solver, since it holds info about that solve and thus each solve will requires its own Infos structure.
cusolverDnIRSInfosDestroy
This function destroys and releases any memory required by the Infos structure. This function destroys all the information (for example, Niters performed, OuterNiters performed, residual history etc.) about a solver call; thus, this function should only be called after the user is finished with the information.
cusolverDnIRSInfosGetMaxIters
This function returns the maximal allowed number of iterations that was set for the corresponding call to the IRS solver. Note that this function returns the setting that was set when that call happened and is not to be confused with the cusolverDnIRSParamsGetMaxIters which returns the current setting in the params configuration structure. To be clearer, the params structure can be used for many calls to an IRS solver. A user can change the allowed MaxIters between calls while the Infos structure in cusolverDnIRSInfosGetMaxIters contains information about a particular call and cannot be reused for different calls, thus cusolverDnIRSInfosGetMaxIters returns the allowed MaxIters for that call.
cusolverDnIRSInfosGetNiters
This function returns the total number of iterations performed by the IRS solver. If it was negative, it means that the IRS solver did not converge and if the user did not disable the fallback to full precision, then the fallback to a full precision solution happened and solution is good. Please refer to the description of negative niters values in the corresponding IRS linear solver functions such as cusolverDnXgesv() or cusolverDnXgels().
cusolverDnIRSInfosGetOuterNiters
This function returns the number of iterations performed by the outer refinement loop of the IRS solver. When the refinement solver consists of a one-level solver such as cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_CLASSICAL or cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_GMRES, it is the same as Niters. When the refinement solver consists of a two-levels solver such as cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_CLASSICAL_GMRES or cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_GMRES_GMRES, it is the number of iterations of the outer loop. Refer to the description of the cusolverIRSRefinement_t for more details.
cusolverDnIRSInfosGetResidualHistory
If the user called cusolverDnIRSInfosRequestResidual before the call to the IRS function, then the IRS solver will store the convergence history (residual norms) of the refinement phase in a matrix that can be accessed via a pointer returned by this function. The datatype of the residual norms depends on the input and output data type. If the Inputs/Outputs datatype is double precision real or complex (CUSOLVER_R_FP64 or CUSOLVER_C_FP64), this residual will be of type real double precision (FP64) double, otherwise if the Inputs/Outputs datatype is single precision real or complex (CUSOLVER_R_FP32 or CUSOLVER_C_FP32), this residual will be real single precision FP32 float.
cusolverDnIRSInfosRequestResidual
This function tells the IRS solver to store the convergence history (residual norms) of the refinement phase in a matrix that can be accessed via a pointer returned by the cusolverDnIRSInfosGetResidualHistory function.
cusolverDnIRSParamsCreate
This function creates and initializes the structure of parameters for an IRS solver such as the cusolverDnIRSXgesv or the cusolverDnIRSXgels functions to default values. The params structure created by this function can be used by one or more call to the same or to a different IRS solver. Note that in CUDA 10.2, the behavior was different and a new params structure was needed to be created per each call to an IRS solver. Also note that the user can also change configurations of the params and then call a new IRS instance, but be careful that the previous call was done because any change to the configuration before the previous call was done could affect it.
cusolverDnIRSParamsDestroy
This function destroys and releases any memory required by the Params structure.
cusolverDnIRSParamsDisableFallback
This function disables the fallback to the main precision in case the Iterative Refinement Solver (IRS) failed to converge. In other term, if the IRS solver failed to converge, the solver will return a no convergence code (e.g., niter < 0), but can either return the non-convergent solution as it is (e.g., disable fallback) or can fallback (e.g., enable fallback) to the main precision (which is the precision of the Inputs/Outputs data) and solve the problem from scratch returning the good solution. This function disables the fallback and the returned solution is whatever the refinement solver was able to reach before it returns. Disabling fallback does not guarantee that the solution is the good one. However, if users want to keep getting the solution of the lower precision in case the IRS did not converge after certain number of iterations, they need to disable the fallback. The user can re-enable it by calling cusolverDnIRSParamsEnableFallback.
cusolverDnIRSParamsEnableFallback
This function enable the fallback to the main precision in case the Iterative Refinement Solver (IRS) failed to converge. In other term, if the IRS solver failed to converge, the solver will return a no convergence code (e.g., niter < 0), but can either return the non-convergent solution as it is (e.g., disable fallback) or can fallback (e.g., enable fallback) to the main precision (which is the precision of the Inputs/Outputs data) and solve the problem from scratch returning the good solution. This is the behavior by default, and it will guarantee that the IRS solver always provide the good solution. This function is provided because we provided cusolverDnIRSParamsDisableFallback which allows the user to disable the fallback and thus this function allow the user to re-enable it.
cusolverDnIRSParamsGetMaxIters
This function returns the current setting in the params structure for the maximal allowed number of iterations (for example, either the default MaxIters, or the one set by the user in case he set it using cusolverDnIRSParamsSetMaxIters). Note that this function returns the current setting in the params configuration and not to be confused with the cusolverDnIRSInfosGetMaxIters which return the maximal allowed number of iterations for a particular call to an IRS solver. To be clearer, the params structure can be used for many calls to an IRS solver. A user can change the allowed MaxIters between calls while the Infos structure in cusolverDnIRSInfosGetMaxIters contains information about a particular call and cannot be reused for different calls, and thus, cusolverDnIRSInfosGetMaxIters returns the allowed MaxIters for that call.
cusolverDnIRSParamsSetMaxIters
This function sets the total number of allowed refinement iterations after which the solver will stop. Total means any iteration which means the sum of the outer and the inner iterations (inner is meaningful when two-levels refinement solver is set). Default value is set to 50. Our goal is to give the user more control such a way he can investigate and control every detail of the IRS solver.
cusolverDnIRSParamsSetMaxItersInner
This function sets the maximal number of iterations allowed for the inner refinement solver. It is not referenced in case of one level refinement solver such as cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_CLASSICAL or cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_GMRES. The inner refinement solver will stop after reaching either the inner tolerance or the MaxItersInner value. By default, it is set to 50. Note that this value could not be larger than the MaxIters since MaxIters is the total number of allowed iterations. Note that if the user calls cusolverDnIRSParamsSetMaxIters after calling this function, SetMaxIters has priority and will overwrite MaxItersInner to the minimum value of (MaxIters, MaxItersInner).
cusolverDnIRSParamsSetRefinementSolver
This function sets the refinement solver to be used in the Iterative Refinement Solver functions such as the cusolverDnIRSXgesv or the cusolverDnIRSXgels functions. Note that the user has to set the refinement algorithm before a first call to the IRS solver because it is NOT set by default with the creating of params. Details about values that can be set to and theirs meaning are described in the table below.
cusolverDnIRSParamsSetSolverLowestPrecision
This function sets the lowest precision that will be used by Iterative Refinement Solver. By lowest precision, we mean the solver is allowed to use as lowest computational precision during the LU factorization process. Note that the user has to set both the main and lowest precision before a first call to the IRS solver because they are NOT set by default with the params structure creation, as it depends on the Input Output data type and user request. Usually the lowest precision defines the speedup that can be achieved. The ratio of the performance of the lowest precision over the main precision (e.g., Inputs/Outputs datatype) define somehow the upper bound of the speedup that could be obtained. More precisely, it depends on many factors, but for large matrices sizes, it is the ratio of the matrix-matrix rank-k product (e.g., GEMM where K is 256 and M=N=size of the matrix) that define the possible speedup. For instance, if the inout precision is real double precision CUSOLVER_R_64F and the lowest precision is CUSOLVER_R_32F, then we can expect a speedup of at most 2X for large problem sizes. If the lowest precision was CUSOLVER_R_16F, then we can expect 3X-4X. A reasonable strategy should take the number of right-hand sides, the size of the matrix as well as the convergence rate into account.
cusolverDnIRSParamsSetSolverMainPrecision
This function sets the main precision for the Iterative Refinement Solver (IRS). By main precision, we mean, the type of the Input and Output data. Note that the user has to set both the main and lowest precision before a first call to the IRS solver because they are NOT set by default with the params structure creation, as it depends on the Input Output data type and user request. user can set it by either calling this function or by calling cusolverDnIRSParamsSetSolverPrecisions which set both the main and the lowest precision together. All possible combinations of main/lowest precision are described in the table in the cusolverDnIRSParamsSetSolverPrecisions section above.
cusolverDnIRSParamsSetSolverPrecisions
This function sets both the main and the lowest precision for the Iterative Refinement Solver (IRS). By main precision, we mean the precision of the Input and Output datatype. By lowest precision, we mean the solver is allowed to use as lowest computational precision during the LU factorization process. Note that the user has to set both the main and lowest precision before the first call to the IRS solver because they are NOT set by default with the params structure creation, as it depends on the Input Output data type and user request. It is a wrapper to both cusolverDnIRSParamsSetSolverMainPrecision and cusolverDnIRSParamsSetSolverLowestPrecision. All possible combinations of main/lowest precision are described in the table below. Usually the lowest precision defines the speedup that can be achieved. The ratio of the performance of the lowest precision over the main precision (e.g., Inputs/Outputs datatype) define the upper bound of the speedup that could be obtained. More precisely, it depends on many factors, but for large matrices sizes, it is the ratio of the matrix-matrix rank-k product (e.g., GEMM where K is 256 and M=N=size of the matrix) that define the possible speedup. For instance, if the inout precision is real double precision CUSOLVER_R_64F and the lowest precision is CUSOLVER_R_32F, then we can expect a speedup of at most 2X for large problem sizes. If the lowest precision was CUSOLVER_R_16F, then we can expect 3X-4X. A reasonable strategy should take the number of right-hand sides, the size of the matrix as well as the convergence rate into account.
cusolverDnIRSParamsSetTol
This function sets the tolerance for the refinement solver. By default it is such that all the RHS satisfy:
cusolverDnIRSParamsSetTolInner
This function sets the tolerance for the inner refinement solver when the refinement solver consists of two-levels solver (for example, cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_CLASSICAL_GMRES or cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_GMRES_GMRES cases). It is not referenced in case of one level refinement solver such as cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_CLASSICAL or cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_GMRES. It is set to 1e-4 by default. This function set the tolerance for the inner solver (e.g. the inner GMRES). For example, if the Refinement Solver was set to cusolverIRSRefinement_t::CUSOLVER_IRS_REFINE_CLASSICAL_GMRES, setting this tolerance mean that the inner GMRES solver will converge to that tolerance at each outer iteration of the classical refinement solver. Our goal is to give the user more control such a way he can investigate and control every detail of the IRS solver. Note the, the tolerance value is always in real double precision whatever the Inputs/Outputs datatype is.
cusolverDnIRSXgels
This function is designed to perform same functionality as cusolverDn<T1><T2>gels() functions, but wrapped in a more generic and expert interface that gives user more control to parametrize the function as well as it provides more information on output. cusolverDnIRSXgels allows additional control of the solver parameters such as setting:
cusolverDnIRSXgels_bufferSize
cusolverDnIRSXgesv
This function is designed to perform same functionality as cusolverDn<T1><T2>gesv() functions, but wrapped in a more generic and expert interface that gives user more control to parametrize the function as well as it provides more information on output. cusolverDnIRSXgesv allows additional control of the solver parameters such as setting:
cusolverDnIRSXgesv_bufferSize
cusolverDnLoggerForceDisable
This function disables logging for the entire run.
cusolverDnLoggerOpenFile
This function opens a logging output file in the given path.
cusolverDnLoggerSetCallback
This function sets the logging callback function.
cusolverDnLoggerSetFile
This function sets the logging output file. Note: once registered using this function call, the provided file handle must not be closed unless the function is called again to switch to a different file handle.
cusolverDnLoggerSetLevel
This function sets the value of the logging level.
cusolverDnLoggerSetMask
This function sets the value of the logging mask.
cusolverDnSBgels
cusolverDnSBgels_bufferSize
cusolverDnSBgesv
cusolverDnSBgesv_bufferSize
cusolverDnSHgels
cusolverDnSHgels_bufferSize
cusolverDnSHgesv
cusolverDnSHgesv_bufferSize
cusolverDnSSgels
cusolverDnSSgels_bufferSize
cusolverDnSSgesv
cusolverDnSSgesv_bufferSize
cusolverDnSXgels
cusolverDnSXgels_bufferSize
cusolverDnSXgesv
cusolverDnSXgesv_bufferSize
cusolverDnSetAdvOptions
This function configures algorithm algo of function, a 64-bit API routine.
cusolverDnSetDeterministicMode
This function sets the deterministic mode of all cuSolverDN functions for handle. For improved performance, non-deterministic results can be allowed. Affected functions are cusolverDn<t>geqrf(), cusolverDn<t>syevd(), cusolverDn<t>syevdx(), cusolverDn<t>gesvd() (if m > n), cusolverDn<t>gesvdj(), cusolverDnXgeqrf, cusolverDnXsyevd, cusolverDnXsyevdx, cusolverDnXgesvd (if m > n), cusolverDnXgesvdr and cusolverDnXgesvdp.
cusolverDnSetEmulationSpecialValuesSupport
This function sets the handling of special floating point values for handle, which is used once floating point emulation is allowed.
cusolverDnSetEmulationStrategy
This function sets the emulation strategy of all cuSolverDN functions for handle. For more information about the effects of the corresponding strategies, please refer to the analogous definition of cublasEmulationStrategy_t.
cusolverDnSetFixedPointEmulationMantissaBitOffset
This function sets the mantissa bit offset for fixed point FP64 emulation in case of dynamic mantissa control mode.
cusolverDnSetFixedPointEmulationMantissaControl
This function sets how the number of mantissa bits is determined for fixed point FP64 emulation. For more information about the effects of the corresponding control modes, please refer to cudaEmulationMantissaControl_t.
cusolverDnSetFixedPointEmulationMaxMantissaBitCount
This function sets the maximum number of mantissa bits for fixed point FP64 emulation.
cusolverDnSetMathMode
This function sets the math modes of all cuSolverDN functions for handle. For more information about the effects of the corresponding math modes, please refer to cusolverMathMode_t. Note that math modes can be combined, e.g., cusolverDnSetMathMode(handle, CUSOLVER_FP32_EMULATED_BF16X9_MATH | CUSOLVER_FP64_EMULATED_FIXEDPOINT_MATH). Please see cusolverMathMode_t for allowed combinations.
cusolverDnSetStream
This function sets the stream to be used by the cuSolverDN library to execute its routines.
cusolverDnSgebrd
These helper functions calculate the size of work buffers needed.
cusolverDnSgebrd_bufferSize
cusolverDnSgeqrf
These helper functions calculate the size of work buffers needed.
cusolverDnSgeqrf_bufferSize
cusolverDnSgesvd
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnSgesvd_bufferSize
cusolverDnSgesvdaStridedBatched
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnSgesvdaStridedBatched_bufferSize
cusolverDnSgesvdj
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnSgesvdjBatched
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnSgesvdjBatched_bufferSize
cusolverDnSgesvdj_bufferSize
cusolverDnSgetrf
These helper functions calculate the size of work buffers needed.
cusolverDnSgetrf_bufferSize
cusolverDnSgetrs
Please visit cuSOLVER Library Samples - getrf for a code example.
cusolverDnSlaswp
cusolverDnSlauum
cusolverDnSlauum_bufferSize
cusolverDnSorgbr
These helper functions calculate the size of work buffers needed.
cusolverDnSorgbr_bufferSize
cusolverDnSorgqr
These helper functions calculate the size of work buffers needed. Please visit cuSOLVER Library Samples - orgqr for a code example.
cusolverDnSorgqr_bufferSize
cusolverDnSorgtr
These helper functions calculate the size of work buffers needed.
cusolverDnSorgtr_bufferSize
cusolverDnSormqr
These helper functions calculate the size of work buffers needed. Please visit cuSOLVER Library Samples - ormqr for a code example.
cusolverDnSormqr_bufferSize
cusolverDnSormtr
These helper functions calculate the size of work buffers needed.
cusolverDnSormtr_bufferSize
cusolverDnSpotrf
These helper functions calculate the necessary size of work buffers.
cusolverDnSpotrfBatched
The S and D data types are real valued single and double precision, respectively. Please visit cuSOLVER Library Samples - potrfBatched for a code example.
cusolverDnSpotrf_bufferSize
cusolverDnSpotri
These helper functions calculate the necessary size of work buffers.
cusolverDnSpotri_bufferSize
cusolverDnSpotrs
This function solves a system of linear equations:
cusolverDnSpotrsBatched
This function solves a sequence of linear systems:
cusolverDnSsyevd
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnSsyevd_bufferSize
cusolverDnSsyevdx
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnSsyevdx_bufferSize
cusolverDnSsyevj
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnSsyevjBatched
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnSsyevjBatched_bufferSize
cusolverDnSsyevj_bufferSize
cusolverDnSsygvd
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnSsygvd_bufferSize
cusolverDnSsygvdx
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnSsygvdx_bufferSize
cusolverDnSsygvj
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnSsygvj_bufferSize
cusolverDnSsytrd
These helper functions calculate the size of work buffers needed.
cusolverDnSsytrd_bufferSize
cusolverDnSsytrf
These helper functions calculate the size of the needed buffers.
cusolverDnSsytrf_bufferSize
cusolverDnSsytri
cusolverDnSsytri_bufferSize
cusolverDnXgeev
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXgeev_bufferSize
cusolverDnXgeqrf
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXgeqrf_bufferSize
cusolverDnXgesvd
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXgesvd_bufferSize
cusolverDnXgesvdjGetResidual
This function reports the Frobenius norm of the internal residual returned by gesvdj. Note that this is not the Frobenious norm of the exact residual calculated as:
cusolverDnXgesvdjGetSweeps
This function reports number of executed sweeps of gesvdj. It does not support gesvdjBatched. If the user calls this function after gesvdjBatched, the error cusolverStatus_t::CUSOLVER_STATUS_NOT_SUPPORTED is returned.
cusolverDnXgesvdjSetMaxSweeps
This function configures the maximum number of sweeps in gesvdj. The default value is 100.
cusolverDnXgesvdjSetSortEig
If sort_svd is zero, the singular values are not sorted. This function only works for gesvdjBatched. gesvdj always sorts singular values in descending order. By default, singular values are always sorted in descending order.
cusolverDnXgesvdjSetTolerance
This function configures tolerance of gesvdj.
cusolverDnXgesvdp
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXgesvdp_bufferSize
cusolverDnXgesvdr
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXgesvdr_bufferSize
cusolverDnXgetrf
The helper function below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXgetrf_bufferSize
cusolverDnXgetrs
This function solves a linear system of multiple right-hand sides:
cusolverDnXlarft
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXlarft_bufferSize
cusolverDnXpotrf
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXpotrf_bufferSize
cusolverDnXpotrs
This function solves a system of linear equations:
cusolverDnXsyevBatched
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXsyevBatched_bufferSize
cusolverDnXsyevd
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXsyevd_bufferSize
cusolverDnXsyevdx
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXsyevdx_bufferSize
cusolverDnXsyevjGetResidual
This function reports residual of syevj or sygvj. It does not support syevjBatched. If the user calls this function after syevjBatched, the error cusolverStatus_t::CUSOLVER_STATUS_NOT_SUPPORTED is returned.
cusolverDnXsyevjGetSweeps
This function reports number of executed sweeps of syevj or sygvj. It does not support syevjBatched. If the user calls this function after syevjBatched, the error cusolverStatus_t::CUSOLVER_STATUS_NOT_SUPPORTED is returned.
cusolverDnXsyevjSetMaxSweeps
This function configures maximum number of sweeps in syevj. The default value is 100.
cusolverDnXsyevjSetSortEig
If sort_eig is zero, the eigenvalues are not sorted. This function only works for syevjBatched. syevj and sygvj always sort eigenvalues in ascending order. By default, eigenvalues are always sorted in ascending order.
cusolverDnXsyevjSetTolerance
This function configures tolerance of syevj.
cusolverDnXsygvd
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXsygvd_bufferSize
cusolverDnXsygvdx
The helper function below can calculate the sizes needed for pre-allocated buffer.
cusolverDnXsygvdx_bufferSize
cusolverDnXsytrs
The helper functions below can calculate the sizes needed for pre-allocated buffers.
cusolverDnXsytrs_bufferSize
cusolverDnXtrtri
The helper functions below can calculate the sizes needed for pre-allocated buffers.
cusolverDnXtrtri_bufferSize
cusolverDnZCgels
cusolverDnZCgels_bufferSize
cusolverDnZCgesv
cusolverDnZCgesv_bufferSize
cusolverDnZEgels
cusolverDnZEgels_bufferSize
cusolverDnZEgesv
cusolverDnZEgesv_bufferSize
cusolverDnZKgels
cusolverDnZKgels_bufferSize
cusolverDnZKgesv
cusolverDnZKgesv_bufferSize
cusolverDnZYgels
cusolverDnZYgels_bufferSize
cusolverDnZYgesv
cusolverDnZYgesv_bufferSize
cusolverDnZZgels
cusolverDnZZgels_bufferSize
cusolverDnZZgesv
cusolverDnZZgesv_bufferSize
cusolverDnZgebrd
These helper functions calculate the size of work buffers needed.
cusolverDnZgebrd_bufferSize
cusolverDnZgeqrf
These helper functions calculate the size of work buffers needed.
cusolverDnZgeqrf_bufferSize
cusolverDnZgesvd
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnZgesvd_bufferSize
cusolverDnZgesvdaStridedBatched
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnZgesvdaStridedBatched_bufferSize
cusolverDnZgesvdj
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnZgesvdjBatched
The helper functions below can calculate the sizes needed for pre-allocated buffer.
cusolverDnZgesvdjBatched_bufferSize
cusolverDnZgesvdj_bufferSize
cusolverDnZgetrf
These helper functions calculate the size of work buffers needed.
cusolverDnZgetrf_bufferSize
cusolverDnZgetrs
Please visit cuSOLVER Library Samples - getrf for a code example.
cusolverDnZheevd
cusolverDnZheevd_bufferSize
cusolverDnZheevdx
cusolverDnZheevdx_bufferSize
cusolverDnZheevj
cusolverDnZheevjBatched
cusolverDnZheevjBatched_bufferSize
cusolverDnZheevj_bufferSize
cusolverDnZhegvd
cusolverDnZhegvd_bufferSize
cusolverDnZhegvdx
cusolverDnZhegvdx_bufferSize
cusolverDnZhegvj
cusolverDnZhegvj_bufferSize
cusolverDnZhetrd
cusolverDnZhetrd_bufferSize
cusolverDnZlaswp
cusolverDnZlauum
cusolverDnZlauum_bufferSize
cusolverDnZpotrf
These helper functions calculate the necessary size of work buffers.
cusolverDnZpotrfBatched
The S and D data types are real valued single and double precision, respectively. Please visit cuSOLVER Library Samples - potrfBatched for a code example.
cusolverDnZpotrf_bufferSize
cusolverDnZpotri
These helper functions calculate the necessary size of work buffers.
cusolverDnZpotri_bufferSize
cusolverDnZpotrs
This function solves a system of linear equations:
cusolverDnZpotrsBatched
This function solves a sequence of linear systems:
cusolverDnZsytrf
These helper functions calculate the size of the needed buffers.
cusolverDnZsytrf_bufferSize
cusolverDnZsytri
cusolverDnZsytri_bufferSize
cusolverDnZungbr
cusolverDnZungbr_bufferSize
cusolverDnZungqr
cusolverDnZungqr_bufferSize
cusolverDnZungtr
cusolverDnZungtr_bufferSize
cusolverDnZunmqr
cusolverDnZunmqr_bufferSize
cusolverDnZunmtr
cusolverDnZunmtr_bufferSize
cusolverGetProperty
cusolverGetVersion

Type Aliases§

FILE
_IO_lock_t
__off64_t
__off_t
__uint64_t
cuComplex
cuDoubleComplex
cuFloatComplex
cusolverDnHandle_t
This is a pointer type to an opaque cuSolverDN context, which the user must initialize by calling cusolverDnCreate prior to calling any other library function. An uninitialized Handle object will lead to unexpected behavior, including crashes of cuSolverDN. The handle created and returned by cusolverDnCreate must be passed to every cuSolverDN function.
cusolverDnIRSInfos_t
This is a pointer type to an opaque cusolverDnIRSInfos_t structure, which holds information about the performed call to an iterative refinement linear solver (such as cusolverDnXgesv()). Use corresponding helper functions described below to either Create/Destroy this structure or retrieve solve information.
cusolverDnIRSParams_t
This is a pointer type to an opaque cusolverDnIRSParams_t structure, which holds parameters for the iterative refinement linear solvers such as cusolverDnXgesv(). Use corresponding helper functions described below to either Create/Destroy this structure or Set/Get solver parameters.
cusolverDnLoggerCallback_t
cusolverDnLoggerCallback_t is a callback function pointer type.
cusolverDnParams_t
cusolver_int_t
gesvdjInfo_t
size_t
syevjInfo_t