forked from KULeuven-MICAS/zigzag
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_ascend_like.py
38 lines (29 loc) · 1.25 KB
/
test_ascend_like.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import pytest
from zigzag.api import get_hardware_performance_zigzag_without_unused_memory
workloads = (
"zigzag/inputs/examples/workload/alexnet.onnx",
"zigzag/inputs/examples/workload/mobilenetv2.onnx",
"zigzag/inputs/examples/workload/resnet18.onnx",
"zigzag.inputs.examples.workload.resnet18",
)
# Expected energy and latency for each workload defined above
ens_lats = {
"zigzag/inputs/examples/workload/alexnet.onnx": (5649555894.9, 8637780),
"zigzag/inputs/examples/workload/mobilenetv2.onnx": (1881386179.71, 6486685),
"zigzag/inputs/examples/workload/resnet18.onnx": (1709089377.83, 3583047),
"zigzag.inputs.examples.workload.resnet18": (2243493483.15, 4657130),
}
@pytest.fixture
def mapping():
return "zigzag.inputs.examples.mapping.ascend_like"
@pytest.fixture
def accelerator():
return "zigzag.inputs.examples.hardware.Ascend_like"
@pytest.mark.parametrize("workload", workloads)
def test_api(workload, accelerator, mapping):
(energy, latency, cmes) = get_hardware_performance_zigzag_without_unused_memory(
workload, accelerator, mapping
)
(expected_energy, expected_latency) = ens_lats[workload]
assert energy == pytest.approx(expected_energy)
assert latency == pytest.approx(expected_latency)