| 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 14 matching lines...) Expand all  Loading... | 
| 25 Executes the skpbench binary with various configs and skps. | 25 Executes the skpbench binary with various configs and skps. | 
| 26 | 26 | 
| 27 Also monitors the output in order to filter out and re-run results that have an | 27 Also monitors the output in order to filter out and re-run results that have an | 
| 28 unacceptable stddev. | 28 unacceptable stddev. | 
| 29 | 29 | 
| 30 """) | 30 """) | 
| 31 | 31 | 
| 32 __argparse.add_argument('--adb', | 32 __argparse.add_argument('--adb', | 
| 33     action='store_true', help="execute skpbench over adb") | 33     action='store_true', help="execute skpbench over adb") | 
| 34 __argparse.add_argument('-s', '--device-serial', | 34 __argparse.add_argument('-s', '--device-serial', | 
| 35     help="if using adb, id of the specific device to target") | 35     help="if using adb, ID of the specific device to target " | 
|  | 36          "(only required if more than 1 device is attached)") | 
| 36 __argparse.add_argument('-p', '--path', | 37 __argparse.add_argument('-p', '--path', | 
| 37     help="directory to execute ./skpbench from") | 38     help="directory to execute ./skpbench from") | 
| 38 __argparse.add_argument('-m', '--max-stddev', | 39 __argparse.add_argument('-m', '--max-stddev', | 
| 39     type=float, default=4, | 40     type=float, default=4, | 
| 40     help="initial max allowable relative standard deviation") | 41     help="initial max allowable relative standard deviation") | 
| 41 __argparse.add_argument('-x', '--suffix', | 42 __argparse.add_argument('-x', '--suffix', | 
| 42     help="suffix to append on config (e.g. '_before', '_after')") | 43     help="suffix to append on config (e.g. '_before', '_after')") | 
| 43 __argparse.add_argument('-w','--write-path', | 44 __argparse.add_argument('-w','--write-path', | 
| 44     help="directory to save .png proofs to disk.") | 45     help="directory to save .png proofs to disk.") | 
| 45 __argparse.add_argument('-v','--verbosity', | 46 __argparse.add_argument('-v','--verbosity', | 
| 46     type=int, default=1, help="level of verbosity (0=none to 5=debug)") | 47     type=int, default=1, help="level of verbosity (0=none to 5=debug)") | 
| 47 __argparse.add_argument('-d', '--duration', | 48 __argparse.add_argument('-d', '--duration', | 
| 48     type=int, help="number of milliseconds to run each benchmark") | 49     type=int, help="number of milliseconds to run each benchmark") | 
| 49 __argparse.add_argument('-l', '--sample-ms', | 50 __argparse.add_argument('-l', '--sample-ms', | 
| 50     type=int, help="minimum duration of a sample") | 51     type=int, help="duration of a sample (minimum)") | 
|  | 52 __argparse.add_argument('--gpu', | 
|  | 53     action='store_true', | 
|  | 54     help="perform timing on the gpu clock instead of cpu (gpu work only)") | 
| 51 __argparse.add_argument('--fps', | 55 __argparse.add_argument('--fps', | 
| 52     action='store_true', help="use fps instead of ms") | 56     action='store_true', help="use fps instead of ms") | 
| 53 __argparse.add_argument('-c', '--config', | 57 __argparse.add_argument('-c', '--config', | 
| 54     default='gpu', help="comma- or space-separated list of GPU configs") | 58     default='gpu', help="comma- or space-separated list of GPU configs") | 
| 55 __argparse.add_argument('skps', | 59 __argparse.add_argument('skps', | 
| 56     nargs='+', | 60     nargs='+', | 
| 57     help=".skp files or directories to expand for .skp files") | 61     help=".skp files or directories to expand for .skp files") | 
| 58 | 62 | 
| 59 FLAGS = __argparse.parse_args() | 63 FLAGS = __argparse.parse_args() | 
| 60 if FLAGS.adb: | 64 if FLAGS.adb: | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
| 86     for line in iter(self._proc.stdout.readline, b''): | 90     for line in iter(self._proc.stdout.readline, b''): | 
| 87       self._queue.put(Message(Message.READLINE, line.decode('utf-8').rstrip())) | 91       self._queue.put(Message(Message.READLINE, line.decode('utf-8').rstrip())) | 
| 88     self._queue.put(Message(Message.EXIT)) | 92     self._queue.put(Message(Message.EXIT)) | 
| 89 | 93 | 
| 90 class SKPBench: | 94 class SKPBench: | 
| 91   ARGV = ['skpbench', '--verbosity', str(FLAGS.verbosity)] | 95   ARGV = ['skpbench', '--verbosity', str(FLAGS.verbosity)] | 
| 92   if FLAGS.duration: | 96   if FLAGS.duration: | 
| 93     ARGV.extend(['--duration', str(FLAGS.duration)]) | 97     ARGV.extend(['--duration', str(FLAGS.duration)]) | 
| 94   if FLAGS.sample_ms: | 98   if FLAGS.sample_ms: | 
| 95     ARGV.extend(['--sampleMs', str(FLAGS.sample_ms)]) | 99     ARGV.extend(['--sampleMs', str(FLAGS.sample_ms)]) | 
|  | 100   if FLAGS.gpu: | 
|  | 101     ARGV.extend(['--gpuClock', 'true']) | 
| 96   if FLAGS.fps: | 102   if FLAGS.fps: | 
| 97     ARGV.extend(['--fps', 'true']) | 103     ARGV.extend(['--fps', 'true']) | 
| 98   if FLAGS.path: | 104   if FLAGS.path: | 
| 99     ARGV[0] = _path.join(FLAGS.path, ARGV[0]) | 105     ARGV[0] = _path.join(FLAGS.path, ARGV[0]) | 
| 100   if FLAGS.adb: | 106   if FLAGS.adb: | 
| 101     if FLAGS.device_serial is None: | 107     if FLAGS.device_serial is None: | 
| 102       ARGV = ['adb', 'shell'] + ARGV | 108       ARGV = ['adb', 'shell'] + ARGV | 
| 103     else: | 109     else: | 
| 104       ARGV = ['adb', '-s', FLAGS.device_serial, 'shell'] + ARGV | 110       ARGV = ['adb', '-s', FLAGS.device_serial, 'shell'] + ARGV | 
| 105 | 111 | 
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 181     elif FLAGS.verbosity >= 2: | 187     elif FLAGS.verbosity >= 2: | 
| 182       print("reusing previous result for %s/%s with lower stddev " | 188       print("reusing previous result for %s/%s with lower stddev " | 
| 183             "(%s%% instead of %s%%)." % | 189             "(%s%% instead of %s%%)." % | 
| 184             (result.config, result.bench, self.best_result.stddev, | 190             (result.config, result.bench, self.best_result.stddev, | 
| 185              result.stddev), file=sys.stderr) | 191              result.stddev), file=sys.stderr) | 
| 186     if self.max_stddev and self.best_result.stddev > self.max_stddev: | 192     if self.max_stddev and self.best_result.stddev > self.max_stddev: | 
| 187       raise StddevException() | 193       raise StddevException() | 
| 188 | 194 | 
| 189   def terminate(self): | 195   def terminate(self): | 
| 190     if self._proc: | 196     if self._proc: | 
| 191       self._proc.kill() | 197       self._proc.terminate() | 
| 192       self._monitor.join() | 198       self._monitor.join() | 
| 193       self._proc.wait() | 199       self._proc.wait() | 
| 194       self._proc = None | 200       self._proc = None | 
| 195 | 201 | 
| 196 | 202 | 
| 197 def run_benchmarks(configs, skps, hardware): | 203 def run_benchmarks(configs, skps, hardware): | 
| 198   SKPBench.print_header() | 204   SKPBench.print_header() | 
| 199 | 205 | 
| 200   benches = collections.deque([(skp, config, FLAGS.max_stddev) | 206   benches = collections.deque([(skp, config, FLAGS.max_stddev) | 
| 201                                for skp in skps | 207                                for skp in skps | 
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 257   with hardware: | 263   with hardware: | 
| 258     if hardware.kick_in_time: | 264     if hardware.kick_in_time: | 
| 259       print("sleeping %i seconds to allow hardware settings to kick in..." % | 265       print("sleeping %i seconds to allow hardware settings to kick in..." % | 
| 260             hardware.kick_in_time, file=sys.stderr) | 266             hardware.kick_in_time, file=sys.stderr) | 
| 261       time.sleep(hardware.kick_in_time) | 267       time.sleep(hardware.kick_in_time) | 
| 262     run_benchmarks(configs, skps, hardware) | 268     run_benchmarks(configs, skps, hardware) | 
| 263 | 269 | 
| 264 | 270 | 
| 265 if __name__ == '__main__': | 271 if __name__ == '__main__': | 
| 266   main() | 272   main() | 
| OLD | NEW | 
|---|