@qcolombet
Looking at the FP16 implementation of convolution.
sum += float(
filterW.at({d, fx, fy, fd}) *
inW.at({n, (size_t)ox, (size_t)oy, g * inCperG + fd}));
The filterW and inW are FP16.  sum is Float.
The * defined in glow/Support/Float16.h returns FP16.
Shouldnt we need to define a version of * that returns Float instead when multiplying 2 FP16 quantities, as we are accumulating in FP32?