Skip to content
Snippets Groups Projects
Commit b54d4bcd authored by mmrahorovic's avatar mmrahorovic
Browse files

updated test case

parent 9bcd945a
No related branches found
No related tags found
No related merge requests found
......@@ -81,7 +81,7 @@ def make_single_maxpoolnhwc_modelwrapper(k, ifm_ch, ifm_dim, ofm_dim, idt):
return model
def make_single_streamingmaxpool_modelwrapper(k, ifm_ch, ifm_dim, ofm_dim, idt):
def make_single_streamingmaxpool_modelwrapper(k, ifm_ch, pe, ifm_dim, ofm_dim, idt):
k_h, k_w = k
ifm_dim_h, ifm_dim_w = ifm_dim
ofm_dim_h, ofm_dim_w = ofm_dim
......@@ -101,6 +101,7 @@ def make_single_streamingmaxpool_modelwrapper(k, ifm_ch, ifm_dim, ofm_dim, idt):
backend="fpgadataflow",
PoolDim=[k_h, k_w],
NumChannels=ifm_ch,
PE=pe,
ImgDim=[ifm_dim_h, ifm_dim_w],
dataType=idt.name,
)
......@@ -122,20 +123,29 @@ def prepare_inputs(input_tensor):
# input datatype
@pytest.mark.parametrize("idt", [DataType["BIPOLAR"], DataType["INT4"]])
#@pytest.mark.parametrize("idt", [DataType["BIPOLAR"], DataType["INT4"]])
@pytest.mark.parametrize("idt", [DataType["UINT4"]])
# 1d maxpool
@pytest.mark.parametrize("dim_1d", [False, True])
#@pytest.mark.parametrize("dim_1d", [False, True])
@pytest.mark.parametrize("dim_1d", [True])
# kernel size
@pytest.mark.parametrize("k", [2, 4])
##@pytest.mark.parametrize("k", [2, 4])
@pytest.mark.parametrize("k", [6])
# input dimension
@pytest.mark.parametrize("ifm_dim", [4, 8])
#@pytest.mark.parametrize("ifm_dim", [4, 8])
@pytest.mark.parametrize("ifm_dim", [60])
# input channels
@pytest.mark.parametrize("ifm_ch", [1, 3]) # 1,3
#@pytest.mark.parametrize("ifm_ch", [1, 3]) # 1,3
@pytest.mark.parametrize("ifm_ch", [1024]) # 1,3
# pe
#@pytest.mark.parametrize("pe", [1, 3])
@pytest.mark.parametrize("pe", [1])
# execution mode
@pytest.mark.parametrize("exec_mode", ["rtlsim", "cppsim"])
#@pytest.mark.parametrize("exec_mode", ["rtlsim", "cppsim"])
@pytest.mark.parametrize("exec_mode", ["rtlsim"])
@pytest.mark.slow
@pytest.mark.vivado
def test_fpgadataflow_streamingmaxpool(idt, dim_1d, k, ifm_dim, ifm_ch, exec_mode):
def test_fpgadataflow_streamingmaxpool(idt, dim_1d, k, ifm_dim, ifm_ch, pe, exec_mode):
ifm_dim_h = ifm_dim
k_h = k
if dim_1d:
......@@ -156,6 +166,8 @@ def test_fpgadataflow_streamingmaxpool(idt, dim_1d, k, ifm_dim, ifm_ch, exec_mod
pytest.skip("Skipping binary StreamingMaxPool_1d (not implemented)")
if ifm_dim_h % k_h != 0 or ifm_dim_w % k_w != 0:
pytest.skip("Skipping StreamingMaxPool test w/ ImgDim % PoolDim != 0")
if pe > ifm_ch:
pytest.skip("SIMD cannot be larger than number of input channels")
x = gen_finn_dt_tensor(idt, (1, ifm_dim_h, ifm_dim_w, ifm_ch))
# prepare input data
......@@ -164,7 +176,7 @@ def test_fpgadataflow_streamingmaxpool(idt, dim_1d, k, ifm_dim, ifm_ch, exec_mod
golden = make_single_maxpoolnhwc_modelwrapper(k, ifm_ch, ifm_dim, ofm_dim, idt)
y_expected = oxe.execute_onnx(golden, input_dict)["outp"]
model = make_single_streamingmaxpool_modelwrapper(k, ifm_ch, ifm_dim, ofm_dim, idt)
model = make_single_streamingmaxpool_modelwrapper(k, ifm_ch, pe, ifm_dim, ofm_dim, idt)
if exec_mode == "cppsim":
model = model.transform(SetExecMode("cppsim"))
......@@ -173,7 +185,8 @@ def test_fpgadataflow_streamingmaxpool(idt, dim_1d, k, ifm_dim, ifm_ch, exec_mod
elif exec_mode == "rtlsim":
model = model.transform(SetExecMode("rtlsim"))
model = model.transform(GiveUniqueNodeNames())
model = model.transform(PrepareIP("xc7z020clg400-1", 5))
#model = model.transform(PrepareIP("xc7z020clg400-1", 5))
model = model.transform(PrepareIP("xczu3eg-sbva484-1-e", 5))
model = model.transform(HLSSynthIP())
model = model.transform(PrepareRTLSim())
else:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment