class_docstr: Arm(R) Ethos(TM)-U NPU config class
class_docstr_tok: ["Arm","(","R",")","Ethos","(","TM",")","-U","NPU","config","class"]
code: def __init__(self, device: str, disable_block_bulling: bool = False):
      self._device = device
      self._subkernel_limits = (8, 8)
      self._output_cycles = (1, 2, 3, 4, 6)
      self._split_depth = 16
      self._max_block_shape = _Shape([1, 32, 64, 128])
      self._bank_size_bytes = 1024
      self._disable_block_culling = disable_block_bulling
      if self._device == "ethos-u55-256":
          self._micro_block = _Shape([1, 2, 2, 8])
          self._input_micro_block = _Shape([1, 2, 2, 8])
          self._delay_cycles = (2, 2)
          self._activation_cycles = (0.25, 1)
          self._output_units = 8
  
          self._total_banks = 48
          self._reserved_banks = 4
          self._input_granularity = {1: 8, 2: 8, 4: 16}
          self._accumulator_granularity = {4: 16, 5: 20}
          self._lut_reserved = True
      elif self._device == "ethos-u55-128":
          self._micro_block = _Shape([1, 1, 2, 8])
          self._input_micro_block = _Shape([1, 1, 2, 8])
          self._delay_cycles = (2, 3)
          self._activation_cycles = (0.5, 1)
          self._output_units = 4
  
          self._total_banks = 24
          self._reserved_banks = 4
          self._input_granularity = {1: 4, 2: 4, 4: 8}
          self._accumulator_granularity = {4: 8, 5: 12}
          self._lut_reserved = True
      elif self._device == "ethos-u55-64":
          self._micro_block = _Shape([1, 1, 1, 8])
          self._input_micro_block = _Shape([1, 1, 1, 8])
          self._delay_cycles = (2, 3)
          self._activation_cycles = (1, 1)
          self._output_units = 2
  
          self._total_banks = 16
          self._reserved_banks = 2
          self._input_granularity = {1: 2, 2: 2, 4: 4}
          self._accumulator_granularity = {4: 4, 5: 8}
          self._lut_reserved = False
      elif self._device == "ethos-u55-32":
          self._micro_block = _Shape([1, 1, 1, 4])
          self._input_micro_block = _Shape([1, 1, 1, 8])
          self._delay_cycles = (3, 7)
          self._activation_cycles = (1, 2)
          self._output_units = 1
  
          self._total_banks = 16
          self._reserved_banks = 2
          self._input_granularity = {1: 2, 2: 2, 4: 4}
          self._accumulator_granularity = {4: 4, 5: 4}
          self._lut_reserved = False
  
imports: from typing import Tuple, List, Dict, Optional
  from functools import reduce
  import math
  import numpy
  import tvm
  from .None import BlockConfig
  from .None import StripeConfig
  from .None import Propagator
label_desc: Use image node_id 1 to create a new EthosuDeviceConfig object  with example: obj = EthosuDeviceConfig(device, disable_block_bulling)