detect method

  1. @override
Future<Capability?> detect()
override

Detects the capability, or returns null if not present.

Implementation

@override
Future<Capability?> detect() async {
  final result = await runProbe('nvidia-smi', [
    '--query-gpu=name,driver_version',
    '--format=csv,noheader',
  ]);
  if (result == null || result.exitCode != 0) return null;
  final line = (result.stdout as String).trim().split('\n').first.trim();
  if (line.isEmpty) return null;
  final parts = line.split(',').map((s) => s.trim()).toList();
  return Capability(
    kind: CapabilityKind.cuda,
    name: 'cuda',
    version: parts.length > 1 ? parts[1] : null,
    details: {if (parts.isNotEmpty) 'gpu': parts.first},
  );
}