You can improve performance and reduce memory usage by quantizing your graph program.
FP16 Quantization
Apply simple 16-bit floating point precision using migraphx::quantize_fp16(prog).
INT8 Quantization
INT8 requires a calibration step to map floating point ranges to integer values. You must provide calibration data for the input parameters using migraphx::quantize_int8_options and migraphx::program_parameters.
// FP16
migraphx::quantize_fp16(prog);
// INT8
std::vector<float> calib_dig; // ... load data
migraphx::quantize_int8_options quant_opts;
migraphx::program_parameters quant_params;
auto param_shapes = prog.get_parameter_shapes();
for(auto&& name : param_shapes.names())
{
quant_params.add(name, migraphx::argument(param_shapes[name], calib_dig.data()));
}
quant_opts.add_calibration_data(quant_params);
migraphx::quantize_int8(prog, targ, quant_opts);