aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiqing Zhong <diqing.zhong@arm.com>2021-02-01 19:07:04 +0100
committerpatrik.gustavsson <patrik.gustavsson@arm.com>2021-02-02 13:27:25 +0000
commit66d7ec060a9c97f2095cb65f7242fa044a505810 (patch)
treea7bd120d11252dfb531b8ee4aa358f6863782587
parentf2afd7f8a893487f5e1ecb96e3406a5b04f258d2 (diff)
downloadethos-u-vela-66d7ec060a9c97f2095cb65f7242fa044a505810.tar.gz
MLBEDSW-3927: Fix wrong compression ratio
Change-Id: I06feeb98fb48badf06097f377a9504e6f4eeae91 Signed-off-by: Diqing Zhong <diqing.zhong@arm.com>
-rw-r--r--ethosu/vela/tensor_allocation.py15
-rw-r--r--ethosu/vela/weight_compressor.py3
2 files changed, 7 insertions, 11 deletions
diff --git a/ethosu/vela/tensor_allocation.py b/ethosu/vela/tensor_allocation.py
index 1e5eb85..0a7da5d 100644
--- a/ethosu/vela/tensor_allocation.py
+++ b/ethosu/vela/tensor_allocation.py
@@ -202,12 +202,6 @@ def allocate_tensors(
else:
sg.memory_used_per_type[mem_type] += total_sz
- if mem_area == arch.fast_storage_mem_area:
- for tens in lrs.ranges:
- if tens.purpose == TensorPurpose.Weights:
- nng.total_compressed_weights += tens.storage_size()
- nng.total_original_weights += tens.elements() * tens.element_size()
-
print_allocation(lrs, mem_area, mem_type_set, sg, verbose_allocation)
if mem_area == MemArea.Sram:
@@ -217,10 +211,9 @@ def allocate_tensors(
if sg == nng.get_root_subgraph():
nng.memory_used = sg.memory_used
- if mem_area == arch.fast_storage_mem_area:
- try:
- nng.weights_compression_ratio = nng.total_compressed_weights / nng.total_original_weights
- except ZeroDivisionError:
- nng.weights_compression_ratio = 0.0
+ try:
+ nng.weights_compression_ratio = nng.total_compressed_weights / nng.total_original_weights
+ except ZeroDivisionError:
+ nng.weights_compression_ratio = 0.0
return True
diff --git a/ethosu/vela/weight_compressor.py b/ethosu/vela/weight_compressor.py
index 188b16a..60ca846 100644
--- a/ethosu/vela/weight_compressor.py
+++ b/ethosu/vela/weight_compressor.py
@@ -521,6 +521,9 @@ def update_pass_weight_and_scale_tensors(nng, arch):
compress_weights(
arch, nng, tens, op.type.npu_block_type, ps.block_config[-1], ofm_depth_step, op.get_dilation_h_w()
)
+ nng.total_compressed_weights += tens.weight_compressed_offsets[-1]
+ nng.total_original_weights += tens.elements() * tens.element_size()
+
# Update source tensor
if needs_dma:
src_tens = tens.get_dma_src_tensor()