ElementwiseOps are UnaryOps, BinaryOps, and TernaryOps. They operate on 1-3 tensors and run elementwise. example: SQRT, LOG2, ADD, MUL, WHERE, etc... ReduceOps operate on one tensor and return a smaller tensor. example: SUM, MAX MovementOps are virtual ops that operate on one tensor and move the data around Copy-free with ShapeTracker. example: RESHAPE, PERMUTE, EXPAND, etc... We are now ...