Params:
- num_inputs=2
- num_input_rows=200
- num_input_cols=10
- num_prods=100
- num_ops=10
- num_runs=50

Running tests:
--> product: on_gpu=False, num_inputs=2, inputs_shape=(200, 10), inference=MARGINAL, log=False
--> product: on_gpu=True, num_inputs=2, inputs_shape=(200, 10), inference=MARGINAL, log=False
--> perm_products: on_gpu=False, num_inputs=2, inputs_shape=(200, 10), inference=MARGINAL, log=False
--> perm_products: on_gpu=True, num_inputs=2, inputs_shape=(200, 10), inference=MARGINAL, log=False
--> product: on_gpu=False, num_inputs=2, inputs_shape=(200, 10), inference=MARGINAL, log=True
--> product: on_gpu=True, num_inputs=2, inputs_shape=(200, 10), inference=MARGINAL, log=True
--> perm_products: on_gpu=False, num_inputs=2, inputs_shape=(200, 10), inference=MARGINAL, log=True
--> perm_products: on_gpu=True, num_inputs=2, inputs_shape=(200, 10), inference=MARGINAL, log=True
--> product: on_gpu=False, num_inputs=2, inputs_shape=(200, 10), inference=MPE, log=False
--> product: on_gpu=True, num_inputs=2, inputs_shape=(200, 10), inference=MPE, log=False
--> perm_products: on_gpu=False, num_inputs=2, inputs_shape=(200, 10), inference=MPE, log=False
--> perm_products: on_gpu=True, num_inputs=2, inputs_shape=(200, 10), inference=MPE, log=False
--> product: on_gpu=False, num_inputs=2, inputs_shape=(200, 10), inference=MPE, log=True
--> product: on_gpu=True, num_inputs=2, inputs_shape=(200, 10), inference=MPE, log=True
--> perm_products: on_gpu=False, num_inputs=2, inputs_shape=(200, 10), inference=MPE, log=True
--> perm_products: on_gpu=True, num_inputs=2, inputs_shape=(200, 10), inference=MPE, log=True

-----------------------
InferenceType: MARGINAL
-----------------------
CPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8190     3341.19           45.33           1.11       True
  perm_products   260      220.93            3.10           1.47       True
GPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8190     3634.78          248.12           3.72       True
  perm_products   260      163.82            3.07           0.94       True

-----------------------
InferenceType: MARGINAL-LOG
-----------------------
CPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8340     3701.14           36.86           1.98       True
  perm_products   410      241.11            5.25           2.37       True
GPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8340     3587.26           43.79           4.39       True
  perm_products   410      450.42            3.83           0.92       True

-----------------------
InferenceType: MPE
-----------------------
CPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8190     3337.96           36.10           1.33       True
  perm_products   260      217.60            4.24           1.59       True
GPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8190     3455.20           42.11           3.88       True
  perm_products   260      339.32            3.62           1.10       True

-----------------------
InferenceType: MPE-LOG
-----------------------
CPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8220     3308.08           35.90           1.30       True
  perm_products   290      165.25            4.33           2.40       True
GPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8220     3582.05           80.66           3.54       True
  perm_products   290      251.37            3.72           1.07       True
