code: def softmax_strategy_cuda(attrs, inputs, out_type, target):
      """softmax cuda strategy"""
      strategy = _op.OpStrategy()
      strategy.add_implementation(
          wrap_compute_softmax(topi.nn.softmax),
          wrap_topi_schedule(topi.cuda.schedule_softmax),
          name="softmax.cuda",
      )
      if target.kind.name == "cuda" and "cudnn" in target.libs:
          strategy.add_implementation(
              wrap_compute_softmax(topi.cuda.softmax_cudnn),
              wrap_topi_schedule(topi.cuda.schedule_softmax_cudnn),
              name="softmax.cudnn",
              plevel=15,
          )
      return strategy
  
imports: from tvm import topi
  from tvm.auto_scheduler import is_auto_scheduler_enabled
  from tvm.contrib import nvcc
  from tvm.contrib.thrust import can_use_thrust
  from tvm.meta_schedule import is_meta_schedule_enabled
  from tvm.te import SpecializedCondition
  from ....target import Target
  from ....tir import IntImm
  from ..None import op
  from .generic import *
label_desc: Use image node_id 7 for calling a global function with example usage: softmax_strategy_cuda(attrs, inputs, out_type, target) and returns: strategy