|
6 | 6 | np = pyimport("numpy") |
7 | 7 | nprand = np["random"]["rand"] |
8 | 8 | nprand_pyo(sz...) = pycall(nprand, PyObject, sz...) |
9 | | - nprand2d_wrap = PyFuncWrap(nprand, (Int, Int)) |
10 | | - |
11 | | - arr_size = (2,2) |
12 | | - |
13 | | - results["nprand_pyo"] = @benchmark $nprand_pyo($arr_size...) |
14 | | - println("nprand_pyo:\n"); display(results["nprand_pyo"]) |
15 | | - println("--------------------------------------------------") |
16 | | - |
17 | | - results["nprand2d_wrap"] = @benchmark $nprand2d_wrap($arr_size...) |
18 | | - println("nprand2d_wrap:\n"); display(results["nprand2d_wrap"]) |
19 | | - println("--------------------------------------------------") |
20 | | - |
21 | | - # args already set by nprand2d_wrap calls above |
22 | | - results["nprand2d_wrap_noargs"] = @benchmark $nprand2d_wrap() |
23 | | - println("nprand2d_wrap_noargs:\n"); display(results["nprand2d_wrap_noargs"]) |
24 | | - println("--------------------------------------------------") |
25 | | - |
26 | | - arr_size = ntuple(i->2, 15) |
27 | | - |
28 | | - results["nprand_pyo2"] = @benchmark $nprand_pyo($arr_size...) |
29 | | - println("nprand_pyo2:\n"); display(results["nprand_pyo2"]) |
30 | | - println("--------------------------------------------------") |
31 | | - |
32 | | - results["nprand2d_wrap2"] = @benchmark $nprand2d_wrap($arr_size...) |
33 | | - println("nprand2d_wrap2:\n"); display(results["nprand2d_wrap2"]) |
34 | | - println("--------------------------------------------------") |
35 | | - |
36 | | - # args already set by nprand2d_wrap calls above |
37 | | - results["nprand2d_wrap_noargs2"] = @benchmark $nprand2d_wrap() |
38 | | - println("nprand2d_wrap_noargs2:\n"); display(results["nprand2d_wrap_noargs2"]) |
39 | | - println("--------------------------------------------------") |
| 9 | + ret = PyNULL() |
| 10 | + args_lens = (0,3,7,12,17) |
| 11 | + arr_sizes = (ntuple(i->1, len) for len in args_lens) |
| 12 | + nprand_wraps = [PyFuncWrap(nprand, map(typeof, arr_size)) for arr_size in arr_sizes] |
| 13 | + @show typeof(nprand_wraps) |
| 14 | + for (i, arr_size) in enumerate(arr_sizes) |
| 15 | + nprand_wrap = nprand_wraps[i] |
| 16 | + arr_size_str = args_lens[i] < 5 ? "$arr_size" : "$(args_lens[i])*(1,1,...)" |
| 17 | + results["nprand_pyo $arr_size_str"] = @benchmark $nprand_pyo($arr_size...) |
| 18 | + println("nprand_pyo $arr_size_str:\n"); display(results["nprand_pyo $arr_size_str"]) |
| 19 | + println("--------------------------------------------------") |
| 20 | + |
| 21 | + results["nprand_wrap $arr_size_str"] = @benchmark $nprand_wrap($arr_size...) |
| 22 | + println("nprand_wrap $arr_size_str:\n"); display(results["nprand_wrap $arr_size_str"]) |
| 23 | + println("--------------------------------------------------") |
| 24 | + |
| 25 | + # args already set by nprand_wrap calls above |
| 26 | + results["nprand_wrap_noargs $arr_size_str"] = @benchmark $nprand_wrap() |
| 27 | + println("nprand_wrap_noargs $arr_size_str:\n"); display(results["nprand_wrap_noargs $arr_size_str"]) |
| 28 | + println("--------------------------------------------------") |
| 29 | + end |
40 | 30 | end |
41 | 31 |
|
42 | 32 | println("") |
43 | 33 | println("Mean times") |
44 | 34 | println("----------") |
45 | | -foreach((r)->println(rpad(r[1],23), ": ", mean(r[2])), results) |
| 35 | +foreach((r)->println(rpad(r[1],33), ": ", mean(r[2])), results) |
0 commit comments