(
configs: list[BenchmarkConfig],
warmup_iterations: int | list[int] = 5,
measurement_iterations: int | list[int] = 20,
batch_size: int | list[int] = 1,
sequence_length: int | list[int] = 128,
num_tokens_to_generate: int | list[int] = 128,
gpu_monitoring: bool | list[bool] = True,
)
| 215 | |
| 216 | |
| 217 | def adapt_configs( |
| 218 | configs: list[BenchmarkConfig], |
| 219 | warmup_iterations: int | list[int] = 5, |
| 220 | measurement_iterations: int | list[int] = 20, |
| 221 | batch_size: int | list[int] = 1, |
| 222 | sequence_length: int | list[int] = 128, |
| 223 | num_tokens_to_generate: int | list[int] = 128, |
| 224 | gpu_monitoring: bool | list[bool] = True, |
| 225 | ) -> list[BenchmarkConfig]: |
| 226 | parameters = ( |
| 227 | x if isinstance(x, list) else [x] |
| 228 | for x in [ |
| 229 | warmup_iterations, |
| 230 | measurement_iterations, |
| 231 | batch_size, |
| 232 | sequence_length, |
| 233 | num_tokens_to_generate, |
| 234 | gpu_monitoring, |
| 235 | ] |
| 236 | ) |
| 237 | iterator = itertools.product(*parameters) |
| 238 | |
| 239 | adapted_configs = [] |
| 240 | for warmup_iters, measurement_iters, bs, seqlen, ntok, monitor in iterator: |
| 241 | for config in configs: |
| 242 | config = config.to_dict() |
| 243 | config["warmup_iterations"] = warmup_iters |
| 244 | config["measurement_iterations"] = measurement_iters |
| 245 | config["batch_size"] = bs |
| 246 | config["sequence_length"] = seqlen |
| 247 | config["num_tokens_to_generate"] = ntok |
| 248 | config["gpu_monitoring"] = monitor |
| 249 | # Remove the old name so it gets re-inferred with the updated values |
| 250 | config.pop("name", None) |
| 251 | adapted_configs.append(BenchmarkConfig.from_dict(config)) |
| 252 | return adapted_configs |
| 253 | |
| 254 | |
| 255 | def get_config_by_level(level: int) -> list[BenchmarkConfig]: |
no test coverage detected