code: def _try_broadcast_param_size(
      q_size, k_size, v_size, param_name, debug=False
  ) -> bool:
      max_size = max(q_size, k_size, v_size)
      if (
          (q_size != max_size and q_size != 1)
          or (k_size != max_size and k_size != 1)
          or (v_size != max_size and v_size != 1)
      ):
          if debug:
              log.warning(
                  "Both fused kernels require query, key and value to have broadcastable %s, "
                  "got Query %s %d, Key %s %d, Value %s %d instead.",
                  param_name,
                  param_name,
                  q_size,
                  param_name,
                  k_size,
                  param_name,
                  v_size,
              )
          return False
      return True
  
imports: import logging
  import math
  from typing import Optional, Tuple
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.backends.cuda import can_use_efficient_attention, can_use_flash_attention, flash_sdp_enabled, math_sdp_enabled, mem_efficient_sdp_enabled, SDPAParams, SDPBackend
  from .nested_tensor import buffer_from_jagged, NestedTensor, ViewNestedFromBuffer
label_desc: Use image node_id 5 for calling a global function with example usage: _try_broadcast_param_size(q_size, k_size, v_size, param_name, debug) and returns: True, False