diff --git a/hls4ml/report/oneapi_report.py b/hls4ml/report/oneapi_report.py index 7be82917c0..fc62f0f15a 100644 --- a/hls4ml/report/oneapi_report.py +++ b/hls4ml/report/oneapi_report.py @@ -123,8 +123,11 @@ def _parse_single_report(prjDir): continue if float(loopInfo['af']) < worstFrequency: worstFrequency = float(loopInfo['af']) - if int(loopInfo['ii']) > worstII: - worstII = int(loopInfo['ii']) + try: + if int(loopInfo['ii']) > worstII: + worstII = int(loopInfo['ii']) + except ValueError: + pass if float(loopInfo['lt']) > worstLatency: worstLatency = float(loopInfo['lt']) loopReport = {'worstFrequency': str(worstFrequency), 'worstII': str(worstII), 'worstLatency': str(worstLatency)} diff --git a/test/pytest/baselines/Vitis/2020.1/.gitkeep b/test/pytest/baselines/Vitis/2020.1/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/pytest/baselines/Vitis/2020.1/hls4mlprj_keras_api_dense_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2020.1/hls4mlprj_keras_api_dense_Vitis_io_parallel.json new file mode 100644 index 0000000000..ee1781423d --- /dev/null +++ b/test/pytest/baselines/Vitis/2020.1/hls4mlprj_keras_api_dense_Vitis_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "4.727", + "BestLatency": "1", + "WorstLatency": "1", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "1", + "DSP": "2", + "FF": "38", + "LUT": "178", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2020.1/hls4mlprj_keras_api_dense_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2020.1/hls4mlprj_keras_api_dense_Vitis_io_stream.json new file mode 100644 index 0000000000..4d7aeae1e5 --- /dev/null +++ b/test/pytest/baselines/Vitis/2020.1/hls4mlprj_keras_api_dense_Vitis_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "2.787", + "BestLatency": "16", + "WorstLatency": "16", + "IntervalMin": "17", + "IntervalMax": "17", + "BRAM_18K": "1", + "DSP": "1", + "FF": "329", + "LUT": "674", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_elu_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_elu_Vitis_io_parallel.json new file mode 100644 index 0000000000..18e46f6945 --- /dev/null +++ b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_elu_Vitis_io_parallel.json @@ -0,0 +1,352 @@ +{ + "CSimResults": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.015", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "32", + "DSP": "63", + "FF": "2135", + "LUT": "4821", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_elu_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_elu_Vitis_io_stream.json new file mode 100644 index 0000000000..6dc5fb5cdf --- /dev/null +++ b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_elu_Vitis_io_stream.json @@ -0,0 +1,352 @@ +{ + "CSimResults": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.275", + "BestLatency": "4", + "WorstLatency": "4", + "IntervalMin": "4", + "IntervalMax": "4", + "BRAM_18K": "32", + "DSP": "57", + "FF": "3154", + "LUT": "5806", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vitis_io_parallel.json new file mode 100644 index 0000000000..15bae1bc55 --- /dev/null +++ b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vitis_io_parallel.json @@ -0,0 +1,352 @@ +{ + "CSimResults": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "1.940", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "DSP": "62", + "FF": "18", + "LUT": "381", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vitis_io_stream.json new file mode 100644 index 0000000000..7ba54a6652 --- /dev/null +++ b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vitis_io_stream.json @@ -0,0 +1,352 @@ +{ + "CSimResults": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.275", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "2", + "IntervalMax": "2", + "DSP": "58", + "FF": "2064", + "LUT": "1502", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_p_re_lu_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_p_re_lu_Vitis_io_parallel.json new file mode 100644 index 0000000000..9ba44b870c --- /dev/null +++ b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_p_re_lu_Vitis_io_parallel.json @@ -0,0 +1,352 @@ +{ + "CSimResults": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.018", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "DSP": "61", + "FF": "18", + "LUT": "2839", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_p_re_lu_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_p_re_lu_Vitis_io_stream.json new file mode 100644 index 0000000000..1787f8a555 --- /dev/null +++ b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_p_re_lu_Vitis_io_stream.json @@ -0,0 +1,352 @@ +{ + "CSimResults": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.275", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "2", + "IntervalMax": "2", + "DSP": "58", + "FF": "2064", + "LUT": "3946", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_relu_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_relu_Vitis_io_parallel.json new file mode 100644 index 0000000000..e2e66d597f --- /dev/null +++ b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_relu_Vitis_io_parallel.json @@ -0,0 +1,352 @@ +{ + "CSimResults": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.018", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "DSP": "61", + "FF": "18", + "LUT": "2840", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_relu_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_relu_Vitis_io_stream.json new file mode 100644 index 0000000000..c602905cd0 --- /dev/null +++ b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_relu_Vitis_io_stream.json @@ -0,0 +1,352 @@ +{ + "CSimResults": [ + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ] + ], + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.275", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "2", + "IntervalMax": "2", + "DSP": "59", + "FF": "2064", + "LUT": "3955", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_sigmoid_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_sigmoid_Vitis_io_parallel.json new file mode 100644 index 0000000000..15abec9e0c --- /dev/null +++ b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_sigmoid_Vitis_io_parallel.json @@ -0,0 +1,352 @@ +{ + "CSimResults": [ + [ + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5" + ], + [ + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5" + ], + [ + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5" + ], + [ + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5" + ], + [ + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5" + ] + ], + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "2.958", + "BestLatency": "3", + "WorstLatency": "3", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "32", + "DSP": "62", + "FF": "1689", + "LUT": "11005", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_sigmoid_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_sigmoid_Vitis_io_stream.json new file mode 100644 index 0000000000..72fe9863d0 --- /dev/null +++ b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_activations_sigmoid_Vitis_io_stream.json @@ -0,0 +1,352 @@ +{ + "CSimResults": [ + [ + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5" + ], + [ + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5" + ], + [ + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5" + ], + [ + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5" + ], + [ + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5", + "0.5" + ] + ], + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.275", + "BestLatency": "4", + "WorstLatency": "4", + "IntervalMin": "4", + "IntervalMax": "4", + "BRAM_18K": "32", + "DSP": "58", + "FF": "3858", + "LUT": "11386", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_dense_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_dense_Vitis_io_parallel.json new file mode 100644 index 0000000000..2f9328bc76 --- /dev/null +++ b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_dense_Vitis_io_parallel.json @@ -0,0 +1,42 @@ +{ + "CSimResults": [ + [ + "0", + "0" + ], + [ + "0", + "0" + ], + [ + "0", + "0" + ], + [ + "0", + "0" + ], + [ + "0", + "0" + ] + ], + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.015", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "1", + "DSP": "2", + "FF": "89", + "LUT": "190", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_dense_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_dense_Vitis_io_stream.json new file mode 100644 index 0000000000..042a1dbaa2 --- /dev/null +++ b/test/pytest/baselines/Vitis/2023.1/hls4mlprj_keras_api_dense_Vitis_io_stream.json @@ -0,0 +1,42 @@ +{ + "CSimResults": [ + [ + "0", + "0" + ], + [ + "0", + "0" + ], + [ + "0", + "0" + ], + [ + "0", + "0" + ], + [ + "0", + "0" + ] + ], + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.338", + "BestLatency": "4", + "WorstLatency": "4", + "IntervalMin": "4", + "IntervalMax": "4", + "BRAM_18K": "1", + "DSP": "2", + "FF": "110", + "LUT": "279", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_elu_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_elu_Vitis_io_parallel.json new file mode 100644 index 0000000000..305a0c57b1 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_elu_Vitis_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "2.919", + "BestLatency": "3", + "WorstLatency": "3", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "32", + "DSP": "59", + "FF": "3865", + "LUT": "10082", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_elu_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_elu_Vitis_io_stream.json new file mode 100644 index 0000000000..e9c0e29747 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_elu_Vitis_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.354", + "BestLatency": "4", + "WorstLatency": "4", + "IntervalMin": "4", + "IntervalMax": "4", + "BRAM_18K": "32", + "DSP": "61", + "FF": "3154", + "LUT": "5742", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vitis_io_parallel.json new file mode 100644 index 0000000000..240d88e845 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vitis_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "1.940", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "DSP": "57", + "FF": "18", + "LUT": "462", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vitis_io_stream.json new file mode 100644 index 0000000000..e4b4767230 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vitis_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.354", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "2", + "IntervalMax": "2", + "DSP": "59", + "FF": "2064", + "LUT": "1539", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_p_re_lu_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_p_re_lu_Vitis_io_parallel.json new file mode 100644 index 0000000000..a1421d46ee --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_p_re_lu_Vitis_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.018", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "DSP": "59", + "FF": "18", + "LUT": "2910", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_p_re_lu_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_p_re_lu_Vitis_io_stream.json new file mode 100644 index 0000000000..f93a6105a4 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_p_re_lu_Vitis_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.373", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "2", + "IntervalMax": "2", + "DSP": "58", + "FF": "2064", + "LUT": "4012", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_relu_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_relu_Vitis_io_parallel.json new file mode 100644 index 0000000000..25159fe966 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_relu_Vitis_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.018", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "DSP": "58", + "FF": "18", + "LUT": "2983", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_relu_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_relu_Vitis_io_stream.json new file mode 100644 index 0000000000..fd219a3c12 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_relu_Vitis_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.373", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "2", + "IntervalMax": "2", + "DSP": "59", + "FF": "2064", + "LUT": "4043", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_sigmoid_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_sigmoid_Vitis_io_parallel.json new file mode 100644 index 0000000000..50c4fd062f --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_sigmoid_Vitis_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "2.538", + "BestLatency": "3", + "WorstLatency": "3", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "32", + "DSP": "56", + "FF": "1689", + "LUT": "7825", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_sigmoid_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_sigmoid_Vitis_io_stream.json new file mode 100644 index 0000000000..c4f722b717 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_activations_sigmoid_Vitis_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.407", + "BestLatency": "4", + "WorstLatency": "4", + "IntervalMin": "4", + "IntervalMax": "4", + "BRAM_18K": "32", + "DSP": "61", + "FF": "3026", + "LUT": "8518", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_conv2d_Vitis_Resource_channels_last_same_io_parallel.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_conv2d_Vitis_Resource_channels_last_same_io_parallel.json new file mode 100644 index 0000000000..1c6fe3b34e --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_conv2d_Vitis_Resource_channels_last_same_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.480", + "BestLatency": "53", + "WorstLatency": "53", + "IntervalMin": "54", + "IntervalMax": "54", + "DSP": "792", + "FF": "8601", + "LUT": "61308", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_dense_Vitis_io_parallel.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_dense_Vitis_io_parallel.json new file mode 100644 index 0000000000..b3e766b66f --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_dense_Vitis_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "2.919", + "BestLatency": "3", + "WorstLatency": "3", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "1", + "DSP": "2", + "FF": "145", + "LUT": "354", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_dense_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_dense_Vitis_io_stream.json new file mode 100644 index 0000000000..1dda0292d4 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_dense_Vitis_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.417", + "BestLatency": "4", + "WorstLatency": "4", + "IntervalMin": "4", + "IntervalMax": "4", + "BRAM_18K": "1", + "DSP": "2", + "FF": "110", + "LUT": "279", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_depthwiseconv1d_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_depthwiseconv1d_Vitis_io_stream.json new file mode 100644 index 0000000000..ca0e534679 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_depthwiseconv1d_Vitis_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.460", + "BestLatency": "35", + "WorstLatency": "35", + "IntervalMin": "36", + "IntervalMax": "36", + "DSP": "9", + "FF": "412", + "LUT": "679", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_depthwiseconv2d_Vitis_io_stream.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_depthwiseconv2d_Vitis_io_stream.json new file mode 100644 index 0000000000..9f4298da6f --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_depthwiseconv2d_Vitis_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.513", + "BestLatency": "1028", + "WorstLatency": "1028", + "IntervalMin": "1029", + "IntervalMax": "1029", + "DSP": "18", + "FF": "3371", + "LUT": "7768", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_same_backend_Vitis.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_same_backend_Vitis.json new file mode 100644 index 0000000000..7c0b97616b --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_same_backend_Vitis.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "0.785", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "5810", + "LUT": "4178", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_valid_backend_Vitis.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_valid_backend_Vitis.json new file mode 100644 index 0000000000..7c0b97616b --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_valid_backend_Vitis.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "0.785", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "5810", + "LUT": "4178", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_same_backend_Vitis.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_same_backend_Vitis.json new file mode 100644 index 0000000000..800a028c29 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_same_backend_Vitis.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "1.460", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "12962", + "LUT": "11054", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_valid_backend_Vitis.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_valid_backend_Vitis.json new file mode 100644 index 0000000000..8c34628d08 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_valid_backend_Vitis.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "1.460", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "12962", + "LUT": "10433", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_same_backend_Vitis.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_same_backend_Vitis.json new file mode 100644 index 0000000000..d494ba2964 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_same_backend_Vitis.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "1.028", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "5810", + "LUT": "7175", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_valid_backend_Vitis.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_valid_backend_Vitis.json new file mode 100644 index 0000000000..186954355a --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_valid_backend_Vitis.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "1.028", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "5810", + "LUT": "7058", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_same_backend_Vitis.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_same_backend_Vitis.json new file mode 100644 index 0000000000..c6c11fbfc5 --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_same_backend_Vitis.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.084", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "12962", + "LUT": "25310", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_valid_backend_Vitis.json b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_valid_backend_Vitis.json new file mode 100644 index 0000000000..fa5a0cc1be --- /dev/null +++ b/test/pytest/baselines/Vitis/2024.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_valid_backend_Vitis.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.084", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "12962", + "LUT": "22151", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/.gitkeep b/test/pytest/baselines/Vivado/2020.1/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_elu_Vivado_io_parallel.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_elu_Vivado_io_parallel.json new file mode 100644 index 0000000000..940629d427 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_elu_Vivado_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "2.944", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "32", + "DSP": "62", + "FF": "2135", + "LUT": "4641", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_elu_Vivado_io_stream.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_elu_Vivado_io_stream.json new file mode 100644 index 0000000000..14f7202722 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_elu_Vivado_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "4.245", + "BestLatency": "3", + "WorstLatency": "3", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "32", + "DSP": "58", + "FF": "1415", + "LUT": "8223", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vivado_io_parallel.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vivado_io_parallel.json new file mode 100644 index 0000000000..6a8002735c --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vivado_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "1.940", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "DSP": "56", + "FF": "18", + "LUT": "602", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vivado_io_stream.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vivado_io_stream.json new file mode 100644 index 0000000000..609039d875 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_leaky_re_lu_Vivado_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.398", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "0", + "DSP": "60", + "FF": "326", + "LUT": "3978", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_p_re_lu_Vivado_io_parallel.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_p_re_lu_Vivado_io_parallel.json new file mode 100644 index 0000000000..e5e99c7c9d --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_p_re_lu_Vivado_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "2.909", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "DSP": "59", + "FF": "18", + "LUT": "2256", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_p_re_lu_Vivado_io_stream.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_p_re_lu_Vivado_io_stream.json new file mode 100644 index 0000000000..1eb860f4d5 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_p_re_lu_Vivado_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.398", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "0", + "DSP": "58", + "FF": "326", + "LUT": "5927", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_relu_Vivado_io_parallel.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_relu_Vivado_io_parallel.json new file mode 100644 index 0000000000..4867db1262 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_relu_Vivado_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "2.909", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "DSP": "61", + "FF": "18", + "LUT": "2224", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_relu_Vivado_io_stream.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_relu_Vivado_io_stream.json new file mode 100644 index 0000000000..6d42ba0dd5 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_relu_Vivado_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.398", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "0", + "DSP": "60", + "FF": "326", + "LUT": "5873", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_sigmoid_Vivado_io_parallel.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_sigmoid_Vivado_io_parallel.json new file mode 100644 index 0000000000..64d5f19f32 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_sigmoid_Vivado_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.969", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "32", + "DSP": "61", + "FF": "1047", + "LUT": "9884", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_sigmoid_Vivado_io_stream.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_sigmoid_Vivado_io_stream.json new file mode 100644 index 0000000000..45dbdda1ad --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_activations_sigmoid_Vivado_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "4.126", + "BestLatency": "4", + "WorstLatency": "4", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "32", + "DSP": "59", + "FF": "968", + "LUT": "12674", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_conv2d_Vivado_Resource_channels_last_same_io_parallel.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_conv2d_Vivado_Resource_channels_last_same_io_parallel.json new file mode 100644 index 0000000000..7ea27a53bd --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_conv2d_Vivado_Resource_channels_last_same_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "4.263", + "BestLatency": "51", + "WorstLatency": "52", + "IntervalMin": "49", + "IntervalMax": "49", + "BRAM_18K": "0", + "DSP": "740", + "FF": "52870", + "LUT": "86819", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_dense_Vivado_io_parallel.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_dense_Vivado_io_parallel.json new file mode 100644 index 0000000000..35650b773b --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_dense_Vivado_io_parallel.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "2.944", + "BestLatency": "2", + "WorstLatency": "2", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "1", + "DSP": "2", + "FF": "89", + "LUT": "190", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_dense_Vivado_io_stream.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_dense_Vivado_io_stream.json new file mode 100644 index 0000000000..069e5e7276 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_dense_Vivado_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "4.245", + "BestLatency": "3", + "WorstLatency": "3", + "IntervalMin": "1", + "IntervalMax": "1", + "BRAM_18K": "1", + "DSP": "2", + "FF": "51", + "LUT": "304", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_depthwiseconv1d_Vivado_io_stream.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_depthwiseconv1d_Vivado_io_stream.json new file mode 100644 index 0000000000..a3f9725e26 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_depthwiseconv1d_Vivado_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.629", + "BestLatency": "35", + "WorstLatency": "35", + "IntervalMin": "36", + "IntervalMax": "36", + "DSP": "8", + "FF": "256", + "LUT": "619", + "BRAM_18K": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_depthwiseconv2d_Vivado_io_stream.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_depthwiseconv2d_Vivado_io_stream.json new file mode 100644 index 0000000000..111d487ec9 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_depthwiseconv2d_Vivado_io_stream.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "4.141", + "BestLatency": "1028", + "WorstLatency": "1028", + "IntervalMin": "1029", + "IntervalMax": "1029", + "BRAM_18K": "0", + "DSP": "54", + "FF": "2277", + "LUT": "2649", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_same_backend_Vivado.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_same_backend_Vivado.json new file mode 100644 index 0000000000..59df657a55 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_same_backend_Vivado.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "1.953", + "BestLatency": "21", + "WorstLatency": "21", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "137178", + "LUT": "89529", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_valid_backend_Vivado.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_valid_backend_Vivado.json new file mode 100644 index 0000000000..7c0b97616b --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_valid_backend_Vivado.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "0.785", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "5810", + "LUT": "4178", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_same_backend_Vivado.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_same_backend_Vivado.json new file mode 100644 index 0000000000..ceb5c0401f --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_same_backend_Vivado.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "2.628", + "BestLatency": "21", + "WorstLatency": "21", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "181032", + "LUT": "112578", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_valid_backend_Vivado.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_valid_backend_Vivado.json new file mode 100644 index 0000000000..8c34628d08 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_valid_backend_Vivado.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "1.460", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "12962", + "LUT": "10433", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_same_backend_Vivado.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_same_backend_Vivado.json new file mode 100644 index 0000000000..c6e6d491d9 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_same_backend_Vivado.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "0.919", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "5810", + "LUT": "5345", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_valid_backend_Vivado.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_valid_backend_Vivado.json new file mode 100644 index 0000000000..8df1f360cb --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_valid_backend_Vivado.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "0.919", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "5810", + "LUT": "5258", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_same_backend_Vivado.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_same_backend_Vivado.json new file mode 100644 index 0000000000..7a419dee3c --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_same_backend_Vivado.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.370", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "12962", + "LUT": "20342", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_valid_backend_Vivado.json b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_valid_backend_Vivado.json new file mode 100644 index 0000000000..3c404505f0 --- /dev/null +++ b/test/pytest/baselines/Vivado/2020.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_valid_backend_Vivado.json @@ -0,0 +1,20 @@ +{ + "CSynthesisReport": { + "TargetClockPeriod": "5.00", + "EstimatedClockPeriod": "3.370", + "BestLatency": "0", + "WorstLatency": "0", + "IntervalMin": "1", + "IntervalMax": "1", + "FF": "12962", + "LUT": "17804", + "BRAM_18K": "0", + "DSP": "0", + "URAM": "0", + "AvailableBRAM_18K": "5376", + "AvailableDSP": "12288", + "AvailableFF": "3456000", + "AvailableLUT": "1728000", + "AvailableURAM": "1280" + } +} diff --git a/test/pytest/baselines/Vivado/2023.1/.gitkeep b/test/pytest/baselines/Vivado/2023.1/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_elu_oneAPI_io_parallel.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_elu_oneAPI_io_parallel.json new file mode 100644 index 0000000000..111bd0029b --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_elu_oneAPI_io_parallel.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 8793, + "reg": 7113, + "ram": 189, + "dsp": 0, + "mlab": 52 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "8.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_elu_oneAPI_io_stream.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_elu_oneAPI_io_stream.json new file mode 100644 index 0000000000..be9d3a1a48 --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_elu_oneAPI_io_stream.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 10784, + "reg": 15224, + "ram": 256, + "dsp": 64, + "mlab": 233 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "11.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_leaky_re_lu_oneAPI_io_parallel.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_leaky_re_lu_oneAPI_io_parallel.json new file mode 100644 index 0000000000..40a512054c --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_leaky_re_lu_oneAPI_io_parallel.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 2819, + "reg": 1124, + "ram": 0, + "dsp": 0, + "mlab": 52 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "4.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_leaky_re_lu_oneAPI_io_stream.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_leaky_re_lu_oneAPI_io_stream.json new file mode 100644 index 0000000000..eb83e976d9 --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_leaky_re_lu_oneAPI_io_stream.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 7809, + "reg": 13053, + "ram": 0, + "dsp": 0, + "mlab": 233 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "9.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_p_re_lu_oneAPI_io_parallel.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_p_re_lu_oneAPI_io_parallel.json new file mode 100644 index 0000000000..e96c293266 --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_p_re_lu_oneAPI_io_parallel.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 3656, + "reg": 1131, + "ram": 0, + "dsp": 0, + "mlab": 52 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "4.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_p_re_lu_oneAPI_io_stream.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_p_re_lu_oneAPI_io_stream.json new file mode 100644 index 0000000000..6ef2ec3fad --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_p_re_lu_oneAPI_io_stream.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 6705, + "reg": 17916, + "ram": 0, + "dsp": 0, + "mlab": 169 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "9.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_relu_oneAPI_io_parallel.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_relu_oneAPI_io_parallel.json new file mode 100644 index 0000000000..171407d68d --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_relu_oneAPI_io_parallel.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 3737, + "reg": 1124, + "ram": 0, + "dsp": 0, + "mlab": 52 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "4.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_relu_oneAPI_io_stream.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_relu_oneAPI_io_stream.json new file mode 100644 index 0000000000..4dddd4c5e8 --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_relu_oneAPI_io_stream.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 4391, + "reg": 10675, + "ram": 0, + "dsp": 0, + "mlab": 117 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "9.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_sigmoid_oneAPI_io_parallel.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_sigmoid_oneAPI_io_parallel.json new file mode 100644 index 0000000000..1fa43aea4f --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_sigmoid_oneAPI_io_parallel.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 9273, + "reg": 4140, + "ram": 192, + "dsp": 0, + "mlab": 52 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "8.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_sigmoid_oneAPI_io_stream.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_sigmoid_oneAPI_io_stream.json new file mode 100644 index 0000000000..718afceede --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_activations_sigmoid_oneAPI_io_stream.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 11948, + "reg": 12860, + "ram": 192, + "dsp": 0, + "mlab": 169 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "9.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_conv2d_oneAPI_Resource_channels_last_same_io_parallel.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_conv2d_oneAPI_Resource_channels_last_same_io_parallel.json new file mode 100644 index 0000000000..7d2da892d4 --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_conv2d_oneAPI_Resource_channels_last_same_io_parallel.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 119991, + "reg": 141466, + "ram": 0, + "dsp": 0, + "mlab": 50422 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "11.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_dense_oneAPI_io_parallel.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_dense_oneAPI_io_parallel.json new file mode 100644 index 0000000000..03c96f2c96 --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_dense_oneAPI_io_parallel.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 413, + "reg": 299, + "ram": 6, + "dsp": 0, + "mlab": 2 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "7.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_dense_oneAPI_io_stream.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_dense_oneAPI_io_stream.json new file mode 100644 index 0000000000..aa12db9fd4 --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_dense_oneAPI_io_stream.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 619, + "reg": 847, + "ram": 8, + "dsp": 0, + "mlab": 7 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "11.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_same_backend_oneAPI.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_same_backend_oneAPI.json new file mode 100644 index 0000000000..f61f95e9aa --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_same_backend_oneAPI.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 8592, + "reg": 8799, + "ram": 0, + "dsp": 0, + "mlab": 438 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "3.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_valid_backend_oneAPI.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_valid_backend_oneAPI.json new file mode 100644 index 0000000000..bb4d6a1bf8 --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_AveragePooling1D_channels_channels_last_padds_valid_backend_oneAPI.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 8544, + "reg": 8751, + "ram": 0, + "dsp": 0, + "mlab": 432 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "3.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_same_backend_oneAPI.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_same_backend_oneAPI.json new file mode 100644 index 0000000000..80fedeb383 --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_same_backend_oneAPI.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 16960, + "reg": 16479, + "ram": 0, + "dsp": 0, + "mlab": 865 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "3.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_valid_backend_oneAPI.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_valid_backend_oneAPI.json new file mode 100644 index 0000000000..b83f05c86a --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_AveragePooling2D_channels_channels_last_padds_valid_backend_oneAPI.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 14827, + "reg": 16047, + "ram": 0, + "dsp": 0, + "mlab": 757 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "3.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_same_backend_oneAPI.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_same_backend_oneAPI.json new file mode 100644 index 0000000000..89a4a0ad50 --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_same_backend_oneAPI.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 6373, + "reg": 8967, + "ram": 0, + "dsp": 0, + "mlab": 0 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "2.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_valid_backend_oneAPI.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_valid_backend_oneAPI.json new file mode 100644 index 0000000000..470dda1e5e --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_MaxPooling1D_channels_channels_last_padds_valid_backend_oneAPI.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 6373, + "reg": 8919, + "ram": 0, + "dsp": 0, + "mlab": 0 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "2.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_same_backend_oneAPI.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_same_backend_oneAPI.json new file mode 100644 index 0000000000..5d6cdf293e --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_same_backend_oneAPI.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 14983, + "reg": 16689, + "ram": 0, + "dsp": 0, + "mlab": 648 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "3.0" + } + } +} diff --git a/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_valid_backend_oneAPI.json b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_valid_backend_oneAPI.json new file mode 100644 index 0000000000..5e2ef14e0c --- /dev/null +++ b/test/pytest/baselines/oneAPI/2025.0.1/hls4mlprj_keras_api_pooling_MaxPooling2D_channels_channels_last_padds_valid_backend_oneAPI.json @@ -0,0 +1,25 @@ +{ + "report": { + "HLS": { + "total": { + "alut": 13120, + "reg": 16230, + "ram": 0, + "dsp": 0, + "mlab": 605 + }, + "available": { + "alut": "974400", + "reg": "1948800", + "ram": "7110", + "dsp": "4510", + "mlab": "24360" + } + }, + "Loop": { + "worstFrequency": "200.0", + "worstII": "1", + "worstLatency": "3.0" + } + } +} diff --git a/test/pytest/ci-template.yml b/test/pytest/ci-template.yml index eb5facd1b4..99bc482dff 100644 --- a/test/pytest/ci-template.yml +++ b/test/pytest/ci-template.yml @@ -1,16 +1,32 @@ .pytest: stage: test - image: gitlab-registry.cern.ch/fastmachinelearning/hls4ml-testing:0.6.1.base + image: gitlab-registry.cern.ch/fastmachinelearning/hls4ml-testing:0.6.2.base tags: - k8s-default before_script: - eval "$(conda shell.bash hook)" - conda activate hls4ml-testing - - source /opt/intel/oneapi/setvars.sh --force - git config --global --add safe.directory /builds/fastmachinelearning/hls4ml - git submodule update --init --recursive hls4ml/templates/catapult/ - if [ $EXAMPLEMODEL == 1 ]; then git submodule update --init example-models; fi - pip install .[da,testing,sr,optimization] + + # set up vivado_hls command + - mkdir -p cmd_vivado_${VIVADO_VERSION} + - echo '#!/bin/bash' > cmd_vivado_${VIVADO_VERSION}/vivado_hls + - echo "apptainer exec --cleanenv --env LANG=C,LC_ALL=C /cvmfs/projects.cern.ch/hls4ml/vivado/${VIVADO_VERSION} vivado_hls \"\$@\"" >> cmd_vivado_${VIVADO_VERSION}/vivado_hls + - chmod +x cmd_vivado_${VIVADO_VERSION}/vivado_hls + - export PATH=$PWD/cmd_vivado_${VIVADO_VERSION}:$PATH + + # set up vitis-run command + - mkdir -p cmd_vitis_${VITIS_VERSION} + - echo '#!/bin/bash' > cmd_vitis_${VITIS_VERSION}/vitis-run + - echo "apptainer exec /cvmfs/projects.cern.ch/hls4ml/vitis/${VITIS_VERSION} vitis-run \"\$@\"" >> cmd_vitis_${VITIS_VERSION}/vitis-run + - chmod +x cmd_vitis_${VITIS_VERSION}/vitis-run + - export PATH=$PWD/cmd_vitis_${VITIS_VERSION}:$PATH + + # Load Intel oneAPI environment variables + - source /opt/intel/oneapi/setvars.sh --force script: - cd test/pytest - pytest $PYTESTFILE -rA --cov-report xml --cov-report term --cov=hls4ml --junitxml=report.xml --randomly-seed=42 --randomly-dont-reorganize --randomly-dont-reset-seed @@ -24,3 +40,4 @@ path: test/pytest/coverage.xml paths: - test/pytest/hls4mlprj*.tar.gz + - test/pytest/synthesis_report_*.json diff --git a/test/pytest/conftest.py b/test/pytest/conftest.py new file mode 100644 index 0000000000..e2da5e4c35 --- /dev/null +++ b/test/pytest/conftest.py @@ -0,0 +1,35 @@ +import os + +import pytest + + +def str_to_bool(val): + return str(val).lower() in ('1', 'true') + + +@pytest.fixture(scope='module') +def synthesis_config(): + """ + Fixture that provides synthesis configuration for tests. + + It gathers: + - Whether synthesis should be run (from the RUN_SYNTHESIS env var) + - Tool versions for each supported backend (from env vars) + - Build arguments specific to each backend toolchain + + """ + return { + 'run_synthesis': str_to_bool(os.getenv('RUN_SYNTHESIS', 'false')), + 'tools_version': { + 'Vivado': os.getenv('VIVADO_VERSION', '2020.1'), + 'Vitis': os.getenv('VITIS_VERSION', '2024.1'), + 'Quartus': os.getenv('QUARTUS_VERSION', 'latest'), + 'oneAPI': os.getenv('ONEAPI_VERSION', '2025.0.1'), + }, + 'build_args': { + 'Vivado': {'csim': False, 'synth': True, 'export': False}, + 'Vitis': {'csim': False, 'synth': True, 'export': False}, + 'Quartus': {'synth': True, 'fpgasynth': False}, + 'oneAPI': {'build_type': 'report', 'run': False}, + }, + } diff --git a/test/pytest/generate_ci_yaml.py b/test/pytest/generate_ci_yaml.py index 3f6a86a585..d441d51dba 100644 --- a/test/pytest/generate_ci_yaml.py +++ b/test/pytest/generate_ci_yaml.py @@ -1,3 +1,4 @@ +import ast import itertools import os from pathlib import Path @@ -9,16 +10,17 @@ in the pytests directory to parallelise the CI jobs. """ - template = """ pytest.{}: extends: .pytest variables: PYTESTFILE: {} EXAMPLEMODEL: {} + VIVADO_VERSION: "2020.1" + VITIS_VERSION: "2024.1" + RUN_SYNTHESIS: "true" """ - n_test_files_per_yml = int(os.environ.get('N_TESTS_PER_YAML', 4)) # Blacklisted tests will be skipped @@ -27,6 +29,30 @@ # Long-running tests will not be bundled with other tests LONGLIST = {'test_hgq_layers', 'test_hgq_players', 'test_qkeras', 'test_pytorch_api'} +# Test files to split by individual test cases +# Value = chunk size per CI job +SPLIT_BY_TEST_CASE = { + 'test_keras_api': 1, +} + + +def collect_test_functions_from_ast(test_file): + """Collect all test function names using AST parsing (no imports).""" + with open(test_file, encoding='utf-8') as f: + tree = ast.parse(f.read(), filename=str(test_file)) + + test_funcs = [] + for node in tree.body: + if isinstance(node, ast.FunctionDef) and node.name.startswith('test'): + test_funcs.append(f'{test_file}::{node.name}') + return test_funcs + + +def batched(iterable, batch_size): + it = iter(iterable) + while batch := list(itertools.islice(it, batch_size)): + yield batch + def path_to_name(test_path): path = Path(test_path) @@ -34,12 +60,6 @@ def path_to_name(test_path): return name -def batched(iterable, chunk_size): - iterator = iter(iterable) - while chunk := tuple(itertools.islice(iterator, chunk_size)): - yield chunk - - def uses_example_model(test_filename): with open(test_filename) as f: content = f.read() @@ -48,7 +68,11 @@ def uses_example_model(test_filename): def generate_test_yaml(test_root='.'): test_root = Path(test_root) - test_paths = [path for path in test_root.glob('**/test_*.py') if path.stem not in (BLACKLIST | LONGLIST)] + test_paths = [ + path + for path in test_root.glob('**/test_*.py') + if path.stem not in (BLACKLIST | LONGLIST | set(SPLIT_BY_TEST_CASE.keys())) + ] need_example_models = [uses_example_model(path) for path in test_paths] idxs = list(range(len(need_example_models))) @@ -75,6 +99,24 @@ def generate_test_yaml(test_root='.'): diff_yml = yaml.safe_load(template.format(name, test_file, int(needs_examples))) yml.update(diff_yml) + test_paths = [path for path in test_root.glob('**/test_*.py') if path.stem in SPLIT_BY_TEST_CASE] + for path in test_paths: + stem = path.stem + name_base = stem.replace('test_', '') + test_file = str(path.relative_to(test_root)) + test_ids = collect_test_functions_from_ast(test_file) + chunk_size = SPLIT_BY_TEST_CASE[stem] + needs_examples = uses_example_model(path) + + for i, batch in enumerate(batched(test_ids, chunk_size)): + job_name = f'{name_base}_part{i}' + test_file_args = ' '.join(batch).strip().replace('\n', ' ') + diff_yml = yaml.safe_load(template.format(job_name, test_file_args, int(needs_examples))) + if yml is None: + yml = diff_yml + else: + yml.update(diff_yml) + return yml diff --git a/test/pytest/synthesis_helpers.py b/test/pytest/synthesis_helpers.py new file mode 100644 index 0000000000..bb43d57544 --- /dev/null +++ b/test/pytest/synthesis_helpers.py @@ -0,0 +1,184 @@ +import json +from pathlib import Path + +import pytest + + +def get_baseline_path(baseline_file_name, backend, version): + """ + Construct the full path to a baseline synthesis report file. + + Args: + baseline_file_name (str): The name of the baseline report file. + backend (str): The backend used (e.g., 'Vivado', 'Vitis'). + version (str): The tool version (e.g., '2020.1'). + + Returns: + Path: A pathlib.Path object pointing to the baseline file location. + """ + return Path(__file__).parent / 'baselines' / backend / version / baseline_file_name + + +def save_report(data, filename): + """ + Save synthesis data to a JSON file in the same directory as this script. + + Args: + data (dict): The synthesis output data to be saved. + filename (str): The filename to write to (e.g., 'synthesis_report_test_x.json'). + + Raises: + OSError: If the file cannot be written. + """ + out_path = Path(__file__).parent / filename + with open(out_path, 'w') as fp: + json.dump(data, fp, indent=4) + + +def compare_dicts(data, baseline, tolerances): + """ + Compare two flat dictionaries with tolerances. + + Args: + report (dict): The generated report dictionary. + baseline (dict): The expected/baseline dictionary. + tolerances (dict): Dictionary of tolerances per key. + + Raises: + AssertionError: If values differ outside the allowed tolerance. + """ + for key, expected in baseline.items(): + actual = data.get(key) + tolerance = tolerances.get(key, 0.01) # Default tolerance of 1% + + try: + actual = float(actual) + expected = float(expected) + assert actual == pytest.approx(expected, rel=tolerance), ( + f'{key}: expected {expected}, got {actual} (tolerance={tolerance * 100}%)' + ) + except ValueError: + assert actual == expected, f"{key}: expected '{expected}', got '{actual}'" + + +def compare_vitis_backend(data, baseline): + """ + Compare reports from Vivado/Vitis backends. + + Args: + data (dict): The current synthesis report. + baseline (dict): The expected synthesis report. + """ + + tolerances = { + 'TargetClockPeriod': 0.01, + 'EstimatedClockPeriod': 0.01, + 'BestLatency': 0.015, + 'WorstLatency': 0.015, + 'IntervalMin': 0.015, + 'IntervalMax': 0.015, + 'FF': 0.1, + 'LUT': 0.1, + 'BRAM_18K': 0.1, + 'DSP': 0.1, + 'URAM': 0.1, + 'AvailableBRAM_18K': 0.1, + 'AvailableDSP': 0.1, + 'AvailableFF': 0.1, + 'AvailableLUT': 0.1, + 'AvailableURAM': 0.1, + } + + compare_dicts(data['CSynthesisReport'], baseline['CSynthesisReport'], tolerances) + + +def compare_oneapi_backend(data, baseline): + """ + Compare reports from the oneAPI backend. + + Args: + data (dict): The current synthesis report. + baseline (dict): The expected synthesis report. + """ + + tolerances = { + 'HLS': { + 'total': {'alut': 0.1, 'reg': 0.1, 'ram': 0.1, 'dsp': 0.1, 'mlab': 0.1}, + 'available': {'alut': 0.1, 'reg': 0.1, 'ram': 0.1, 'dsp': 0.1, 'mlab': 0.1}, + }, + 'Loop': {'worstFrequency': 0.1, 'worstII': 0.1, 'worstLatency': 0.1}, + } + + data = data['report'] + baseline = baseline['report'] + + compare_dicts(data['HLS']['total'], baseline['HLS']['total'], tolerances['HLS']['total']) + compare_dicts(data['HLS']['available'], baseline['HLS']['available'], tolerances['HLS']['available']) + compare_dicts(data['Loop'], baseline['Loop'], tolerances['Loop']) + + +COMPARE_FUNCS = { + 'Vivado': compare_vitis_backend, + 'Vitis': compare_vitis_backend, + 'oneAPI': compare_oneapi_backend, +} + + +EXPECTED_REPORT_KEYS = { + 'Vivado': {'CSynthesisReport'}, + 'Vitis': {'CSynthesisReport'}, + 'oneAPI': {'report'}, +} + + +def run_synthesis_test(config, hls_model, baseline_file_name, backend): + """ + Run HLS synthesis and compare the output with a stored baseline report. + + If synthesis is disabled via the configuration (`run_synthesis=False`), + no synthesis is executed and the method silently returns. + + Args: + config (dict): Test-wide synthesis configuration fixture. + hls_model (object): hls4ml model instance to build and synthesize. + baseline_file_name (str): The name of the baseline file for comparison. + backend (str): The synthesis backend used (e.g., 'Vivado', 'Vitis'). + """ + if not config.get('run_synthesis', False): + return + + # Skip Quartus backend + if backend == 'Quartus': + return + + # Run synthesis + build_args = config['build_args'] + try: + data = hls_model.build(**build_args.get(backend, {})) + except Exception as e: + pytest.fail(f'hls_model.build failed: {e}') + + # Save synthesis report + save_report(data, f'synthesis_report_{baseline_file_name}') + + # Check synthesis report keys + expected_keys = EXPECTED_REPORT_KEYS.get(backend, set()) + assert data and expected_keys.issubset(data.keys()), ( + f'Synthesis failed: Missing expected keys in synthesis report: expected {expected_keys}, got {set(data.keys())}' + ) + + # Load baseline report + version = config['tools_version'].get(backend) + baseline_path = get_baseline_path(baseline_file_name, backend, version) + try: + with open(baseline_path) as fp: + baseline = json.load(fp) + except FileNotFoundError: + pytest.fail(f"Baseline file '{baseline_path}' not found.") + + # Compare report against baseline using backend-specific rules + compare_func = COMPARE_FUNCS.get(backend) + if compare_func is None: + raise AssertionError(f'No comparison function defined for backend: {backend}') + + compare_func(data, baseline) diff --git a/test/pytest/test_keras_api.py b/test/pytest/test_keras_api.py index 3d7511d21f..13cc98bbb1 100644 --- a/test/pytest/test_keras_api.py +++ b/test/pytest/test_keras_api.py @@ -4,6 +4,7 @@ import numpy as np import pytest import tensorflow as tf +from synthesis_helpers import run_synthesis_test from tensorflow.keras.layers import ( ELU, Activation, @@ -27,7 +28,7 @@ @pytest.mark.parametrize('backend', ['Vivado', 'Vitis', 'Quartus', 'oneAPI']) @pytest.mark.parametrize('io_type', ['io_parallel', 'io_stream']) -def test_dense(backend, io_type): +def test_dense(backend, io_type, synthesis_config): model = tf.keras.models.Sequential() model.add( Dense( @@ -53,6 +54,7 @@ def test_dense(backend, io_type): config = hls4ml.utils.config_from_keras_model(model) output_dir = str(test_root_path / f'hls4mlprj_keras_api_dense_{backend}_{io_type}') + baseline_file_name = f'hls4mlprj_keras_api_dense_{backend}_{io_type}.json' hls_model = hls4ml.converters.convert_from_keras_model( model, hls_config=config, output_dir=output_dir, backend=backend, io_type=io_type @@ -74,6 +76,8 @@ def test_dense(backend, io_type): assert list(hls_model.get_layers())[2].attributes['activation'] == str(model.layers[1].activation).split()[1] assert list(hls_model.get_layers())[1].attributes['activation'] == str(model.layers[0].activation).split()[1] + run_synthesis_test(config=synthesis_config, hls_model=hls_model, baseline_file_name=baseline_file_name, backend=backend) + # TODO: add ThresholdedReLU test when it can be made to pass # https://github.com/fastmachinelearning/hls4ml/issues/376 @@ -92,7 +96,7 @@ def test_dense(backend, io_type): # ThresholdedReLU(theta=1.0)]) @pytest.mark.parametrize('backend', ['Vivado', 'Vitis', 'Quartus', 'oneAPI']) @pytest.mark.parametrize('io_type', ['io_parallel', 'io_stream']) -def test_activations(activation_function, backend, io_type): +def test_activations(activation_function, backend, io_type, synthesis_config): model = tf.keras.models.Sequential() model.add(Dense(64, input_shape=(1,), name='Dense', kernel_initializer='lecun_uniform', kernel_regularizer=None)) model.add(activation_function) @@ -102,6 +106,8 @@ def test_activations(activation_function, backend, io_type): keras_prediction = model.predict(X_input) config = hls4ml.utils.config_from_keras_model(model) output_dir = str(test_root_path / f'hls4mlprj_keras_api_activations_{activation_function.name}_{backend}_{io_type}') + baseline_file_name = f'hls4mlprj_keras_api_activations_{activation_function.name}_{backend}_{io_type}.json' + hls_model = hls4ml.converters.convert_from_keras_model( model, hls_config=config, output_dir=output_dir, backend=backend, io_type=io_type ) @@ -114,6 +120,8 @@ def test_activations(activation_function, backend, io_type): assert list(hls_model.get_layers())[2].attributes['class_name'] == activation_function.__class__.__name__ + run_synthesis_test(config=synthesis_config, hls_model=hls_model, baseline_file_name=baseline_file_name, backend=backend) + padds_options = ['same', 'valid'] @@ -131,7 +139,7 @@ def test_activations(activation_function, backend, io_type): ], ) @pytest.mark.parametrize('io_type', ['io_parallel', 'io_stream']) -def test_conv1d(padds, backend, strategy, io_type): +def test_conv1d(padds, backend, strategy, io_type, synthesis_config): model = tf.keras.models.Sequential() input_shape = (10, 128, 4) model.add( @@ -156,6 +164,7 @@ def test_conv1d(padds, backend, strategy, io_type): config = hls4ml.utils.config_from_keras_model(model) config['Model']['Strategy'] = strategy output_dir = str(test_root_path / f'hls4mlprj_keras_api_conv1d_{padds}_{backend}_{strategy}_{io_type}') + hls_model = hls4ml.converters.convert_from_keras_model( model, hls_config=config, output_dir=output_dir, backend=backend, io_type=io_type ) @@ -215,7 +224,7 @@ def test_conv1d(padds, backend, strategy, io_type): ], ) @pytest.mark.parametrize('io_type', ['io_parallel', 'io_stream']) -def test_conv2d(chans, padds, backend, strategy, io_type): +def test_conv2d(chans, padds, backend, strategy, io_type, synthesis_config): model = tf.keras.models.Sequential() input_shape = (28, 28, 3) model.add( @@ -238,6 +247,8 @@ def test_conv2d(chans, padds, backend, strategy, io_type): config = hls4ml.utils.config_from_keras_model(model) config['Model']['Strategy'] = strategy output_dir = str(test_root_path / f'hls4mlprj_keras_api_conv2d_{backend}_{strategy}_{chans}_{padds}_{io_type}') + baseline_file_name = f'hls4mlprj_keras_api_conv2d_{backend}_{strategy}_{chans}_{padds}_{io_type}.json' + hls_model = hls4ml.converters.convert_from_keras_model( model, hls_config=config, output_dir=output_dir, backend=backend, io_type=io_type ) @@ -316,11 +327,23 @@ def test_conv2d(chans, padds, backend, strategy, io_type): assert list(hls_model.get_layers())[1].attributes['pad_left'] == 0 assert list(hls_model.get_layers())[1].attributes['pad_right'] == 0 + if ( + (backend == 'Vivado' and strategy == 'Resource' and io_type == 'io_parallel' and padds == 'same') + or (backend == 'Vitis' and strategy == 'Resource' and io_type == 'io_parallel' and padds == 'same') + or (backend == 'oneAPI' and strategy == 'Resource' and io_type == 'io_parallel' and padds == 'same') + ): + run_synthesis_test( + config=synthesis_config, + hls_model=hls_model, + baseline_file_name=baseline_file_name, + backend=backend, + ) + # Currently only Vivado and Vitis is supported for io_stream. @pytest.mark.parametrize('backend', ['Vivado', 'Vitis']) @pytest.mark.parametrize('io_type', ['io_stream']) -def test_depthwise2d(backend, io_type): +def test_depthwise2d(backend, io_type, synthesis_config): """ Test proper handling of DepthwiseConv2D """ @@ -334,6 +357,8 @@ def test_depthwise2d(backend, io_type): model, granularity='name', default_precision='fixed<32,12>', backend=backend ) output_dir = str(test_root_path / f'hls4mlprj_keras_api_depthwiseconv2d_{backend}_{io_type}') + baseline_file_name = f'hls4mlprj_keras_api_depthwiseconv2d_{backend}_{io_type}.json' + hls_model = hls4ml.converters.convert_from_keras_model( model, hls_config=config, output_dir=output_dir, backend=backend, io_type=io_type ) @@ -344,11 +369,13 @@ def test_depthwise2d(backend, io_type): np.testing.assert_allclose(y_qkeras, y_hls4ml.reshape(y_qkeras.shape), rtol=1e-2, atol=0.01) + run_synthesis_test(config=synthesis_config, hls_model=hls_model, baseline_file_name=baseline_file_name, backend=backend) + # Currently only Vivado and Vitis is supported for io_stream. @pytest.mark.parametrize('backend', ['Vivado', 'Vitis']) @pytest.mark.parametrize('io_type', ['io_stream']) -def test_depthwise1d(backend, io_type): +def test_depthwise1d(backend, io_type, synthesis_config): """ Test proper handling of DepthwiseConv1D. """ @@ -360,6 +387,8 @@ def test_depthwise1d(backend, io_type): config = hls4ml.utils.config_from_keras_model(model, granularity='name', backend=backend) output_dir = str(test_root_path / f'hls4mlprj_keras_api_depthwiseconv1d_{backend}_{io_type}') + baseline_file_name = f'hls4mlprj_keras_api_depthwiseconv1d_{backend}_{io_type}.json' + hls_model = hls4ml.converters.convert_from_keras_model( model, hls_config=config, output_dir=output_dir, backend=backend, io_type=io_type ) @@ -370,6 +399,8 @@ def test_depthwise1d(backend, io_type): np.testing.assert_allclose(y_qkeras, y_hls4ml.reshape(y_qkeras.shape), rtol=1e-2, atol=0.01) + run_synthesis_test(config=synthesis_config, hls_model=hls_model, baseline_file_name=baseline_file_name, backend=backend) + pooling_layers = [MaxPooling1D, MaxPooling2D, AveragePooling1D, AveragePooling2D] @@ -378,7 +409,7 @@ def test_depthwise1d(backend, io_type): @pytest.mark.parametrize('padds', padds_options) @pytest.mark.parametrize('chans', chans_options) @pytest.mark.parametrize('backend', ['Vivado', 'Vitis', 'Quartus', 'oneAPI']) -def test_pooling(pooling, padds, chans, backend): +def test_pooling(pooling, padds, chans, backend, synthesis_config): assert '1D' in pooling.__name__ or '2D' in pooling.__name__ input_shape = (18, 15, 3) if '2D' in pooling.__name__ else (121, 3) @@ -392,6 +423,10 @@ def test_pooling(pooling, padds, chans, backend): output_dir = str( test_root_path / f'hls4mlprj_keras_api_pooling_{pooling.__name__}_channels_{chans}_padds_{padds}_backend_{backend}' ) + baseline_file_name = ( + f'hls4mlprj_keras_api_pooling_{pooling.__name__}_channels_{chans}_padds_{padds}_backend_{backend}.json' + ) + hls_model = hls4ml.converters.convert_from_keras_model( keras_model, hls_config=hls_cfg, output_dir=output_dir, backend=backend ) @@ -495,3 +530,5 @@ def test_pooling(pooling, padds, chans, backend): assert hls_pool.attributes['n_out'] == out_valid assert hls_pool.attributes['pad_left'] == 0 assert hls_pool.attributes['pad_right'] == 0 + + run_synthesis_test(config=synthesis_config, hls_model=hls_model, baseline_file_name=baseline_file_name, backend=backend)