Skip to content
Snippets Groups Projects
Commit 825cb51a authored by Yaman Umuroglu's avatar Yaman Umuroglu
Browse files

[Test] debug changes to ip stitch test

parent 926512fd
No related branches found
No related tags found
No related merge requests found
......@@ -67,7 +67,7 @@ def create_one_fc_model():
# create a model with a StreamingFCLayer instance with no activation
# the wider range of the full accumulator makes debugging a bit easier
wdt = DataType.INT2
idt = DataType.INT2
idt = DataType.INT32
odt = DataType.INT32
m = 4
no_act = 1
......@@ -120,16 +120,14 @@ def create_one_fc_model():
def create_two_fc_model():
# create a model with two StreamingFCLayer instances
wdt = DataType.INT2
idt = DataType.INT2
odt = DataType.INT2
act = DataType.INT2
idt = DataType.INT32
odt = DataType.INT32
m = 4
tdt = DataType.INT32
actval = odt.min()
no_act = 0
actval = 0
no_act = 1
binary_xnor_mode = 0
pe = 2
simd = 2
pe = 1
simd = 1
inp = helper.make_tensor_value_info("inp", TensorProto.FLOAT, [1, m])
mid = helper.make_tensor_value_info("mid", TensorProto.FLOAT, [1, m])
......@@ -137,7 +135,7 @@ def create_two_fc_model():
fc0 = helper.make_node(
"StreamingFCLayer_Batch",
["inp", "w0", "t0"],
["inp", "w0"],
["mid"],
domain="finn",
backend="fpgadataflow",
......@@ -145,25 +143,27 @@ def create_two_fc_model():
MW=m,
MH=m,
SIMD=simd,
PE=pe,
PE=2,
inputDataType=idt.name,
weightDataType=wdt.name,
outputDataType=odt.name,
ActVal=actval,
binaryXnorMode=binary_xnor_mode,
noActivation=no_act,
mem_mode="decoupled",
)
fc1 = helper.make_node(
"StreamingFCLayer_Batch",
["mid", "w1", "t1"],
["mid", "w1"],
["outp"],
domain="finn",
backend="fpgadataflow",
resType="ap_resource_lut()",
mem_mode="decoupled",
MW=m,
MH=m,
SIMD=simd,
SIMD=2,
PE=pe,
inputDataType=idt.name,
weightDataType=wdt.name,
......@@ -191,25 +191,11 @@ def create_two_fc_model():
model.set_tensor_datatype("w1", wdt)
# generate weights
w0 = gen_finn_dt_tensor(wdt, (m, m))
w1 = gen_finn_dt_tensor(wdt, (m, m))
w0 = np.eye(m, dtype=np.float32)
w1 = np.eye(m, dtype=np.float32)
model.set_initializer("w0", w0)
model.set_initializer("w1", w1)
# generate thresholds
(min, max) = calculate_signed_dot_prod_range(idt, wdt, m)
n_steps = act.get_num_possible_values() - 1
t0 = np.random.randint(min, max - 1, (m, n_steps)).astype(np.float32)
t1 = np.random.randint(min, max - 1, (m, n_steps)).astype(np.float32)
# provide non-decreasing thresholds
t0 = np.sort(t0, axis=1)
t1 = np.sort(t1, axis=1)
model.set_initializer("t0", t0)
model.set_initializer("t1", t1)
model.set_tensor_datatype("t0", tdt)
model.set_tensor_datatype("t1", tdt)
model = model.transform(CreateDataflowPartition())
return model
......@@ -251,6 +237,7 @@ def test_fpgadataflow_ipstitch_do_stitch():
def test_fpgadataflow_ipstitch_rtlsim():
model = ModelWrapper(ip_stitch_model_dir + "/test_fpgadataflow_ip_stitch.onnx")
model.set_metadata_prop("rtlsim_trace", "whole_trace.vcd")
sim = pyverilate_stitched_ip(model)
exp_io = [
"ap_clk_0",
......@@ -268,7 +255,9 @@ def test_fpgadataflow_ipstitch_rtlsim():
model.set_metadata_prop("exec_mode", "rtlsim")
idt = model.get_tensor_datatype("inp")
ishape = model.get_tensor_shape("inp")
x = gen_finn_dt_tensor(idt, ishape)
# x = gen_finn_dt_tensor(idt, ishape)
# x = np.zeros(ishape, dtype=np.float32)
x = np.asarray([[-2, -1, 0, 1]], dtype=np.float32)
rtlsim_res = execute_onnx(model, {"inp": x})["outp"]
assert (rtlsim_res == x).all()
......
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