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
--> products: on_gpu=False, num_inputs=2, inputs_shape=(200, 10), inference=MARGINAL, log=False
--> 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
--> products: on_gpu=False, num_inputs=2, inputs_shape=(200, 10), inference=MARGINAL, log=True
--> 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
--> products: on_gpu=False, num_inputs=2, inputs_shape=(200, 10), inference=MPE, log=False
--> 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
--> products: on_gpu=False, num_inputs=2, inputs_shape=(200, 10), inference=MPE, log=True
--> 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 12370    13628.13          114.36           2.78       True
       products  8390     7498.91           80.83           3.00       True
  perm_products   430      297.74            6.00           1.57       True
GPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product 12370    11411.04          415.45           3.95       True
       products  8390     7481.11           80.03           1.92       True
  perm_products   430      299.09            5.86           0.71       True

-----------------------
InferenceType: MARGINAL-LOG
-----------------------
CPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product 12520    10984.66          121.38           2.97       True
       products  8540     7581.41           82.97           2.85       True
  perm_products   580      383.47            5.99           1.62       True
GPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product 12520    11442.52          124.35           3.45       True
       products  8540     7362.10           83.17           2.19       True
  perm_products   580      386.87            7.63           0.76       True

-----------------------
InferenceType: MPE
-----------------------
CPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product 12370    11472.51          123.04           2.89       True
       products  8390     7458.51           85.58           3.16       True
  perm_products   430      311.78            6.53           1.61       True
GPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product 12370    11365.89          122.26           4.06       True
       products  8390     7346.19           85.08           2.11       True
  perm_products   430      292.66            5.43           0.69       True

-----------------------
InferenceType: MPE-LOG
-----------------------
CPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product 12400    11164.71          117.52           2.83       True
       products  8420     7432.01           79.70           2.86       True
  perm_products   460      311.63            5.19           1.67       True
GPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product 12400    10987.53          119.52           3.54       True
       products  8420     7234.87           85.19           1.99       True
  perm_products   460      314.85            5.80           0.70       True
