def nvmlDeviceSetGpuOperationMode(handle, mode):
    r"""
    /**
     * Sets new GOM. See \a nvmlGpuOperationMode_t for details.
     *
     * For GK110 M-class and X-class Tesla &tm; products from the Kepler family.
     * Modes \ref NVML_GOM_LOW_DP and \ref NVML_GOM_ALL_ON are supported on fully supported GeForce products.
     * Not supported on Quadro &reg; and Tesla &tm; C-class products.
     * Requires root/admin permissions.
     *
     * Changing GOMs requires a reboot.
     * The reboot requirement might be removed in the future.
     *
     * Compute only GOMs don't support graphics acceleration. Under windows switching to these GOMs when
     * pending driver model is WDDM is not supported. See \ref nvmlDeviceSetDriverModel.
     *
     * @param device                               The identifier of the target device
     * @param mode                                 Target GOM
     *
     * @return
     *         - \ref NVML_SUCCESS                 if \a mode has been set
     *         - \ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized
     *         - \ref NVML_ERROR_INVALID_ARGUMENT  if \a device is invalid or \a mode incorrect
     *         - \ref NVML_ERROR_NOT_SUPPORTED     if the device does not support GOM or specific mode
     *         - \ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation
     *         - \ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible
     *         - \ref NVML_ERROR_UNKNOWN           on any unexpected error
     *
     * @see nvmlGpuOperationMode_t
     * @see nvmlDeviceGetGpuOperationMode
     */
    nvmlReturn_t DECLDIR nvmlDeviceSetGpuOperationMode
    """
    fn = _nvmlGetFunctionPointer("nvmlDeviceSetGpuOperationMode")
    ret = fn(handle, _nvmlGpuOperationMode_t(mode))
    _nvmlCheckReturn(ret)
    return None
r"""
    /**
     * Sets new GOM. See \a nvmlGpuOperationMode_t for details.
     *
     * For GK110 M-class and X-class Tesla &tm; products from the Kepler family.
     * Modes \ref NVML_GOM_LOW_DP and \ref NVML_GOM_ALL_ON are supported on fully supported GeForce products.
     * Not supported on Quadro &reg; and Tesla &tm; C-class products.
     * Requires root/admin permissions.
     *
     * Changing GOMs requires a reboot.
     * The reboot requirement might be removed in the future.
     *
     * Compute only GOMs don't support graphics acceleration. Under windows switching to these GOMs when
     * pending driver model is WDDM is not supported. See \ref nvmlDeviceSetDriverModel.
     *
     * @param device                               The identifier of the target device
     * @param mode                                 Target GOM
     *
     * @return
     *         - \ref NVML_SUCCESS                 if \a mode has been set
     *         - \ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized
     *         - \ref NVML_ERROR_INVALID_ARGUMENT  if \a device is invalid or \a mode incorrect
     *         - \ref NVML_ERROR_NOT_SUPPORTED     if the device does not support GOM or specific mode
     *         - \ref NVML_ERROR_NO_PERMISSION     if the user doesn't have permission to perform this operation
     *         - \ref NVML_ERROR_GPU_IS_LOST       if the target GPU has fallen off the bus or is otherwise inaccessible
     *         - \ref NVML_ERROR_UNKNOWN           on any unexpected error
     *
     * @see nvmlGpuOperationMode_t
     * @see nvmlDeviceGetGpuOperationMode
     */
    nvmlReturn_t DECLDIR nvmlDeviceSetGpuOperationMode