onnxruntime
a8f34cc3 - TensorScatter-24 (CPU) (#27389)

Commit
1 day ago
TensorScatter-24 (CPU) (#27389) This pull request introduces a new ONNX operator kernel, `TensorScatter`, to the CPU execution provider, along with its implementation and comprehensive unit tests. The new operator supports both linear and circular scatter modes, handles various tensor shapes and types, and allows for optional write indices. The changes are grouped below by theme. Operator kernel registration: * Added registration for the `TensorScatter` operator for opset 24 in the CPU execution provider, ensuring it is available for inference and training. [[1]](diffhunk://#diff-054ffdd679ada14ebb4b1db27a60b2881e2db48f9dc3f0b948c784cdcdaf4908R1389) [[2]](diffhunk://#diff-054ffdd679ada14ebb4b1db27a60b2881e2db48f9dc3f0b948c784cdcdaf4908R3488) Operator implementation: * Introduced the `TensorScatter` kernel implementation in `tensorscatter.cc`, supporting both linear and circular modes, handling axis normalization, shape validation, and efficient memory copying for scatter operations. * Defined the `TensorScatter` class interface in `tensorscatter.h`, including constructor and compute method, with attributes for axis and mode. Testing: * Added extensive unit tests for the `TensorScatter` operator in `tensorscatter_op_test.cc`, covering linear and circular modes, explicit axis handling, float16 support, and scenarios with and without write indices.
Author
Parents
Loading