diff --git a/tests/test_basic_onnx_exec.py b/tests/core/test_basic_onnx_exec.py similarity index 100% rename from tests/test_basic_onnx_exec.py rename to tests/core/test_basic_onnx_exec.py diff --git a/tests/test_custom_onnx_exec.py b/tests/core/test_custom_onnx_exec.py similarity index 100% rename from tests/test_custom_onnx_exec.py rename to tests/core/test_custom_onnx_exec.py diff --git a/tests/test_mixed_onnx_exec.py b/tests/core/test_mixed_onnx_exec.py similarity index 100% rename from tests/test_mixed_onnx_exec.py rename to tests/core/test_mixed_onnx_exec.py diff --git a/tests/test_multi_thresholding.py b/tests/custom_op/test_multi_thresholding.py similarity index 100% rename from tests/test_multi_thresholding.py rename to tests/custom_op/test_multi_thresholding.py diff --git a/tests/test_verify_custom_nodes.py b/tests/custom_op/test_verify_custom_nodes.py similarity index 100% rename from tests/test_verify_custom_nodes.py rename to tests/custom_op/test_verify_custom_nodes.py diff --git a/tests/test_xnorpopcountmatmul.py b/tests/custom_op/test_xnorpopcountmatmul.py similarity index 100% rename from tests/test_xnorpopcountmatmul.py rename to tests/custom_op/test_xnorpopcountmatmul.py diff --git a/tests/test_finn_hls_onnx_graph.py b/tests/test_finn_hls_onnx_graph.py deleted file mode 100644 index 06308644473ab57b05ba0f46c3696c857b00e7a6..0000000000000000000000000000000000000000 --- a/tests/test_finn_hls_onnx_graph.py +++ /dev/null @@ -1,128 +0,0 @@ -import onnx -from onnx import TensorProto, helper - -from finn.core.datatype import DataType -from finn.core.modelwrapper import ModelWrapper - - -def test_manually_construct_onnx_graph(): - - inp = helper.make_tensor_value_info("inp", TensorProto.FLOAT, [1, 13, 64]) - outp = helper.make_tensor_value_info("outp", TensorProto.FLOAT, [1, 1, 64]) - - memInStrm_node = helper.make_node( - "FIFO", ["inp"], ["memInStrm"], "memInStrm", domain='finn', backend='fpgadataflow', depth=1024 - ) - FCLayer0_node = helper.make_node( - "StreamingFCLayer_Batch", - ["memInStrm", "weights0", "thresh0"], - ["out1"], - domain='finn', - backend='fpgadataflow', - resType="ap_resource_lut()", - MW=832, - MH=1024, - SIMD=64, - PE=32, - resDataType="Recast<XnorMul>", - ) - inter0_node = helper.make_node("FIFO", ["out1"], ["inter0"], "inter0", domain='finn', backend='fpgadataflow', depth=16) - FCLayer1_node = helper.make_node( - "StreamingFCLayer_Batch", - ["inter0", "weights1", "thresh1"], - ["out2"], - domain='finn', - backend='fpgadataflow', - resType="ap_resource_lut()", - MW=1024, - MH=1024, - SIMD=32, - PE=64, - resDataType="Recast<XnorMul>", - ) - inter1_node = helper.make_node("FIFO", ["out2"], ["inter1"], "inter1", domain='finn', backend='fpgadataflow', depth=16) - FCLayer2_node = helper.make_node( - "StreamingFCLayer_Batch", - ["inter1", "weights2", "thresh2"], - ["out3"], - domain='finn', - backend='fpgadataflow', - resType="ap_resource_lut()", - MW=1024, - MH=1024, - SIMD=64, - PE=32, - resDataType="Recast<XnorMul>", - ) - inter2_node = helper.make_node("FIFO", ["out3"], ["inter2"], "inter2", domain='finn', backend='fpgadataflow', depth=8) - FCLayer3_node = helper.make_node( - "StreamingFCLayer_Batch", - ["inter2", "weights3", "thresh3"], - ["out4"], - domain='finn', - backend='fpgadataflow', - resType="ap_resource_lut()", - MW=1024, - MH=64, - SIMD=8, - PE=16, - resDataType="Recast<XnorMul>", - ) - memOutStrm_node = helper.make_node( - "FIFO", ["out4"], ["outp"], "memOutStrm", domain='finn', backend='fpgadataflow', depth=1024 - ) - - graph = helper.make_graph( - nodes=[ - memInStrm_node, - FCLayer0_node, - inter0_node, - FCLayer1_node, - inter1_node, - FCLayer2_node, - inter2_node, - FCLayer3_node, - memOutStrm_node, - ], - name="finn_hls_onnx_graph", - inputs=[inp], - outputs=[outp], - value_info=[ - 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, 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, 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, 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, 1, 64]), - ], - ) - model = helper.make_model(graph, producer_name="finn-hls-onnx-model") - model = ModelWrapper(model) - - # set the tensor datatypes (in this case: all to bipolar) - for tensor in graph.input: - model.set_tensor_datatype(tensor.name, DataType["BIPOLAR"]) - for tensor in graph.output: - model.set_tensor_datatype(tensor.name, DataType["BIPOLAR"]) - for tensor in graph.value_info: - model.set_tensor_datatype(tensor.name, DataType["BIPOLAR"]) - - #onnx.save(model.model, "finn-hls-onnx-model.onnx") diff --git a/tests/fpgadataflow/test_data_packing.py b/tests/util/test_data_packing.py similarity index 100% rename from tests/fpgadataflow/test_data_packing.py rename to tests/util/test_data_packing.py diff --git a/tests/test_gen_finn_dt_tensor.py b/tests/util/test_gen_finn_dt_tensor.py similarity index 100% rename from tests/test_gen_finn_dt_tensor.py rename to tests/util/test_gen_finn_dt_tensor.py diff --git a/tests/test_padding.py b/tests/util/test_padding.py similarity index 100% rename from tests/test_padding.py rename to tests/util/test_padding.py diff --git a/tests/fpgadataflow/test_rtlsim2npy.py b/tests/util/test_rtlsim2npy.py similarity index 86% rename from tests/fpgadataflow/test_rtlsim2npy.py rename to tests/util/test_rtlsim2npy.py index b9a5b938d02239ff7748a759354004c1798a9828..c1a10fe49a7956c83a7bfcd26f15a8c4238ebdb3 100644 --- a/tests/fpgadataflow/test_rtlsim2npy.py +++ b/tests/util/test_rtlsim2npy.py @@ -47,7 +47,9 @@ def test_unpack_innermost_dim_from_hex_string(): dtype = DataType.INT2 shape = (1, 2, 2, 2) eC = [[[-1, -1], [-1, -1]], [[-1, 1], [1, -1]]] - C_unpacked = unpack_innermost_dim_from_hex_string(C, dtype, shape, reverse_inner=True) + C_unpacked = unpack_innermost_dim_from_hex_string( + C, dtype, shape, reverse_inner=True + ) assert (C_unpacked == eC).all() # INT4 @@ -58,20 +60,20 @@ def test_unpack_innermost_dim_from_hex_string(): D_unpacked = unpack_innermost_dim_from_hex_string(D, dtype, shape) assert (D_unpacked == eD).all() - D_unpacked = unpack_innermost_dim_from_hex_string(D, dtype, shape, reverse_inner=True) + D_unpacked = unpack_innermost_dim_from_hex_string( + D, dtype, shape, reverse_inner=True + ) assert (D_unpacked == eD).all() - # INT32 E = np.asarray(["0xffffffff", "0xfffffffe", "0x02", "0xffffffef"]) dtype = DataType.INT32 shape = (1, 4, 1) - eE = [[[-1],[-2],[2],[-17]]] + eE = [[[-1], [-2], [2], [-17]]] E_unpacked = unpack_innermost_dim_from_hex_string(E, dtype, shape) assert (E_unpacked == eE).all() - E_unpacked = unpack_innermost_dim_from_hex_string(E, dtype, shape, reverse_inner=True) + E_unpacked = unpack_innermost_dim_from_hex_string( + E, dtype, shape, reverse_inner=True + ) assert (E_unpacked == eE).all() - - - diff --git a/tests/test_shape_utils.py b/tests/util/test_shape_utils.py similarity index 100% rename from tests/test_shape_utils.py rename to tests/util/test_shape_utils.py