onnxruntime
39bdea44 - Support TensorScatter (24) - CUDA (#27446)

Commit
168 days ago
Support TensorScatter (24) - CUDA (#27446) This pull request adds a new CUDA kernel implementation for the `TensorScatter` operator in ONNX Runtime, targeting opset 24. The implementation includes kernel registration, device-side logic, and comprehensive input validation, supporting both "linear" and "circular" scatter modes. The operator is also documented and tested, including negative and out-of-bounds input scenarios. **New Operator Implementation:** * Introduced the `TensorScatter` CUDA kernel (`onnxruntime/core/providers/cuda/llm/tensorscatter.cc`, `tensorscatter.h`, `tensorscatter_impl.cu`, `tensorscatter_impl.h`), supporting both "linear" and "circular" modes, with detailed input validation and device-side scatter logic. [[1]](diffhunk://#diff-d69233ff3987fe3093132a31710b6b64cc0a32140e2a5a415a2f1f0907bd22d2R1-R145) [[2]](diffhunk://#diff-859f7afa3080d71f72115d2509ae9074aebea5a55edb4be9534f24c4a07565edR1-R22) [[3]](diffhunk://#diff-1694a04b8ba9963cc06d651ec6a3be8aa9cb2bcb73c2438dc251ca8cdcb2eb41R1-R118) [[4]](diffhunk://#diff-a4d94e265557cafcaf98dfeac2977aaee557fdad62a2a40cec938ea20e98e8f4R1-R25) **Kernel Registration and Integration:** * Registered the `TensorScatter` kernel for CUDA in opset 24 within the execution provider and kernel registry (`onnxruntime/core/providers/cuda/cuda_execution_provider.cc`). [[1]](diffhunk://#diff-57ba769b54dce57acd89df47140ede5f29ea670d61176096076701912d573285R1632-R1634) [[2]](diffhunk://#diff-57ba769b54dce57acd89df47140ede5f29ea670d61176096076701912d573285R2709-R2711) **Documentation:** * Added the `TensorScatter` operator to the operator kernel documentation, specifying supported types and attributes (`docs/OperatorKernels.md`). **Testing and Validation:** * Added unit tests for `TensorScatter`, including negative tests for invalid `write_indices` and out-of-bounds conditions in both "linear" and "circular" modes (`onnxruntime/test/providers/cpu/llm/tensorscatter_op_test.cc`).
Author
Parents
Loading