pub unsafe extern "C" fn cusolverDnSetFixedPointEmulationMantissaBitOffset(
handle: cusolverDnHandle_t,
mantissaBitOffset: c_int,
) -> cusolverStatus_tExpand description
This function sets the mantissa bit offset for fixed point FP64 emulation in case of dynamic mantissa control mode.
The mantissa bit offset, which is set by this API only has an effect, once one of the following math modes is enabled (see also cusolverMathMode_t):
cusolverMathMode_t::CUSOLVER_FP64_EMULATED_FIXEDPOINT_MATHcusolverMathMode_t::CUSOLVER_FP32_FP64_EMULATED_MATH
And the following mantissa control is enabled (see also cusolverDnSetFixedPointEmulationMantissaControl):
CUDA_EMULATION_MANTISSA_CONTROL_DYNAMIC
You may tune values for mantissaBitOffset based on your accuracy and performance requirements, e.g., choose negative values -8, -16, … for better performance while fewer mantissa bits may reduce accuracy.
Please note that values of mantissaBitOffset which are unequal to zero require the mantissa control to be equal to CUDA_EMULATION_MANTISSA_CONTROL_DYNAMIC. Otherwise, the computational cuSOLVER routines will return cusolverStatus_t::CUSOLVER_STATUS_INVALID_VALUE, indicating an unsupported handle state.
cusolverStatus_t::CUSOLVER_STATUS_SUCCESS: The mantissa bit offset was set successfully.
cusolverStatus_t::CUSOLVER_STATUS_NOT_INITIALIZED: The library was not initialized.
cusolverStatus_t::CUSOLVER_STATUS_INTERNAL_ERROR: An internal error occurred.
§Parameters
handle: Handle to the cuSolverDN library context.mantissaBitOffset: The mantissa bit offset (default =0) to be used when the mantissa control isCUDA_EMULATION_MANTISSA_CONTROL_DYNAMIC.
§Return value
cusolverStatus_t::CUSOLVER_STATUS_INTERNAL_ERROR: An internal error occurred.cusolverStatus_t::CUSOLVER_STATUS_NOT_INITIALIZED: The library was not initialized.cusolverStatus_t::CUSOLVER_STATUS_SUCCESS: The mantissa bit offset was set successfully.