Skip to content

Commit 780b88f

Browse files
committed
fixed quick search
1 parent 47ec159 commit 780b88f

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

model_analyzer/config/generate/quick_plus_concurrency_sweep_run_config_generator.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
import logging
1818
from copy import deepcopy
19-
from typing import Generator, List, Optional
19+
from typing import Dict, Generator, List, Optional
2020

2121
from model_analyzer.config.generate.model_profile_spec import ModelProfileSpec
2222
from model_analyzer.config.generate.model_variant_name_manager import (
@@ -139,7 +139,8 @@ def _sweep_concurrency_over_top_results(self) -> Generator[RunConfig, None, None
139139

140140
for result in top_results:
141141
run_config = deepcopy(result.run_config())
142-
parameter_search = ParameterSearch(self._config)
142+
perf_analyzer_flags = self._get_model_perf_analyzer_flags(model_name)
143+
parameter_search = ParameterSearch(self._config, perf_analyzer_flags=perf_analyzer_flags)
143144
for concurrency in parameter_search.search_parameters():
144145
run_config = self._set_concurrency(run_config, concurrency)
145146
yield run_config
@@ -151,3 +152,8 @@ def _set_concurrency(self, run_config: RunConfig, concurrency: int) -> RunConfig
151152
perf_config.update_config({"concurrency-range": concurrency})
152153

153154
return run_config
155+
156+
def _get_model_perf_analyzer_flags(self, model_name: str) -> Dict:
157+
for model in self._models:
158+
if model_name == model.model_name():
159+
return model.perf_analyzer_flags()

model_analyzer/config/generate/quick_run_config_generator.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -511,9 +511,12 @@ def _get_next_perf_analyzer_config(
511511

512512
perf_analyzer_config.update_config_from_profile_config(model_name, self._config)
513513

514-
concurrency = self._calculate_concurrency(dimension_values)
514+
perf_config_params = {"batch-size": 1}
515+
516+
if not "request-intervals" in model.perf_analyzer_flags():
517+
concurrency = self._calculate_concurrency(dimension_values)
518+
perf_config_params["concurrency-range"] = concurrency
515519

516-
perf_config_params = {"batch-size": 1, "concurrency-range": concurrency}
517520
perf_analyzer_config.update_config(perf_config_params)
518521

519522
perf_analyzer_config.update_config(model.perf_analyzer_flags())
@@ -704,7 +707,11 @@ def _create_default_perf_analyzer_config(
704707
model_config.get_field("name"), self._config
705708
)
706709

707-
perf_config_params = {"batch-size": 1, "concurrency-range": 1}
710+
perf_config_params = {"batch-size": 1}
711+
712+
if not "request-intervals" in model.perf_analyzer_flags():
713+
perf_config_params["concurrency-range"] = 1
714+
708715
default_perf_analyzer_config.update_config(perf_config_params)
709716

710717
default_perf_analyzer_config.update_config(model.perf_analyzer_flags())

model_analyzer/result/parameter_search.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ class ParameterSearch:
3737
- Will sweep from by powers of two from min to max parameter
3838
- If the user specifies a constraint, the algorithm will perform a binary search
3939
around the boundary if the constraint is violated
40+
- Will not sweep at all if custom stimulus is provided by the user (via the "request-intervals" perf analyzer flag)
4041
4142
Invariant: It is necessary for the user to add new measurements as they are taken
4243
"""

0 commit comments

Comments
 (0)