Incompatibilities with MPS device/accelerator
On Apple M-chips (M1 and M2 for the time being), it should be possible to use the mps
backend to perform network calculations.
The problem is that some of these backends (including MPS), does not really support double-precision floats. To make efficient use of modern backends, we'd need to ensure calculations are done using only native float types instead of insisting on transforming numbers to double
(as with tensor.double()
).
In ptbench.engine.callbacks
this also happens by forcing the use of numpy.average()
in some places, which implicitly forces the tensors to be converted to double
. The rationale should be "we work with the precision that is yielded by the model", nothing more, nothing less. To do so, we use torch constructions to calculate averages and standard-deviations if need-be.
-
Make the code work -
Implement monitoring for GPU utilisation