Skip to content

Commit 791c2e6

Browse files
committed
Add div checks
1 parent 9d7c970 commit 791c2e6

File tree

1 file changed

+8
-2
lines changed
  • Deeploy/Targets/PULPOpen/TopologyOptimizationPasses

1 file changed

+8
-2
lines changed

Deeploy/Targets/PULPOpen/TopologyOptimizationPasses/Passes.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -170,15 +170,21 @@ def _merge_conv_rq_fun(graph: gs.Graph, match: Match, name: str):
170170
mul, add = rqs.inputs[1:]
171171

172172
div_attr = rqs.attrs['div']
173+
173174
if isinstance(div_attr, gs.Constant):
174175
assert div_attr.values.size == 1
175-
div = div_attr.values.item()
176-
elif isinstance(div_attr, int):
176+
div_attr = div_attr.values.item()
177+
178+
if isinstance(div_attr, int):
177179
div = div_attr
178180
elif isinstance(div_attr, float) and div_attr.is_integer():
179181
div = int(div_attr)
180182
else:
181183
raise ValueError(f"Cannot convert div to integer. Received {div_attr}")
184+
185+
assert div > 0, f"Shift calculation (log2(div)) requires div to be a positive number. Received non-positive div {div}"
186+
assert div.bit_count() == 1, f"Div is expected to be a power of 2 number. Received div {div}"
187+
182188
shift = int(math.log2(div))
183189
# Artifically add half the division value as rounding
184190
if shift > 0:

0 commit comments

Comments
 (0)