runSyntheticModelBenchmarks function

Map<String, Object?> runSyntheticModelBenchmarks({
  1. required int warmup,
  2. required int iters,
})

Implementation

Map<String, Object?> runSyntheticModelBenchmarks({
  required int warmup,
  required int iters,
}) {
  final device = MlxDevice.defaultDevice();
  final stream = MlxStream.defaultFor(device);
  try {
    return <String, Object?>{
      'runtime': 'dart_mlx_ffi',
      'mlx_version': MlxVersion.current(),
      'device': device.toString(),
      'metal': MlxMetal.isAvailable(),
      'warmup': warmup,
      'iters': iters,
      'models': <Map<String, Object?>>[
        _benchMlp(warmup: warmup, iters: iters, stream: stream),
        _benchConv(warmup: warmup, iters: iters, stream: stream),
        _benchAttention(warmup: warmup, iters: iters, stream: stream),
      ],
    };
  } finally {
    stream.close();
    device.close();
  }
}