环境诊断
用 Diagnostics 看本机推理环境,只读快照。
Diagnostics
var d = new Diagnostics(); // 采一次快照
new Diagnostics() 采一次快照,属性里放的就是结论;采集失败也不抛异常,全不支持时 Supported=false、Version=""、能力位全 false。
功能概览
| 类别 | 属性 | 类型 | 读写 | 说明 |
|---|---|---|---|---|
| 环境 | Supported | bool | 只读 | 当前环境是否支持(推荐运行时包已装好) |
| 环境 | Version | string | 只读 | 推荐运行时包版本;未装为空串,不编造 |
诊断明细
十个能力位(bool),装好且硬件在位才算 true。只是快照,不保证推理一定成功;硬件位 false 不等于装错。
| 字段名 | 含义 | 说明 |
|---|---|---|
| OnnxCpu | ONNX CPU | 最起码的能力位。false = ONNX CPU 包缺了 |
| OnnxCuda | ONNX CUDA | 硬件位。没卡时本来就该是 false |
| OnnxDirectml | ONNX DirectML | 没 NVIDIA 卡时的 GPU 路径 |
| OnnxOpenvino | ONNX OpenVINO | 装好且硬件在位才算 true |
| OnnxTrt | ONNX TensorRT EP | 有 CUDA 卡但包没装时为 false |
| TrtNative | TensorRT 原生 | 硬件位。在位可走原生引擎 |
| PaddleCpu | PaddlePaddle CPU | 装好且硬件在位才算 true |
| PaddleGpu | PaddlePaddle GPU | 装好且硬件在位才算 true |
| Torchscript | TorchScript | 装好且硬件在位才算 true |
| Rknn | 瑞芯微 RKNN | 硬件位。没接板时也该是 false |
完整示例
using Darra.AI.Runtime;
var d = new Diagnostics();
Console.WriteLine($"Supported={d.Supported} Version={d.Version}");
Console.WriteLine($"OnnxCpu={d.OnnxCpu} OnnxCuda={d.OnnxCuda}");
if (!d.Supported)
Console.WriteLine(string.IsNullOrEmpty(d.Version) ? "运行时未装" : "缺包");