diff options
author | Michiel Olieslagers <michiel.olieslagers@arm.com> | 2023-09-18 17:11:09 +0100 |
---|---|---|
committer | Gergely Nagy <gergely.nagy@arm.com> | 2023-11-22 09:22:25 +0000 |
commit | 82a5fe34d7464bba70577c734dc446111adb4d93 (patch) | |
tree | e805148f20689ded267e433828cc2c0b56c07d4d /src/mlia | |
parent | b09d9fa0028ebb7496327786810e5f0abbcdfd68 (diff) | |
download | mlia-82a5fe34d7464bba70577c734dc446111adb4d93.tar.gz |
MLIA-963: Capture and handle Vela warning
Signed-off-by: Gergely Nagy <gergely.nagy@arm.com>
Change-Id: I6c8b0b74d6d35261eb0ff1a37b9577f9033be8f9
Diffstat (limited to 'src/mlia')
-rw-r--r-- | src/mlia/backend/vela/compiler.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mlia/backend/vela/compiler.py b/src/mlia/backend/vela/compiler.py index 78f97b2..b591056 100644 --- a/src/mlia/backend/vela/compiler.py +++ b/src/mlia/backend/vela/compiler.py @@ -6,6 +6,7 @@ from __future__ import annotations import logging import sys from dataclasses import dataclass +from io import StringIO from pathlib import Path from typing import Any from typing import Literal @@ -141,6 +142,9 @@ class VelaCompiler: # pylint: disable=too-many-instance-attributes with redirect_output( logger, stdout_level=logging.DEBUG, stderr_level=logging.DEBUG ): + tmp = sys.stdout + output_message = StringIO() + sys.stdout = output_message compiler_driver( nng, arch, @@ -149,8 +153,16 @@ class VelaCompiler: # pylint: disable=too-many-instance-attributes network_type, output_basename, ) + sys.stdout = tmp + if ( + "Warning: SRAM target for arena memory area exceeded." + in output_message.getvalue() + ): + raise MemoryError("Model is too large and uses too much RAM") return OptimizedModel(nng, arch, compiler_options, scheduler_options) + except MemoryError as err: + raise err except (SystemExit, Exception) as err: raise RuntimeError( "Model could not be optimized with Vela compiler." |