@@ -106,7 +106,7 @@ def time_it(fn: Callable[[], None], warmup: int = 1, runs: int = 3) -> dict:
106106 }
107107
108108
109- def bench_onnx_default (chunks : List [str ], batch_size : int ) -> dict :
109+ def bench_onnx_default (chunks : List [str ], batch_size : int , runs : int ) -> dict :
110110 """ChromaDB's ONNXMiniLM_L6_V2 with default providers (current mempalace)."""
111111 from chromadb .utils .embedding_functions .onnx_mini_lm_l6_v2 import ONNXMiniLM_L6_V2
112112
@@ -118,10 +118,10 @@ def fn():
118118 for i in range (0 , len (chunks ), batch_size ):
119119 _ = ef (chunks [i : i + batch_size ])
120120
121- return time_it (fn )
121+ return time_it (fn , runs = runs )
122122
123123
124- def bench_onnx_cpu_only (chunks : List [str ], batch_size : int ) -> dict :
124+ def bench_onnx_cpu_only (chunks : List [str ], batch_size : int , runs : int ) -> dict :
125125 from chromadb .utils .embedding_functions .onnx_mini_lm_l6_v2 import ONNXMiniLM_L6_V2
126126
127127 ef = ONNXMiniLM_L6_V2 (preferred_providers = ["CPUExecutionProvider" ])
@@ -131,10 +131,10 @@ def fn():
131131 for i in range (0 , len (chunks ), batch_size ):
132132 _ = ef (chunks [i : i + batch_size ])
133133
134- return time_it (fn )
134+ return time_it (fn , runs = runs )
135135
136136
137- def bench_onnx_coreml (chunks : List [str ], batch_size : int ) -> dict :
137+ def bench_onnx_coreml (chunks : List [str ], batch_size : int , runs : int ) -> dict :
138138 """Explicitly force CoreML — expected to raise or silently fall back."""
139139 try :
140140 import onnxruntime
@@ -154,12 +154,12 @@ def fn():
154154 for i in range (0 , len (chunks ), batch_size ):
155155 _ = ef (chunks [i : i + batch_size ])
156156
157- return time_it (fn )
157+ return time_it (fn , runs = runs )
158158 except Exception as e :
159159 return {"error" : str (e )[:120 ]}
160160
161161
162- def bench_sentence_transformers (chunks : List [str ], batch_size : int , device : str ) -> dict :
162+ def bench_sentence_transformers (chunks : List [str ], batch_size : int , device : str , runs : int ) -> dict :
163163 try :
164164 from sentence_transformers import SentenceTransformer
165165 except ImportError :
@@ -176,7 +176,7 @@ def bench_sentence_transformers(chunks: List[str], batch_size: int, device: str)
176176 def fn ():
177177 _ = model .encode (chunks , batch_size = batch_size , show_progress_bar = False )
178178
179- return time_it (fn )
179+ return time_it (fn , runs = runs )
180180
181181
182182# ---- main ---------------------------------------------------------------
@@ -219,11 +219,26 @@ def main():
219219 return
220220
221221 backends = [
222- ("onnx_default" , lambda : bench_onnx_default (chunks , args .batch_size )),
223- ("onnx_cpu_only" , lambda : bench_onnx_cpu_only (chunks , args .batch_size )),
224- ("onnx_coreml" , lambda : bench_onnx_coreml (chunks , args .batch_size )),
225- ("st_cpu" , lambda : bench_sentence_transformers (chunks , args .batch_size , "cpu" )),
226- ("st_mps" , lambda : bench_sentence_transformers (chunks , args .batch_size , "mps" )),
222+ (
223+ "onnx_default" ,
224+ lambda : bench_onnx_default (chunks , args .batch_size , args .runs ),
225+ ),
226+ (
227+ "onnx_cpu_only" ,
228+ lambda : bench_onnx_cpu_only (chunks , args .batch_size , args .runs ),
229+ ),
230+ (
231+ "onnx_coreml" ,
232+ lambda : bench_onnx_coreml (chunks , args .batch_size , args .runs ),
233+ ),
234+ (
235+ "st_cpu" ,
236+ lambda : bench_sentence_transformers (chunks , args .batch_size , "cpu" , args .runs ),
237+ ),
238+ (
239+ "st_mps" ,
240+ lambda : bench_sentence_transformers (chunks , args .batch_size , "mps" , args .runs ),
241+ ),
227242 ]
228243
229244 results = {}
0 commit comments