From 2080ea2e2a8a6853f42e26cbd318704973bd0c05 Mon Sep 17 00:00:00 2001 From: auphelia <jakobapk@web.de> Date: Wed, 6 Nov 2019 11:35:55 +0000 Subject: [PATCH] [Test] Modified graph shapes and node attributes --- tests/finn-hls-onnx-model.onnx | 156 ++++++++++++++---------------- tests/test_finn_hls_onnx_graph.py | 81 +++++++--------- 2 files changed, 106 insertions(+), 131 deletions(-) diff --git a/tests/finn-hls-onnx-model.onnx b/tests/finn-hls-onnx-model.onnx index 883182887..535a87269 100644 --- a/tests/finn-hls-onnx-model.onnx +++ b/tests/finn-hls-onnx-model.onnx @@ -1,88 +1,82 @@ -finn-hls-onnx-model:ô -P -inpout0"Mem2Stream_Batch* - DataWidth@ * -numBytesh * -numReps - -out0 memInStrm" StreamingNode -È +finn-hls-onnx-model:þ +0 +inp memInStrm memInStrm"FIFO* +depth€ +° memInStrm weights0 -thresh0out1"StreamingFCLayer_Batch* -L_MH€ * -L_MWÀ * -L_PE * -L_SIMD@ * -numReps *! +thresh0out1"StreamingFCLayer_Batch* + +MH€ * + +MWÀ * +PE * +SIMD@ *! resDataType"Recast<XnorMul> * resType"ap_resource_lut() - -out1inter0" StreamingNode -Å +* +out1inter0inter0"FIFO* +depth + inter0 weights1 -thresh1out2"StreamingFCLayer_Batch* -L_MH€ * -L_MW€ * -L_PE@ * -L_SIMD * -numReps *! +thresh1out2"StreamingFCLayer_Batch* + +MH€ * + +MW€ * +PE@ * +SIMD *! resDataType"Recast<XnorMul> * resType"ap_resource_lut() - -out2inter1" StreamingNode -Å +* +out2inter1inter1"FIFO* +depth + inter1 weights2 -thresh2out3"StreamingFCLayer_Batch* -L_MH€ * -L_MW€ * -L_PE * -L_SIMD@ * -numReps *! +thresh2out3"StreamingFCLayer_Batch* + +MH€ * + +MW€ * +PE * +SIMD@ *! resDataType"Recast<XnorMul> * resType"ap_resource_lut() - -out3inter2" StreamingNode -Ä +* +out3inter2inter2"FIFO* +depth +¬ inter2 weights3 -thresh3out4"StreamingFCLayer_Batch* -L_MH@ * -L_MW€ * -L_PE * -L_SIMD * -numReps *! +thresh3out4"StreamingFCLayer_Batch* +MH@ * + +MW€ * +PE * +SIMD *! resDataType"Recast<XnorMul> * resType"ap_resource_lut() -! -out4 -memOutStrm" StreamingNode -W - -memOutStrmoutp"Mem2Stream_Batch* - DataWidth@ * -numBytes * -numReps finn_hls_onnx_graphZ -inp - - -@b -outp - - -@j -out0 +- +out4outp +memOutStrm"FIFO* +depth€ finn_hls_onnx_graphZ +inp - - j + +@b +outp + + + +@j memInStrm - - j + +@j weights0 @ @@ -98,13 +92,13 @@ memOutStrmoutp"Mem2Stream_Batch* out1 - -@j + + j inter0 - -@j + + j weights1 @@ -120,13 +114,13 @@ memOutStrmoutp"Mem2Stream_Batch* out2 - - j + +@j inter1 - - j + +@j weights2 @ @@ -142,13 +136,13 @@ memOutStrmoutp"Mem2Stream_Batch* out3 -@ -j + + j inter2 -@ -j + + j weights3 @@ -160,13 +154,9 @@ memOutStrmoutp"Mem2Stream_Batch* -j -out4 - +j +out4 + -@j - -memOutStrm - @B \ No newline at end of file diff --git a/tests/test_finn_hls_onnx_graph.py b/tests/test_finn_hls_onnx_graph.py index a9ad8da71..3e314bee5 100644 --- a/tests/test_finn_hls_onnx_graph.py +++ b/tests/test_finn_hls_onnx_graph.py @@ -4,77 +4,65 @@ from onnx import TensorProto, helper def test_manually_construct_onnx_graph(): - inp = helper.make_tensor_value_info("inp", TensorProto.FLOAT, [1, 64]) - outp = helper.make_tensor_value_info("outp", TensorProto.FLOAT, [1, 64]) + inp = helper.make_tensor_value_info("inp", TensorProto.FLOAT, [1, 13, 64]) + outp = helper.make_tensor_value_info("outp", TensorProto.FLOAT, [1, 1, 64]) - Mem2Stream0_node = helper.make_node( - "Mem2Stream_Batch", ["inp"], ["out0"], numReps=4, DataWidth=64, numBytes=104 + memInStrm_node = helper.make_node( + "FIFO", ["inp"], ["memInStrm"], "memInStrm", depth=1024 ) - memInStrm_node = helper.make_node("StreamingNode", ["out0"], ["memInStrm"]) FCLayer0_node = helper.make_node( "StreamingFCLayer_Batch", ["memInStrm", "weights0", "thresh0"], ["out1"], - numReps=4, resType="ap_resource_lut()", - L_MW=832, - L_MH=1024, - L_SIMD=64, - L_PE=32, + MW=832, + MH=1024, + SIMD=64, + PE=32, resDataType="Recast<XnorMul>", ) - inter0_node = helper.make_node("StreamingNode", ["out1"], ["inter0"]) + inter0_node = helper.make_node("FIFO", ["out1"], ["inter0"], "inter0", depth=16) FCLayer1_node = helper.make_node( "StreamingFCLayer_Batch", ["inter0", "weights1", "thresh1"], ["out2"], - numReps=4, resType="ap_resource_lut()", - L_MW=1024, - L_MH=1024, - L_SIMD=32, - L_PE=64, + MW=1024, + MH=1024, + SIMD=32, + PE=64, resDataType="Recast<XnorMul>", ) - inter1_node = helper.make_node("StreamingNode", ["out2"], ["inter1"]) + inter1_node = helper.make_node("FIFO", ["out2"], ["inter1"], "inter1", depth=16) FCLayer2_node = helper.make_node( "StreamingFCLayer_Batch", ["inter1", "weights2", "thresh2"], ["out3"], - numReps=4, resType="ap_resource_lut()", - L_MW=1024, - L_MH=1024, - L_SIMD=64, - L_PE=32, + MW=1024, + MH=1024, + SIMD=64, + PE=32, resDataType="Recast<XnorMul>", ) - inter2_node = helper.make_node("StreamingNode", ["out3"], ["inter2"]) + inter2_node = helper.make_node("FIFO", ["out3"], ["inter2"], "inter2", depth=8) FCLayer3_node = helper.make_node( "StreamingFCLayer_Batch", ["inter2", "weights3", "thresh3"], ["out4"], - numReps=4, resType="ap_resource_lut()", - L_MW=1024, - L_MH=64, - L_SIMD=8, - L_PE=16, + MW=1024, + MH=64, + SIMD=8, + PE=16, resDataType="Recast<XnorMul>", ) - memOutStrm_node = helper.make_node("StreamingNode", ["out4"], ["memOutStrm"]) - Mem2Stream1_node = helper.make_node( - "Mem2Stream_Batch", - ["memOutStrm"], - ["outp"], - numReps=4, - DataWidth=64, - numBytes=8, + memOutStrm_node = helper.make_node( + "FIFO", ["out4"], ["outp"], "memOutStrm", depth=1024 ) graph = helper.make_graph( nodes=[ - Mem2Stream0_node, memInStrm_node, FCLayer0_node, inter0_node, @@ -84,38 +72,35 @@ def test_manually_construct_onnx_graph(): inter2_node, FCLayer3_node, memOutStrm_node, - Mem2Stream1_node, ], name="finn_hls_onnx_graph", inputs=[inp], outputs=[outp], value_info=[ - helper.make_tensor_value_info("out0", TensorProto.FLOAT, [1, 32, 32]), - helper.make_tensor_value_info("memInStrm", TensorProto.FLOAT, [1, 32, 32]), + helper.make_tensor_value_info("memInStrm", TensorProto.FLOAT, [1, 13, 64]), helper.make_tensor_value_info("weights0", TensorProto.FLOAT, [64, 32, 416]), helper.make_tensor_value_info( "thresh0", TensorProto.FLOAT, [32, 32, 1, 16, 1] ), - helper.make_tensor_value_info("out1", TensorProto.FLOAT, [1, 16, 64]), - helper.make_tensor_value_info("inter0", TensorProto.FLOAT, [1, 16, 64]), + helper.make_tensor_value_info("out1", TensorProto.FLOAT, [1, 32, 32]), + helper.make_tensor_value_info("inter0", TensorProto.FLOAT, [1, 32, 32]), helper.make_tensor_value_info("weights1", TensorProto.FLOAT, [32, 64, 512]), helper.make_tensor_value_info( "thresh1", TensorProto.FLOAT, [16, 64, 1, 16, 1] ), - helper.make_tensor_value_info("out2", TensorProto.FLOAT, [1, 32, 32]), - helper.make_tensor_value_info("inter1", TensorProto.FLOAT, [1, 32, 32]), + helper.make_tensor_value_info("out2", TensorProto.FLOAT, [1, 16, 64]), + helper.make_tensor_value_info("inter1", TensorProto.FLOAT, [1, 16, 64]), helper.make_tensor_value_info("weights2", TensorProto.FLOAT, [64, 32, 512]), helper.make_tensor_value_info( "thresh2", TensorProto.FLOAT, [32, 32, 1, 16, 1] ), - helper.make_tensor_value_info("out3", TensorProto.FLOAT, [1, 64, 16]), - helper.make_tensor_value_info("inter2", TensorProto.FLOAT, [1, 64, 16]), + helper.make_tensor_value_info("out3", TensorProto.FLOAT, [1, 32, 32]), + helper.make_tensor_value_info("inter2", TensorProto.FLOAT, [1, 32, 32]), helper.make_tensor_value_info("weights3", TensorProto.FLOAT, [8, 16, 512]), helper.make_tensor_value_info( "thresh3", TensorProto.FLOAT, [4, 16, 1, 16, 1] ), - helper.make_tensor_value_info("out4", TensorProto.FLOAT, [1, 64]), - helper.make_tensor_value_info("memOutStrm", TensorProto.FLOAT, [1, 64]), + helper.make_tensor_value_info("out4", TensorProto.FLOAT, [1, 1, 64]), ], ) model = helper.make_model(graph, producer_name="finn-hls-onnx-model") -- GitLab