VisionPsy-Nano-460M-Flash / runtime_profile.py
rishabhja's picture
VisionPsy-Nano-460M-Flash release
11bd90f
Raw
History Blame Contribute Delete
1.39 kB
"""Inference runtime profiles (eager vs torch.compile + CUDA graphs)."""
from __future__ import annotations
import torch
def apply_eager_profile(model) -> None:
for cfg in (getattr(model, "cfg", None), getattr(model, "config", None)):
if cfg is not None and hasattr(cfg, "compile_inference"):
cfg.compile_inference = False
def apply_deploy_profile(model, device: torch.device) -> None:
if device.type != "cuda":
apply_eager_profile(model)
return
for cfg in (getattr(model, "cfg", None), getattr(model, "config", None)):
if cfg is None:
continue
if hasattr(cfg, "compile_inference"):
cfg.compile_inference = True
if hasattr(cfg, "compile_inference_mode"):
cfg.compile_inference_mode = "reduce-overhead"
if hasattr(cfg, "cuda_graphs_cache_quantum"):
cfg.cuda_graphs_cache_quantum = 128
if hasattr(cfg, "eos_check_interval"):
cfg.eos_check_interval = 16
def profile_label(model, device: torch.device) -> str:
cfg = getattr(model, "cfg", None) or getattr(model, "config", None)
if device.type != "cuda":
return "cpu-eager"
if cfg is not None and getattr(cfg, "compile_inference", False):
mode = getattr(cfg, "compile_inference_mode", "default")
return f"cuda-compile-{mode}"
return "cuda-eager"