| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 | 2 |
| 3 # Copyright 2016 Google Inc. | 3 # Copyright 2016 Google Inc. |
| 4 # | 4 # |
| 5 # Use of this source code is governed by a BSD-style license that can be | 5 # Use of this source code is governed by a BSD-style license that can be |
| 6 # found in the LICENSE file. | 6 # found in the LICENSE file. |
| 7 | 7 |
| 8 from __future__ import print_function | 8 from __future__ import print_function |
| 9 from _adb import Adb | 9 from _adb import Adb |
| 10 from _benchresult import BenchResult | 10 from _benchresult import BenchResult |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 help=".skp files or directories to expand for .skp files") | 61 help=".skp files or directories to expand for .skp files") |
| 62 | 62 |
| 63 FLAGS = __argparse.parse_args() | 63 FLAGS = __argparse.parse_args() |
| 64 if FLAGS.adb: | 64 if FLAGS.adb: |
| 65 import _adb_path as _path | 65 import _adb_path as _path |
| 66 _path.init(FLAGS.device_serial) | 66 _path.init(FLAGS.device_serial) |
| 67 else: | 67 else: |
| 68 import _os_path as _path | 68 import _os_path as _path |
| 69 | 69 |
| 70 def dump_commandline_if_verbose(commandline): | 70 def dump_commandline_if_verbose(commandline): |
| 71 if FLAGS.verbosity >= 4: | 71 if FLAGS.verbosity >= 5: |
| 72 quoted = ['\'%s\'' % re.sub(r'([\\\'])', r'\\\1', x) for x in commandline] | 72 quoted = ['\'%s\'' % re.sub(r'([\\\'])', r'\\\1', x) for x in commandline] |
| 73 print(' '.join(quoted), file=sys.stderr) | 73 print(' '.join(quoted), file=sys.stderr) |
| 74 | 74 |
| 75 | 75 |
| 76 class StddevException(Exception): | 76 class StddevException(Exception): |
| 77 pass | 77 pass |
| 78 | 78 |
| 79 class Message: | 79 class Message: |
| 80 READLINE = 0, | 80 READLINE = 0, |
| 81 POLL_HARDWARE = 1, | 81 POLL_HARDWARE = 1, |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 246 "re-queuing with max=%.2f%%." % | 246 "re-queuing with max=%.2f%%." % |
| 247 (skpbench.best_result.config, skpbench.best_result.bench, | 247 (skpbench.best_result.config, skpbench.best_result.bench, |
| 248 skpbench.best_result.stddev, skpbench.max_stddev, | 248 skpbench.best_result.stddev, skpbench.max_stddev, |
| 249 retry_max_stddev), | 249 retry_max_stddev), |
| 250 file=sys.stderr) | 250 file=sys.stderr) |
| 251 benches.append((skpbench.skp, skpbench.config, retry_max_stddev, | 251 benches.append((skpbench.skp, skpbench.config, retry_max_stddev, |
| 252 skpbench.best_result)) | 252 skpbench.best_result)) |
| 253 | 253 |
| 254 except HardwareException as exception: | 254 except HardwareException as exception: |
| 255 skpbench.terminate() | 255 skpbench.terminate() |
| 256 if FLAGS.verbosity >= 5: | 256 if FLAGS.verbosity >= 4: |
| 257 hardware.print_debug_diagnostics() | 257 hardware.print_debug_diagnostics() |
| 258 if FLAGS.verbosity >= 1: | 258 if FLAGS.verbosity >= 1: |
| 259 print("%s; taking a %i second nap..." % | 259 print("%s; taking a %i second nap..." % |
| 260 (exception.message, exception.sleeptime), file=sys.stderr) | 260 (exception.message, exception.sleeptime), file=sys.stderr) |
| 261 benches.appendleft(benchargs) # retry the same bench next time. | 261 benches.appendleft(benchargs) # retry the same bench next time. |
| 262 hardware.sleep(exception.sleeptime) | 262 hardware.sleep(exception.sleeptime) |
| 263 if FLAGS.verbosity >= 5: | 263 if FLAGS.verbosity >= 4: |
| 264 hardware.print_debug_diagnostics() | 264 hardware.print_debug_diagnostics() |
| 265 SKPBench.run_warmup(hardware.warmup_time) | 265 SKPBench.run_warmup(hardware.warmup_time) |
| 266 | 266 |
| 267 | 267 |
| 268 def main(): | 268 def main(): |
| 269 # Delimiter is ',' or ' ', skip if nested inside parens (e.g. gpu(a=b,c=d)). | 269 # Delimiter is ',' or ' ', skip if nested inside parens (e.g. gpu(a=b,c=d)). |
| 270 DELIMITER = r'[, ](?!(?:[^(]*\([^)]*\))*[^()]*\))' | 270 DELIMITER = r'[, ](?!(?:[^(]*\([^)]*\))*[^()]*\))' |
| 271 configs = re.split(DELIMITER, FLAGS.config) | 271 configs = re.split(DELIMITER, FLAGS.config) |
| 272 skps = _path.find_skps(FLAGS.skps) | 272 skps = _path.find_skps(FLAGS.skps) |
| 273 | 273 |
| 274 if FLAGS.adb: | 274 if FLAGS.adb: |
| 275 adb = Adb(FLAGS.device_serial) | 275 adb = Adb(FLAGS.device_serial, |
| 276 model = adb.get_device_model() | 276 echofile=(sys.stderr if FLAGS.verbosity >= 5 else None)) |
| 277 model = adb.check('getprop ro.product.model').strip() |
| 277 if model == 'Pixel C': | 278 if model == 'Pixel C': |
| 278 from _hardware_pixel_c import HardwarePixelC | 279 from _hardware_pixel_c import HardwarePixelC |
| 279 hardware = HardwarePixelC(adb) | 280 hardware = HardwarePixelC(adb) |
| 280 elif model == 'Nexus 6P': | 281 elif model == 'Nexus 6P': |
| 281 from _hardware_nexus_6p import HardwareNexus6P | 282 from _hardware_nexus_6p import HardwareNexus6P |
| 282 hardware = HardwareNexus6P(adb) | 283 hardware = HardwareNexus6P(adb) |
| 283 else: | 284 else: |
| 284 from _hardware_android import HardwareAndroid | 285 from _hardware_android import HardwareAndroid |
| 285 print("WARNING: %s: don't know how to monitor this hardware; results " | 286 print("WARNING: %s: don't know how to monitor this hardware; results " |
| 286 "may be unreliable." % model, file=sys.stderr) | 287 "may be unreliable." % model, file=sys.stderr) |
| 287 hardware = HardwareAndroid(adb) | 288 hardware = HardwareAndroid(adb) |
| 288 else: | 289 else: |
| 289 hardware = Hardware() | 290 hardware = Hardware() |
| 290 | 291 |
| 291 with hardware: | 292 with hardware: |
| 292 SKPBench.run_warmup(hardware.warmup_time) | 293 SKPBench.run_warmup(hardware.warmup_time) |
| 293 run_benchmarks(configs, skps, hardware) | 294 run_benchmarks(configs, skps, hardware) |
| 294 | 295 |
| 295 | 296 |
| 296 if __name__ == '__main__': | 297 if __name__ == '__main__': |
| 297 main() | 298 main() |
| OLD | NEW |