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`).