aboutsummaryrefslogtreecommitdiff
path: root/ethosu/vela/architecture_features.py
diff options
context:
space:
mode:
Diffstat (limited to 'ethosu/vela/architecture_features.py')
-rw-r--r--ethosu/vela/architecture_features.py40
1 files changed, 20 insertions, 20 deletions
diff --git a/ethosu/vela/architecture_features.py b/ethosu/vela/architecture_features.py
index 1eae79a2..9ca4304c 100644
--- a/ethosu/vela/architecture_features.py
+++ b/ethosu/vela/architecture_features.py
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# Description:
-# Holds a container for Ethos-U55/System architecture parameters.
+# Holds a container for Ethos-U and System architecture parameters.
import enum
from collections import namedtuple
from configparser import ConfigParser
@@ -109,7 +109,7 @@ class SHRAMBlockConfig:
self.banks = banks
-# Area indices must match Ethos-U55 SHRAM layout spec
+# Area indices must match Ethos-U SHRAM layout spec
class SharedBufferArea(enum.IntEnum):
OFM = 0
Weights = 1
@@ -123,8 +123,8 @@ class Accelerator(enum.Enum):
Ethos_U55_64 = "ethos-u55-64"
Ethos_U55_128 = "ethos-u55-128"
Ethos_U55_256 = "ethos-u55-256"
- Yoda_256 = "yoda-256"
- Yoda_512 = "yoda-512"
+ Ethos_U65_256 = "ethos-u65-256"
+ Ethos_U65_512 = "ethos-u65-512"
@classmethod
def member_list(cls):
@@ -132,13 +132,13 @@ class Accelerator(enum.Enum):
class ArchitectureFeatures:
- """This class is a container for various parameters of the Ethos-U55 core
+ """This class is a container for various parameters of the Ethos-U core
and system configuration that can be tuned, either by command line
- parameters or by the Ethos-U55 architects. The class is often passed
+ parameters or by the Ethos-U architects. The class is often passed
around to passes that need to do architecture-dependent actions.
Note the difference between ArchitectureFeatures and CompilerOptions
- - ArchitectureFeatures is for changing the Ethos-U55 and system architecture
+ - ArchitectureFeatures is for changing the Ethos-U and system architecture
- CompilerOptions is for changing the behaviour of the compiler
"""
@@ -146,10 +146,10 @@ class ArchitectureFeatures:
"ArchitectureConfig", "macs cores ofm_ublock ifm_ublock shram_banks shram_granules elem_units"
)
accelerator_configs = {
- Accelerator.Yoda_512: ArchitectureConfig(
+ Accelerator.Ethos_U65_512: ArchitectureConfig(
256, 2, Block(2, 2, 8), Block(2, 2, 8), 48, [8, 8, 8, 8, 16, 8, 16, 20], 8
),
- Accelerator.Yoda_256: ArchitectureConfig(
+ Accelerator.Ethos_U65_256: ArchitectureConfig(
256, 1, Block(2, 2, 8), Block(2, 2, 8), 48, [8, 8, 8, 8, 16, 8, 16, 20], 8
),
Accelerator.Ethos_U55_256: ArchitectureConfig(
@@ -189,9 +189,9 @@ class ArchitectureFeatures:
self.config = accel_config
self.system_config = system_config
- self.is_yoda_system = self.accelerator_config in (Accelerator.Yoda_256, Accelerator.Yoda_512)
+ self.is_ethos_u65_system = self.accelerator_config in (Accelerator.Ethos_U65_256, Accelerator.Ethos_U65_512)
- self.max_outstanding_dma = 2 if self.is_yoda_system else 1
+ self.max_outstanding_dma = 2 if self.is_ethos_u65_system else 1
self.max_outstanding_kernels = 3
self.ncores = accel_config.cores
@@ -224,7 +224,7 @@ class ArchitectureFeatures:
self.memory_port_widths = np.zeros(MemArea.Size)
# Get system configuration
- self.__read_sys_config(self.is_yoda_system)
+ self.__read_sys_config(self.is_ethos_u65_system)
# apply the global memory clock scales to the individual ones from the system config
for mem in MemArea.all():
@@ -303,7 +303,7 @@ class ArchitectureFeatures:
self.cycles_weight = 40
self.max_sram_used_weight = 1000
- if self.is_yoda_system and (self.fast_storage_mem_area != self.feature_map_storage_mem_area):
+ if self.is_ethos_u65_system and (self.fast_storage_mem_area != self.feature_map_storage_mem_area):
self.max_sram_used_weight = 0
# Shared Buffer Block allocations
@@ -383,11 +383,11 @@ class ArchitectureFeatures:
elif accel_config == Accelerator.Ethos_U55_128:
self.output_cycles_per_elem = (0.75, 1.25, 0.75, 0.75, 1.0, 1.5, 0.25, 0.5)
self.activation_cycles_per_elem = (1.0, 0.5, 0.0)
- elif accel_config in (Accelerator.Ethos_U55_256, Accelerator.Yoda_256):
+ elif accel_config in (Accelerator.Ethos_U55_256, Accelerator.Ethos_U65_256):
self.output_cycles_per_elem = (0.625, 1.125, 0.5, 0.375, 0.5, 0.75, 0.125, 0.25)
self.activation_cycles_per_elem = (1.0, 0.25, 0.0)
else:
- assert accel_config == Accelerator.Yoda_512
+ assert accel_config == Accelerator.Ethos_U65_512
self.output_cycles_per_elem = (0.3125, 0.5625, 0.25, 0.1875, 0.25, 0.375, 0.0625, 0.125)
self.activation_cycles_per_elem = (0.5, 0.125, 0.0)
@@ -607,7 +607,7 @@ class ArchitectureFeatures:
print("Warning: No configured CPU performance estimate for", op.type)
return 0
- def __read_sys_config(self, is_yoda_system):
+ def __read_sys_config(self, is_ethos_u65_system):
"""
Gets the system configuration with the given name from the vela configuration file
Example configuration snippet:
@@ -646,20 +646,20 @@ class ArchitectureFeatures:
self.feature_map_storage_mem_area = MemArea[self.__sys_config("feature_map_storage_mem_area", "Sram")]
self.permanent_storage_mem_area = MemArea[self.__sys_config("permanent_storage_mem_area", "OffChipFlash")]
- if is_yoda_system:
+ if is_ethos_u65_system:
if self.permanent_storage_mem_area is not MemArea.Dram:
raise Exception(
"Invalid permanent_storage_mem_area = "
+ str(self.permanent_storage_mem_area)
- + " (must be 'DRAM' for Yoda)."
+ + " (must be 'DRAM' for Ethos-U65)."
)
else:
if self.permanent_storage_mem_area not in set((MemArea.OnChipFlash, MemArea.OffChipFlash)):
raise Exception(
"Invalid permanent_storage_mem_area = "
+ str(self.permanent_storage_mem_area)
- + " (must be 'OnChipFlash' or 'OffChipFlash' for ethosu-55)."
- " To store the weights and other constant data in SRAM on ethosu-55 select 'OnChipFlash'"
+ + " (must be 'OnChipFlash' or 'OffChipFlash' for Ethos-U55)."
+ " To store the weights and other constant data in SRAM on Ethos-U55 select 'OnChipFlash'"
)
self.sram_size = 1024 * int(self.__sys_config("sram_size_kb", "204800"))