~200ms training (and ~85ms no-update evaluation) on arm.  before i fix math errors, that is ^^.