diff options
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/benchmark.py | 48 | ||||
-rw-r--r-- | benchmark/tb_grextras_math.py (renamed from benchmark/bm_grextras_math.py) | 0 | ||||
-rw-r--r-- | benchmark/tb_many_1_to_1_blocks.py | 32 |
3 files changed, 70 insertions, 10 deletions
diff --git a/benchmark/benchmark.py b/benchmark/benchmark.py index ad98284..c2d0aa8 100644 --- a/benchmark/benchmark.py +++ b/benchmark/benchmark.py @@ -3,13 +3,22 @@ import os import time import subprocess import pylab as p +import copy __path__ = os.path.dirname(__file__) +INSTALL_PREFIX = '/opt/usr' + GRAS_ENV = { - 'PATH': os.path.join(os.getenv('HOME'), 'usr/gras/bin:$PATH:%s'%os.getenv('PATH')), - 'LD_LIBRARY_PATH': os.path.join(os.getenv('HOME'), 'usr/gras/lib:%s'%os.getenv('LD_LIBRARY_PATH')), - 'PYTHONPATH': os.path.join(os.getenv('HOME'), 'usr/gras/lib/python2.7/dist-packages:%s'%os.getenv('PYTHONPATH')), + 'PATH': os.path.join(INSTALL_PREFIX, 'gras/bin:$PATH:%s'%os.getenv('PATH')), + 'LD_LIBRARY_PATH': os.path.join(INSTALL_PREFIX, 'gras/lib:%s'%os.getenv('LD_LIBRARY_PATH')), + 'PYTHONPATH': os.path.join(INSTALL_PREFIX, 'gras/lib/python2.7/dist-packages:%s'%os.getenv('PYTHONPATH')), +} + +GR_ENV = { + 'PATH': os.path.join(INSTALL_PREFIX, 'gr/bin:$PATH:%s'%os.getenv('PATH')), + 'LD_LIBRARY_PATH': os.path.join(INSTALL_PREFIX, 'gr/lib:%s'%os.getenv('LD_LIBRARY_PATH')), + 'PYTHONPATH': os.path.join(INSTALL_PREFIX, 'gr/lib/python2.7/dist-packages:%s'%os.getenv('PYTHONPATH')), } def tokwargs(**kwargs): @@ -23,15 +32,27 @@ BENCHMARK_MATH_OPS = tokwargs( - GrExtras math blocks enable automatic bufer in-placing. ''', tests = [ - tokwargs(wat='GrExtras Adder', args=[sys.executable, os.path.join(__path__, 'bm_grextras_math.py'), '1e8', 'extras_add'], env=GRAS_ENV), - tokwargs(wat='gr-blocks Adder', args=[sys.executable, os.path.join(__path__, 'bm_grextras_math.py'), '1e8', 'blocks_add'], env=GRAS_ENV), - tokwargs(wat='GrExtras Multiplier', args=[sys.executable, os.path.join(__path__, 'bm_grextras_math.py'), '1e8', 'extras_mult'], env=GRAS_ENV), - tokwargs(wat='gr-blocks Multiplier', args=[sys.executable, os.path.join(__path__, 'bm_grextras_math.py'), '1e8', 'blocks_mult'], env=GRAS_ENV), + tokwargs(wat='GrExtras Adder', args=['tb_grextras_math.py', '1e8', 'extras_add'], env=GRAS_ENV), + tokwargs(wat='gr-blocks Adder', args=['tb_grextras_math.py', '1e8', 'blocks_add'], env=GRAS_ENV), + tokwargs(wat='GrExtras Multiplier', args=['tb_grextras_math.py', '1e8', 'extras_mult'], env=GRAS_ENV), + tokwargs(wat='gr-blocks Multiplier', args=['tb_grextras_math.py', '1e8', 'blocks_mult'], env=GRAS_ENV), + ], + to_result = lambda t: 1e8/t +) + +BENCHMARK_MANY_11_BLOCKS = tokwargs( + wat='Benchmark the schedulers with many 1:1 blocks', + moar='''TODO''', + tests = [ + tokwargs(wat='Many 1:1 GRAS - Default', args=['tb_many_1_to_1_blocks.py', '1e8'], env=GRAS_ENV), + #tokwargs(wat='Many 1:1 GRAS - TPP', args=['tb_many_1_to_1_blocks.py', '1e8'], env=GRAS_ENV, envextra=tokwargs(GRAS_TPP='1')), + tokwargs(wat='Many 1:1 GR', args=['tb_many_1_to_1_blocks.py', '1e8'], env=GR_ENV), ], to_result = lambda t: 1e8/t ) def time_a_single_one(args, env): + print env t0 = time.time() p = subprocess.Popen(args=args, env=env) p.wait() @@ -41,10 +62,17 @@ def time_a_single_one(args, env): def do_a_benchmark(bm): results = list() for run in bm['tests']: - #print run['env'] - r = time_a_single_one(args=run['args'], env=run['env']) + args = run['args'] + args[0] = os.path.join(__path__, args[0]) + args = [sys.executable] + args + env = run['env'] + env = copy.copy(env) + if run.has_key('envextra'): + env.update(run['envextra']) + r = time_a_single_one(args=args, env=env) results.append(bm['to_result'](r)) print results if __name__ == '__main__': - do_a_benchmark(BENCHMARK_MATH_OPS) + #do_a_benchmark(BENCHMARK_MATH_OPS) + do_a_benchmark(BENCHMARK_MANY_11_BLOCKS) diff --git a/benchmark/bm_grextras_math.py b/benchmark/tb_grextras_math.py index e238472..e238472 100644 --- a/benchmark/bm_grextras_math.py +++ b/benchmark/tb_grextras_math.py diff --git a/benchmark/tb_many_1_to_1_blocks.py b/benchmark/tb_many_1_to_1_blocks.py new file mode 100644 index 0000000..2f7dcea --- /dev/null +++ b/benchmark/tb_many_1_to_1_blocks.py @@ -0,0 +1,32 @@ +import gnuradio +from gnuradio import gr +from gnuradio import blocks as grblocks +import sys + +if __name__ == '__main__': + + num = long(float(sys.argv[1])) + + tb = gr.top_block() + src0 = gr.null_source(8) + src1 = gr.null_source(8) + addr01 = grblocks.add_cc() + src2 = gr.null_source(8) + src3 = gr.null_source(8) + addr23 = grblocks.add_cc() + mult03 = grblocks.multiply_cc() + sink = gr.null_sink(8) + head = gr.head(8, num) + + tb.connect(src0, (addr01, 0)) + tb.connect(src1, (addr01, 1)) + tb.connect(src2, (addr23, 0)) + tb.connect(src3, (addr23, 1)) + + tb.connect(addr01, (mult03, 0)) + tb.connect(addr23, (mult03, 1)) + + tb.connect(mult03, head, sink) + + tb.run() + tb.wait() |