text: Title: How to implement a custom operator that support multiple compute device (CPU, CUDA)?
  Body: # Ask a Question
  I tried the following implementation, but had no effect.
  
  CUDA implementation:
  ```
  struct CustomOPGpu : Ort::CustomOpBase<CustomOPGpu , CustomKernel> {
  		const char* GetName() const { return "CustomOP"; };
  const char* GetExecutionProviderType() const { return "CUDAExecutionProvider"; };
  ...
  }
  
  ```
  CPU implementation:
  ```
  struct CustomOPCpu : Ort::CustomOpBase<CustomOPCpu , CustomKernel> {
  		const char* GetName() const { return "CustomOP"; };
  const char* GetExecutionProviderType() const { return "CPUExecutionProvider"; };
  ...
  }
  ```
  
  The doc (https://onnxruntime.ai/docs/reference/operators/add-custom-op.html) doesn't have any sample codes.
  
  ### Question
  <!-- Explain your question here. -->
  
  ### Further information
  - Relevant Area: <!--e.g., model usage, backend, best practices, converters, shape_inference, version_converter, training, test, operators, IR, ONNX Hub, data preprocessing, CI pipelines. -->
  
  - Is this issue related to a specific model?
  **Model name**: <!-- *e.g. mnist* -->
  **Model opset**: <!-- *e.g. 17* -->
  
  ### Notes
  <!-- Any additional information, code snippets. -->
  