code: def conv2d_strategy_rocm(attrs, inputs, out_type, target):
      """conv2d rocm strategy"""
      groups = attrs.groups
      layout = attrs.data_layout
      padding = attrs.get_int_tuple("padding")
  
      strategy = conv2d_strategy_cuda(attrs, inputs, out_type, target)
  
      # add miopen implementation
      if (
          "miopen" in target.libs
          and groups == 1
          and layout == "NCHW"
          and padding[0] == padding[2]
          and padding[1] == padding[3]
      ):
          strategy.add_implementation(
              wrap_compute_conv2d(
                  topi.rocm.conv2d_nchw_miopen, need_data_layout=True
              ),
              wrap_topi_schedule(topi.rocm.schedule_conv2d_nchw_miopen),
              name="conv2d_nchw_miopen.rocm",
              plevel=50,
          )
  
      return strategy
  
file_path: tvm/python/tvm/relay/op/strategy/rocm.py
imports: from tvm import topi
  from tvm.te import SpecializedCondition
  from tvm.contrib.thrust import can_use_rocthrust
  from tvm.contrib import miopen
  from .generic import *
  from ..None import op
  from .cuda import batch_matmul_strategy_cuda, conv2d_strategy_cuda, dense_strategy_cuda
label_desc: Use image node_id 1 for calling a global function with example usage: conv2d_strategy_rocm(attrs, inputs, out_type, target) and returns: strategy