Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1495)

Side by Side Diff: tools/skpbench/skpbench.py

Issue 2388433003: skpbench: add option for gpu timing (Closed)
Patch Set: SkAutoTDelete Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/skpbench/skpbench.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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()
OLDNEW
« no previous file with comments | « tools/skpbench/skpbench.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698