In [1]:
%pylab inline
import numpy as np
import pandas as pd
import cPickle as pickle
import seaborn as sns
import tabulate
Populating the interactive namespace from numpy and matplotlib
/Users/jonas/anaconda/envs/test-environment/lib/python2.7/site-packages/IPython/html.py:14: ShimWarning: The `IPython.html` package has been deprecated. You should import from `notebook` instead. `IPython.html.widgets` has moved to `ipywidgets`.
"`IPython.html.widgets` has moved to `ipywidgets`.", ShimWarning)
In [2]:
benchdf = pickle.load(open("benchmark.pickle", 'r'))
In [3]:
benchdf['numba chirpz2d'] = benchdf['fft2'] / benchdf['numba chirpz2d']
benchdf['c++ chirpz2d32'] = benchdf['fft2'] / benchdf['c++ chirpz2d32']
benchdf['c++ chirpz2d64'] = benchdf['fft2'] / benchdf['c++ chirpz2d64']
In [4]:
a = benchdf.groupby(['fft N', 'N', 'M'], as_index=False).mean()
a
Out[4]:
fft N
N
M
c++ chirpz2d32
c++ chirpz2d64
df
fft2
iter
numba chirpz2d
0
512
64
32
15.193505
11.635531
0.012272
0.005465
10
0.833513
1
512
64
64
13.074166
10.110759
0.012272
0.005076
10
0.548155
2
512
64
128
3.577827
2.779840
0.012272
0.005511
10
0.328286
3
512
64
256
0.947658
0.565651
0.012272
0.006219
10
0.159684
4
512
128
32
3.913503
3.135731
0.012272
0.005909
10
0.421470
5
512
128
64
4.226866
3.448156
0.012272
0.006751
10
0.378387
6
512
128
128
3.154104
2.288698
0.012272
0.006805
10
0.260806
7
512
128
256
1.077656
0.610211
0.012272
0.006914
10
0.129814
8
512
256
32
1.266526
0.809883
0.012272
0.008723
10
0.226133
9
512
256
64
1.255633
0.771272
0.012272
0.008471
10
0.187333
10
512
256
128
1.224227
0.736975
0.012272
0.008526
10
0.148053
11
512
256
256
1.023808
0.653267
0.012272
0.008211
10
0.094235
12
512
512
32
0.259629
0.148630
0.012272
0.009029
10
0.073815
13
512
512
64
0.242140
0.141864
0.012272
0.008950
10
0.065980
14
512
512
128
0.244705
0.136869
0.012272
0.008764
10
0.055810
15
512
512
256
0.248659
0.146317
0.012272
0.008931
10
0.044410
16
1024
64
32
86.594138
65.588156
0.006136
0.031867
10
4.949149
17
1024
64
64
82.594530
61.492185
0.006136
0.032186
10
3.509616
18
1024
64
128
19.308037
14.620121
0.006136
0.032268
10
1.895342
19
1024
64
256
5.071509
2.872931
0.006136
0.031599
10
0.828232
20
1024
128
32
20.860874
17.725022
0.006136
0.033214
10
2.384087
21
1024
128
64
20.974795
16.363212
0.006136
0.032444
10
1.822458
22
1024
128
128
16.226368
8.631235
0.006136
0.042163
10
1.626353
23
1024
128
256
4.864475
2.699239
0.006136
0.036822
10
0.688489
24
1024
256
32
5.123609
3.601590
0.006136
0.036686
10
0.949257
25
1024
256
64
5.036561
3.293109
0.006136
0.036779
10
0.833956
26
1024
256
128
5.366974
3.032852
0.006136
0.040741
10
0.718272
27
1024
256
256
4.604822
2.788522
0.006136
0.041122
10
0.477032
28
1024
512
32
1.320583
0.747407
0.006136
0.045402
10
0.372130
29
1024
512
64
1.264102
0.740300
0.006136
0.044213
10
0.330538
...
...
...
...
...
...
...
...
...
...
34
2048
64
128
87.902741
69.701678
0.003068
0.145167
10
8.805855
35
2048
64
256
21.855601
12.480026
0.003068
0.141047
10
3.511399
36
2048
128
32
85.031767
72.241178
0.003068
0.145659
10
10.798625
37
2048
128
64
93.471315
74.177038
0.003068
0.153442
10
8.884636
38
2048
128
128
58.315635
21.558904
0.003068
0.173686
10
6.826441
39
2048
128
256
19.676420
10.252969
0.003068
0.163156
10
3.037973
40
2048
256
32
21.302917
12.445150
0.003068
0.159785
10
4.166000
41
2048
256
64
21.524195
12.115340
0.003068
0.156448
10
3.564289
42
2048
256
128
19.382089
9.712524
0.003068
0.185458
10
3.307936
43
2048
256
256
18.674566
9.821901
0.003068
0.195973
10
2.267869
44
2048
512
32
4.891196
2.676273
0.003068
0.168675
10
1.361701
45
2048
512
64
5.012199
2.736137
0.003068
0.166416
10
1.281275
46
2048
512
128
4.883491
2.591215
0.003068
0.192292
10
1.230599
47
2048
512
256
4.947498
2.598585
0.003068
0.186185
10
0.917417
48
4096
64
32
1904.186371
1279.959831
0.001534
0.742005
10
118.954155
49
4096
64
64
1793.884198
1203.365448
0.001534
0.739749
10
84.617936
50
4096
64
128
400.477225
349.249692
0.001534
0.736989
10
45.672791
51
4096
64
256
108.521955
68.314813
0.001534
0.747676
10
19.398434
52
4096
128
32
411.752530
377.839048
0.001534
0.748104
10
55.126083
53
4096
128
64
386.807378
367.162919
0.001534
0.746345
10
43.496354
54
4096
128
128
312.881338
223.717149
0.001534
0.747540
10
30.170698
55
4096
128
256
100.310729
59.121671
0.001534
0.750712
10
14.776692
56
4096
256
32
123.762641
70.464546
0.001534
0.779545
10
20.807241
57
4096
256
64
121.017521
70.493081
0.001534
0.765138
10
17.581689
58
4096
256
128
98.783443
55.803259
0.001534
0.768882
10
13.734073
59
4096
256
256
87.897700
53.594176
0.001534
0.774691
10
9.197360
60
4096
512
32
23.831520
13.105872
0.001534
0.833398
10
6.542430
61
4096
512
64
23.375811
12.748098
0.001534
0.805470
10
5.904791
62
4096
512
128
20.402147
11.592097
0.001534
0.817892
10
5.223441
63
4096
512
256
21.958498
11.950134
0.001534
0.809149
10
3.998038
64 rows × 9 columns
In [5]:
b = a[a.N == a.M]
b = b
del b['df']
del b['fft2']
del b['iter']
#c = b[['FFT points', , '']
c = b.rename(columns={"fft N" : "eq FFT points"})
c = c[['eq FFT points', 'N', 'M', 'numba chirpz2d', 'c++ chirpz2d32', 'c++ chirpz2d64']]
In [6]:
c
Out[6]:
eq FFT points
N
M
numba chirpz2d
c++ chirpz2d32
c++ chirpz2d64
1
512
64
64
0.548155
13.074166
10.110759
6
512
128
128
0.260806
3.154104
2.288698
11
512
256
256
0.094235
1.023808
0.653267
17
1024
64
64
3.509616
82.594530
61.492185
22
1024
128
128
1.626353
16.226368
8.631235
27
1024
256
256
0.477032
4.604822
2.788522
33
2048
64
64
15.754395
345.907622
255.567485
38
2048
128
128
6.826441
58.315635
21.558904
43
2048
256
256
2.267869
18.674566
9.821901
49
4096
64
64
84.617936
1793.884198
1203.365448
54
4096
128
128
30.170698
312.881338
223.717149
59
4096
256
256
9.197360
87.897700
53.594176
In [9]:
print tabulate.tabulate(c, headers='keys', showindex=False,tablefmt="pipe")
| eq FFT points | N | M | numba chirpz2d | c++ chirpz2d32 | c++ chirpz2d64 |
|----------------:|----:|----:|-----------------:|-----------------:|-----------------:|
| 512 | 64 | 64 | 0.548155 | 13.0742 | 10.1108 |
| 512 | 128 | 128 | 0.260806 | 3.1541 | 2.2887 |
| 512 | 256 | 256 | 0.0942346 | 1.02381 | 0.653267 |
| 1024 | 64 | 64 | 3.50962 | 82.5945 | 61.4922 |
| 1024 | 128 | 128 | 1.62635 | 16.2264 | 8.63124 |
| 1024 | 256 | 256 | 0.477032 | 4.60482 | 2.78852 |
| 2048 | 64 | 64 | 15.7544 | 345.908 | 255.567 |
| 2048 | 128 | 128 | 6.82644 | 58.3156 | 21.5589 |
| 2048 | 256 | 256 | 2.26787 | 18.6746 | 9.8219 |
| 4096 | 64 | 64 | 84.6179 | 1793.88 | 1203.37 |
| 4096 | 128 | 128 | 30.1707 | 312.881 | 223.717 |
| 4096 | 256 | 256 | 9.19736 | 87.8977 | 53.5942 |
Content source: ericmjonas/pychirpz
Similar notebooks: