code: def is_broadcastable(shape1: torch.Size, shape2: torch.Size) -> bool:
      """
      Check if two shapes are broadcastable to each other.
      """
      for s1, s2 in zip(shape1[::-1], shape2[::-1]):
          if s1 == 1 or s2 == 1 or s1 == s2:
              pass
          else:
              return False
      return True
  
file_path: ColossalAI/colossalai/auto_parallel/tensor_shard/utils/broadcast.py
imports: from enum import Enum, auto
  from typing import List
  import torch
  from torch.fx.node import Node
  from colossalai.auto_parallel.tensor_shard.sharding_strategy import CommAction, CommType, OperationData, OperationDataType
  from colossalai.tensor.comm_spec import CollectiveCommPattern, CommSpec
  from colossalai.tensor.sharding_spec import ShardingSpec
label_desc: Use image node_id 1 for calling a global function with example usage: is_broadcastable(shape1, shape2) and returns: True, False