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  8190     3260.20           39.70           1.17       True
       products  4230     1699.51           16.98           1.35       True
  perm_products   250      163.77            2.05           0.62       True
GPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8190     3309.42          218.64           4.47       True
       products  4230     1677.43           17.78           1.14       True
  perm_products   250      108.60            2.08           0.52       True

-----------------------
InferenceType: MARGINAL-LOG
-----------------------
CPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8340     3448.89           37.35           1.93       True
       products  4380     1877.61           19.06           2.37       True
  perm_products   400      174.70            3.38           1.82       True
GPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8340     3516.08           43.92           4.26       True
       products  4380     1750.11           19.28           1.21       True
  perm_products   400      170.10            3.21           0.77       True

-----------------------
InferenceType: MPE
-----------------------
CPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8190     3444.59           37.50           1.31       True
       products  4230     1634.41           17.74           1.61       True
  perm_products   250      144.48            2.15           0.84       True
GPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8190     3435.88           40.66           3.93       True
       products  4230     1682.98           17.57           1.04       True
  perm_products   250      179.81            2.47           0.57       True

-----------------------
InferenceType: MPE-LOG
-----------------------
CPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8220     3418.68           36.44           1.39       True
       products  4260     1812.90           18.06           1.56       True
  perm_products   280      178.53            1.94           0.79       True
GPU          op  size  setup_time  first_run_time  rest_run_time    correct
        product  8220     3326.57           40.55           4.24       True
       products  4260     1736.77           17.90           1.08       True
  perm_products   280      113.74            1.96           0.62       True
