summaryrefslogtreecommitdiff
path: root/benchmark
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/benchmark.py48
-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.py32
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()