Wenn Sie einen Mac mini M4 in Singapur, Japan, Korea, Hongkong oder US-West mieten und darauf ONNX Runtime mit dem CoreML Execution Provider für Batch-Inferenz betreiben, bestimmen Threading, Spitzen im vereinigten Speicher und Warteschlangen-Timeouts gemeinsam die Stabilität. Die folgende Matrix bündelt aktive InferenceSession-Zahlen, Batchgröße B, NVMe-I/O sowie Wq und Wc; ergänzt werden exportierbare Umgebungsvariablen und eine konservative Parallelitäts-Checkliste—ohne feste Speedup-Versprechen; messen Sie mit Ihrem Modell und Ihrer ORT-Build-Version. Vertiefung: Core ML mlmodelc & Batch-Inferenz-Matrix, Region, Latenz & TCO (Miete vs. Kauf), PyTorch MPS vs. MLX auf Miet-M4. Öffentliche Seiten ohne Login: Startseite, Pakete & Preise, Kaufen nach Region, Hilfe.
Annahmen & Grenzen
Der CoreML EP delegiert Teilgraphen an die Apple-Runtimes; tatsächliches Verhalten hängt von macOS-Version, ORT-Build und Modell ab. Erstes Laden, Graph-Optimierung und Cache-Aufbau verlängern typischerweise die kalte Tail-Latenz. Im Remote-Betrieb sollten Sie SSH-/API-Wartezeiten und reine Geräte-Rechenzeit getrennt erfassen und dem vereinigten Speicher bewusst Systemrestkapazität lassen. Die Tabelle ist ein Startpunkt für Runbooks—iterieren Sie mit p95/p99 und Speicherprofilen aus Ihrer Domäne.
Entscheidungsmatrix (Sitzungen, Threads, Batch, I/O, Timeouts, Miet-Hinweise)
Symbole: Wq begrenzt die Wartezeit, bis ein Inferenz-Slot zugeteilt ist; Wc begrenzt die Rechenzeit eines run()-Aufrufs inklusive erstem Optimize und Warm-up-Spielraum. Die Spalte „Miete“ ist qualitativ—konkrete Tarife stehen auf den öffentlichen Preis- und Kaufseiten.
| Szenario | Aktive InferenceSession | Threads (intra/inter Start) | Batch B | I/O (internes NVMe) | Wq / Wc | Tages- / Monatsmiete (qualitativ) |
|---|---|---|---|---|---|---|
| Nächtlicher Offline-Batch (Modell fix) | 16 GB: 1–2; 24 GB: 2–3 (verifizieren) | intra 2–4, inter zunächst 1; mit OpenMP abstimmen | B treppenweise erhöhen; prüfen, ob Teilgraphen auf CPU zurückfallen | Gewichte und Zwischenergebnisse in getrennte Verzeichnisse; nicht gegen System-Logs schreiben | Wq kurz / Wc ≈ 2× p95 + Warm-up | Tagesmiete für Spitzen-POCs |
| Online, niedrige Latenz, kleine Batches | 1 dauerhaft; optional zweite read-only-Session für getrennte Lesepfade | intra 1–2, inter 1; Tail-Latenz priorisieren | kleines B; lieber sauber einreihen als große Schwanzlatenz | Caches read-mostly; Schreibpfad minimal halten | Wq mittel / Wc inkl. erster Inferenz | Monatsmiete für stabile Grundlinie |
| Multi-Tenant / geteilter Knoten | pro Mandant 1; globaler Session-Pool + Semaphore | konservative Thread-Decke; keine Session pro Request neu erzeugen | Mandanten-Caps; Überlauf in tiefe Queue oder Ablehnung | Mandanten-scratch; externe Platte optional |
Wq länger + dokumentierte Degradation / Wc an SLA | bei sauberer Isolation kann Monatsgebühr günstiger sein als Ad-hoc-Spitzen |
Keine festen Speedup-Versprechen. ANE-/GPU-Anteil und Teilgraph-Abdeckung sind modellabhängig. Erfassen Sie Latenz und Speicher in Stufen mit gleicher Eingabeverteilung, bevor Sie die Matrix „hart“ machen. Tarife: Pakete & Preise und Kaufen.
Exportierbare Umgebungsvariablen (Shell-Beispiel)
Diese Variablen können Sie vor Prozessstart in bash oder zsh setzen; validieren Sie gegen Ihre Abhängigkeiten (OpenMP, Accelerate) und den ORT-Build. Viele CoreML-EP-Optionen sitzen zusätzlich in SessionOptions bzw. Provider-Optionen—bitte parallel zur Upstream-Dokumentation lesen.
# Abgleich mit SessionOptions.intra_op_num_threads, um CPU-Oversubscription zu vermeiden
export OMP_NUM_THREADS=<INTRAthreads>
export VECLIB_MAXIMUM_THREADS=<INTRAthreads>
# ORT-Loglevel (Name oder 0–4; API setzt ggf. Vorrang)
export ORT_LOG_LEVEL=<VERBOSE|WARNING|3>
OMP_NUM_THREADS: gleichintra_op_num_threadsoder Teilmenge—nicht mit mehreren Prozessen unkontrolliert multiplizieren.VECLIB_MAXIMUM_THREADS: deckelt Accelerate/vecLib auf CPU-Teilgraphen und Pre/Post-Processing.ORT_LOG_LEVEL: kurz für Diagnose, produktiv zurückdrehen; Details siehe ORT-Logging-Dokumentation.
Parallelität—konservative Checkliste (ohne Marketing-Zahlen)
- Langlebige
InferenceSession-Instanzen poolen; bei höherer Ankunftsrate kein ständiges Erzeugen/Vernichten. - Aktive Sessions ≤ stabile Parallelität; Semaphore trennt erste Inferenz von Batch-Spitzen.
- Threading treppenweise:
inter_op_num_threadszuerst auf 1, dannintra_op_num_threadsschrittweise; nach jedem Schritt p95/p99 und Resident Set notieren. - Große
coremlcompiler-Läufe oder Massen-I/O versetzen, damit vereinigter Speicher und NVMe nicht gleichzeitig sättigen. - CPU-Fallbacks im Blick: wenn Operator nicht auf ANE/GPU geht, bleibt Restgraph auf CPU—dann sind Thread-Decken besonders sensibel.
Timeouts & Degradation
Regionsübergreifend frisst die Steuerungsebene Wq: „Knoten zuweisen“ und „ORT run() beenden“ gehören in getrennte Budget-Spalten Ihres Schedulers. Degradation: B reduzieren, nicht-kritische Batches verschieben, Dead-Letter mit begrenzten Retries. Daten näher am Inferenz-Knoten halten, damit WAN-RTT nicht das Warte-Budget auffrisst—siehe auch Region & TCO.
Region wählen & Paket abstimmen
Steuerung und Daten sollten idealerweise benutzer- oder quellennahe Regionen nutzen. Schwerer Batch-Inferenz verlangt oft eher mehr RAM-SKU und weniger gleichzeitige Sessions als riskantes Stapeln auf 16 GB. Kurze Benchmark-Wochen mit Tagesmiete, danach Monatsmiete für stabile Workloads. Auf Kaufen nach Region Knoten in APAC/US-West wählen und mit Paketen & Preisen abgleichen; Verbindung und Berechtigungen in der Hilfe nachlesen.
FAQ (Kurzantworten im Fließtext)
Warum ist die erste Inferenz so langsam? Graph-Laden, Optimierung und Cache-Aufbau—trennen Sie Kalt- von Warm-Metriken und planen Sie Wc entsprechend.
Externe SSD nötig? Nicht zwingend; bei großen Gewichten und Logs kann externer Scratch interne Schreibkonkurrenz reduzieren—nicht mehrere Mandanten gleichzeitig über dieselbe externe Platte scannen lassen.
Fazit
Festziehen Sie zuerst Sitzungszahl, Threading, Batch und doppelte Timeouts, harmonisieren Sie CPU-/Math-Bibliothek-Threads über Umgebungsvariablen, und wählen Sie Region sowie Mietmodell danach. Öffentliche Einstiege: Startseite, Preise, Kaufen—alles ohne Pflicht-Login zum Lesen; Bestellung oder Dashboard folgen dem normalen Onboarding.