using System; using BetterGenshinImpact.Core.Recognition.ONNX; using CommunityToolkit.Mvvm.ComponentModel; namespace BetterGenshinImpact.Core.Config; [Serializable] public partial class HardwareAccelerationConfig : ObservableObject { /// /// 推理使用的设备。默认CPU /// [ObservableProperty] private InferenceDeviceType _inferenceDevice = InferenceDeviceType.Cpu; /// /// 是否强制OCR使用CPU推理。在某些环境上使用GPU进行OCR推理会导致性能下降(比如很多使用DirectML推理的情况下)。默认关闭。 /// [ObservableProperty] private bool _cpuOcr = false; #region 一般GPU加速设置 /// /// 强制指定gpu设备,默认为0(使用默认设备) /// [ObservableProperty] private int _gpuDevice = 0; /// /// 附加path,用;分割。默认为空。 /// [ObservableProperty] private string _additionalPath = ""; /// /// 是否输出优化后的模型文件到缓存。注意:在不支持的执行器上使用会导致异常。默认关闭。 /// [ObservableProperty] private bool _optimizedModel = false; #endregion #region cuda设置 /// /// 强制指定cuda设备,默认为0(使用默认设备) /// [ObservableProperty] private int _cudaDevice = 0; /// /// 自动附加cuda的path。一般情况下用这个就足够了。默认关闭。 /// [ObservableProperty] private bool _autoAppendCudaPath = false; #endregion #region TensorRT缓存设置 /// /// 启用TensorRT缓存。默认开启。不开的话使用TensorRT每次加载模型会卡爆。 /// [ObservableProperty] private bool _enableTensorRtCache = true; /// /// 嵌入式引擎缓存。将引擎缓存嵌入到模型中。默认开启。关闭它可能会提高性能(如果不爆炸的话)。 /// [ObservableProperty] private bool _embedTensorRtCache = true; #endregion #region OpenVINO设置 /// /// OpenVino 设备参数。 /// [ObservableProperty] private string _openVinoDevice = "AUTO:GPU,CPU"; /// /// 启用 OpenVINO 缓存。默认关闭。 /// [ObservableProperty] private bool _enableOpenVinoCache = false; #endregion }