Params:
- num_a_rows=200
- num_a_cols=30
- num_b_rows=5
- num_ops=200
- num_runs=10
- dtype=<dtype: 'float32'>

Running tests:
--> reduction: on_gpu=False, a_shape=(200, 30), b_shape=(5, 30)
--> reduction: on_gpu=True, a_shape=(200, 30), b_shape=(5, 30)
--> matmul: on_gpu=False, a_shape=(200, 30), b_shape=(5, 30)
--> matmul: on_gpu=True, a_shape=(200, 30), b_shape=(5, 30)
--> reduction_by_matmul: on_gpu=False, a_shape=(200, 30), b_shape=(5, 30)
--> reduction_by_matmul: on_gpu=True, a_shape=(200, 30), b_shape=(5, 30)
--> reduction: on_gpu=False, a_shape=(200, 30), b_shape=(200, 5, 30)
--> reduction: on_gpu=True, a_shape=(200, 30), b_shape=(200, 5, 30)
--> matmul: on_gpu=False, a_shape=(200, 30), b_shape=(200, 5, 30)
--> matmul: on_gpu=True, a_shape=(200, 30), b_shape=(200, 5, 30)
--> reduction_by_matmul: on_gpu=False, a_shape=(200, 30), b_shape=(200, 5, 30)
--> reduction_by_matmul: on_gpu=True, a_shape=(200, 30), b_shape=(200, 5, 30)

-----------------------
case1_2d (simulate multiplication with weights)
-----------------------
CPU          op:  size  setup_time  first_run_time  rest_run_time    correct
         matmul:   801      235.67           37.44           1.53       True
      reduction:  1601      552.13          120.20          40.38       True
reduction_by_matmul:  3601     1269.94          253.55          52.15       True
GPU          op:  size  setup_time  first_run_time  rest_run_time    correct
         matmul:   801      239.29          155.14           1.92       True
      reduction:  1601      535.43          192.57           6.39       True
reduction_by_matmul:  3601     1450.13          321.99          82.36       True

-----------------------
case2_3d (simulate multiplication with IVs)
-----------------------
CPU          op:  size  setup_time  first_run_time  rest_run_time    correct
         matmul:  1401      465.59           71.84           5.43       True
      reduction:  1601      504.72          120.32          40.61       True
reduction_by_matmul:  3601     1247.61          247.65          52.07       True
GPU          op:  size  setup_time  first_run_time  rest_run_time    correct
         matmul:  1401      470.04          167.06          82.10       True
      reduction:  1601      569.56           93.82           5.31       True
reduction_by_matmul:  3601     1223.35          292.68          79.11       True
