Loading ci/complexity_measurements/genWebpageData.py +17 −13 Original line number Diff line number Diff line Loading @@ -201,10 +201,10 @@ JS_FILE_TEMPLATE = """var {var_name} = {{ FILE_DATA = { "wmops": { "var_name": "Graphs_WMOPS", "var_name": "Graphs_WMOPS{}", "elem_name": "wmops_worstcase", "description": "Worst Case WMOPS", "filename": "graphs_wmops_flc_{}.js", "filename": "graphs_wmops_flc{}.js", "references": { "3xEVS": REF_WMOPS_3EVS, "6xEVS": REF_WMOPS_6EVS, Loading @@ -212,28 +212,28 @@ FILE_DATA = { }, }, "rom": { "var_name": "Graphs_ROM", "var_name": "Graphs_ROM{}", "elem_name": "rom_worstcase", "description": "ROM", "filename": "graphs_rom_flc_{}.js", "filename": "graphs_rom_flc{}.js", "references": { "requirementRom": 0, }, }, "ram": { "var_name": "Graphs_RAM", "var_name": "Graphs_RAM{}", "elem_name": "ram_worstcase", "description": "Worst Case RAM", "filename": "graphs_ram_flc_{}.js", "filename": "graphs_ram_flc{}.js", "references": { "requirementRam": 0, }, }, "wmops_per_op": { "var_name": "Graphs_WMOPS_perOP", "var_name": "Graphs_WMOPS_perOP{}", "elem_name": "wmops_worstcase_per_op", "description": "Worst Case WMOPS per OP", "filename": "graphs_wmops_flc_perOP_{}.js", "filename": "graphs_wmops_flc_perOP{}.js", "references": {}, }, } Loading @@ -253,6 +253,10 @@ def main( FILE_DATA["ram"]["log_file"] = ram_log for x, data in FILE_DATA.items(): if data["log_file"] is None: print(f"Skipping '{x}' because no logfile given") continue with open(data["log_file"]) as f: log_lines = f.readlines() Loading Loading @@ -284,7 +288,7 @@ def main( ticks = ",\n".join(ticks) js_string = JS_FILE_TEMPLATE.format( var_name=data["var_name"], var_name=data["var_name"].format(suffix), elem_name=data["elem_name"], description=data["description"], runs=runs, Loading Loading @@ -449,10 +453,10 @@ if __name__ == "__main__": parser = argparse.ArgumentParser( description="Generate Javascript code for the complexity webpage" ) parser.add_argument("wmops_log") parser.add_argument("wmops_per_op_log") parser.add_argument("rom_log") parser.add_argument("ram_log") parser.add_argument("--wmops_log", default=None) parser.add_argument("--wmops_per_op_log", default=None) parser.add_argument("--rom_log", default=None) parser.add_argument("--ram_log", default=None) parser.add_argument("--wmops_per_op_log_for_comparison", default=None) parser.add_argument("--suffix", default="") Loading ci/complexity_measurements/getWmops.sh +31 −29 Original line number Diff line number Diff line Loading @@ -96,29 +96,24 @@ fi ./scripts/IvasBuildAndRunChecks.py $mode_arg_script $repo_arg_script -p $config_file --checks COMPLEXITY --create_complexity_tables ${wmopsFilenameFlc} -C $ivas_format $mode_arg -f ${ep} --oc $output_format ret_val=$? # TODO: only split wmops and ram files ./ci/complexity_measurements/split_by_levels.py $(ls ${wmopsFilenameFlc}*.csv) split_suffixes=("rate_sw" "level_1" "level_2" "level_3") # for wmops and RAM graphs, split by levels split_suffixes=("_rate_sw" "_level_1" "_level_2" "_level_3") for suffix in "${split_suffixes[@]}"; do echo "$suffix" wmopsFilenameFlc_split="${wmopsFilenameFlc}_WMOPS_${suffix}.csv" wmopsFilenameFlcLast_split="${wmopsFilenameFlcLast}_WMOPS_${suffix}.csv" log_wmops_all_split="${destDir}/wmops/log_wmops_all_${suffix}.txt" latest_wmops_split="${wmopsFilenameFlcDir}/latest_WMOPS_${suffix}.csv" heapFilenameFlc_split="${wmopsFilenameFlc}_HEAP_${suffix}.csv" stackFilenameFlc_split="${wmopsFilenameFlc}_STACK_${suffix}.csv" ramFilenameFlc_split="${wmopsFilenameFlc}_RAM_${suffix}.csv" ramFilenameFlcLast_split="${wmopsFilenameFlcLast}_RAM_${suffix}.csv" log_ram_all_split="${destDir}/wmops/log_ram_all_${suffix}.txt" wmopsFilenameFlc_split="${wmopsFilenameFlc}_WMOPS${suffix}.csv" wmopsFilenameFlcLast_split="${wmopsFilenameFlcLast}_WMOPS${suffix}.csv" log_wmops_all_split="${destDir}/wmops/log_wmops_all${suffix}.txt" latest_wmops_split="${wmopsFilenameFlcDir}/latest_WMOPS${suffix}.csv" promFilenameFlc_split="${wmopsFilenameFlc}_PROM_${suffix}.csv" tromFilenameFlc_split="${wmopsFilenameFlc}_TROM_${suffix}.csv" romFilenameFlc_split="${wmopsFilenameFlc}_ROM_${suffix}.csv" romFilenameFlcLast_split="${wmopsFilenameFlcLast}_ROM_${suffix}.csv" log_rom_all_split="${destDir}/wmops/log_rom_all_${suffix}.txt" heapFilenameFlc_split="${wmopsFilenameFlc}_HEAP${suffix}.csv" stackFilenameFlc_split="${wmopsFilenameFlc}_STACK${suffix}.csv" ramFilenameFlc_split="${wmopsFilenameFlc}_RAM${suffix}.csv" ramFilenameFlcLast_split="${wmopsFilenameFlcLast}_RAM${suffix}.csv" log_ram_all_split="${destDir}/wmops/log_ram_all${suffix}.txt" # get the info on worst-case operating point: WMOPS number, enc-operating mode, dec-operating mode ### WMOPS Loading @@ -132,20 +127,27 @@ for suffix in "${split_suffixes[@]}"; do ${scriptDir}/mergeNewsletterRam.py ${heapFilenameFlc_split} ${stackFilenameFlc_split} >${ramFilenameFlc_split} ${scriptDir}/parseNewsletterRam.py ${heapFilenameFlc_split} ${stackFilenameFlc_split} ${ramFilenameFlcLast_split} ${commit_sha} ${shortDate} ${fullDate} >>${log_ram_all_split} # generate javascript code from split log files python3 ci/complexity_measurements/genWebpageData.py --wmops_log ${log_wmops_all_split} --ram_log ${log_ram_all_split} --suffix ${suffix} done # for ROM and wmops_per_op graphs, no split is done promFilenameFlc="${wmopsFilenameFlc}_PROM.csv" tromFilenameFlc="${wmopsFilenameFlc}_TROM.csv" romFilenameFlc="${wmopsFilenameFlc}_ROM.csv" romFilenameFlcLast="${wmopsFilenameFlcLast}_ROM.csv" log_rom_all="${destDir}/wmops/log_rom_all.txt" ### ROM ${scriptDir}/mergeNewsletterRom.py ${promFilenameFlc_split} ${tromFilenameFlc_split} >${romFilenameFlc_split} ${scriptDir}/parseNewsletterRom.py ${promFilenameFlc_split} ${tromFilenameFlc_split} ${romFilenameFlcLast_split} ${commit_sha} ${shortDate} ${fullDate} >>${log_rom_all_split} ${scriptDir}/mergeNewsletterRom.py ${promFilenameFlc} ${tromFilenameFlc} >${romFilenameFlc} ${scriptDir}/parseNewsletterRom.py ${promFilenameFlc} ${tromFilenameFlc} ${romFilenameFlcLast} ${commit_sha} ${shortDate} ${fullDate} >>${log_rom_all} # generate javascript code from log files # pass the ref log for comparison only if arg is given if [ "$wmops_ref_logfile" != "" ]; then python3 ci/complexity_measurements/genWebpageData.py ${log_wmops_all_split} ${wmopsFilenameFlc_split} ${log_rom_all_split} ${log_ram_all_split} --suffix ${suffix} --wmops_per_op_log_for_comparison $wmops_ref_logfile python3 ci/complexity_measurements/genWebpageData.py --wmops_per_op_log ${wmopsFilenameFlc_split} --rom_log ${log_rom_all_split} --wmops_per_op_log_for_comparison $wmops_ref_logfile else python3 ci/complexity_measurements/genWebpageData.py ${log_wmops_all_split} ${wmopsFilenameFlc_split} ${log_rom_all_split} ${log_ram_all_split} --suffix ${suffix} python3 ci/complexity_measurements/genWebpageData.py --wmops_per_op_log ${wmopsFilenameFlc_split} --rom_log ${log_rom_all_split} fi done python3 ${scriptDir}/check_for_changes.py ${destDir}/wmops/log_wmops_all.txt ${destDir}/wmops/log_ram_all.txt ${destDir}/wmops/log_rom_all.txt if [ "$?" != "0" ]; then ret_val=1 Loading Loading
ci/complexity_measurements/genWebpageData.py +17 −13 Original line number Diff line number Diff line Loading @@ -201,10 +201,10 @@ JS_FILE_TEMPLATE = """var {var_name} = {{ FILE_DATA = { "wmops": { "var_name": "Graphs_WMOPS", "var_name": "Graphs_WMOPS{}", "elem_name": "wmops_worstcase", "description": "Worst Case WMOPS", "filename": "graphs_wmops_flc_{}.js", "filename": "graphs_wmops_flc{}.js", "references": { "3xEVS": REF_WMOPS_3EVS, "6xEVS": REF_WMOPS_6EVS, Loading @@ -212,28 +212,28 @@ FILE_DATA = { }, }, "rom": { "var_name": "Graphs_ROM", "var_name": "Graphs_ROM{}", "elem_name": "rom_worstcase", "description": "ROM", "filename": "graphs_rom_flc_{}.js", "filename": "graphs_rom_flc{}.js", "references": { "requirementRom": 0, }, }, "ram": { "var_name": "Graphs_RAM", "var_name": "Graphs_RAM{}", "elem_name": "ram_worstcase", "description": "Worst Case RAM", "filename": "graphs_ram_flc_{}.js", "filename": "graphs_ram_flc{}.js", "references": { "requirementRam": 0, }, }, "wmops_per_op": { "var_name": "Graphs_WMOPS_perOP", "var_name": "Graphs_WMOPS_perOP{}", "elem_name": "wmops_worstcase_per_op", "description": "Worst Case WMOPS per OP", "filename": "graphs_wmops_flc_perOP_{}.js", "filename": "graphs_wmops_flc_perOP{}.js", "references": {}, }, } Loading @@ -253,6 +253,10 @@ def main( FILE_DATA["ram"]["log_file"] = ram_log for x, data in FILE_DATA.items(): if data["log_file"] is None: print(f"Skipping '{x}' because no logfile given") continue with open(data["log_file"]) as f: log_lines = f.readlines() Loading Loading @@ -284,7 +288,7 @@ def main( ticks = ",\n".join(ticks) js_string = JS_FILE_TEMPLATE.format( var_name=data["var_name"], var_name=data["var_name"].format(suffix), elem_name=data["elem_name"], description=data["description"], runs=runs, Loading Loading @@ -449,10 +453,10 @@ if __name__ == "__main__": parser = argparse.ArgumentParser( description="Generate Javascript code for the complexity webpage" ) parser.add_argument("wmops_log") parser.add_argument("wmops_per_op_log") parser.add_argument("rom_log") parser.add_argument("ram_log") parser.add_argument("--wmops_log", default=None) parser.add_argument("--wmops_per_op_log", default=None) parser.add_argument("--rom_log", default=None) parser.add_argument("--ram_log", default=None) parser.add_argument("--wmops_per_op_log_for_comparison", default=None) parser.add_argument("--suffix", default="") Loading
ci/complexity_measurements/getWmops.sh +31 −29 Original line number Diff line number Diff line Loading @@ -96,29 +96,24 @@ fi ./scripts/IvasBuildAndRunChecks.py $mode_arg_script $repo_arg_script -p $config_file --checks COMPLEXITY --create_complexity_tables ${wmopsFilenameFlc} -C $ivas_format $mode_arg -f ${ep} --oc $output_format ret_val=$? # TODO: only split wmops and ram files ./ci/complexity_measurements/split_by_levels.py $(ls ${wmopsFilenameFlc}*.csv) split_suffixes=("rate_sw" "level_1" "level_2" "level_3") # for wmops and RAM graphs, split by levels split_suffixes=("_rate_sw" "_level_1" "_level_2" "_level_3") for suffix in "${split_suffixes[@]}"; do echo "$suffix" wmopsFilenameFlc_split="${wmopsFilenameFlc}_WMOPS_${suffix}.csv" wmopsFilenameFlcLast_split="${wmopsFilenameFlcLast}_WMOPS_${suffix}.csv" log_wmops_all_split="${destDir}/wmops/log_wmops_all_${suffix}.txt" latest_wmops_split="${wmopsFilenameFlcDir}/latest_WMOPS_${suffix}.csv" heapFilenameFlc_split="${wmopsFilenameFlc}_HEAP_${suffix}.csv" stackFilenameFlc_split="${wmopsFilenameFlc}_STACK_${suffix}.csv" ramFilenameFlc_split="${wmopsFilenameFlc}_RAM_${suffix}.csv" ramFilenameFlcLast_split="${wmopsFilenameFlcLast}_RAM_${suffix}.csv" log_ram_all_split="${destDir}/wmops/log_ram_all_${suffix}.txt" wmopsFilenameFlc_split="${wmopsFilenameFlc}_WMOPS${suffix}.csv" wmopsFilenameFlcLast_split="${wmopsFilenameFlcLast}_WMOPS${suffix}.csv" log_wmops_all_split="${destDir}/wmops/log_wmops_all${suffix}.txt" latest_wmops_split="${wmopsFilenameFlcDir}/latest_WMOPS${suffix}.csv" promFilenameFlc_split="${wmopsFilenameFlc}_PROM_${suffix}.csv" tromFilenameFlc_split="${wmopsFilenameFlc}_TROM_${suffix}.csv" romFilenameFlc_split="${wmopsFilenameFlc}_ROM_${suffix}.csv" romFilenameFlcLast_split="${wmopsFilenameFlcLast}_ROM_${suffix}.csv" log_rom_all_split="${destDir}/wmops/log_rom_all_${suffix}.txt" heapFilenameFlc_split="${wmopsFilenameFlc}_HEAP${suffix}.csv" stackFilenameFlc_split="${wmopsFilenameFlc}_STACK${suffix}.csv" ramFilenameFlc_split="${wmopsFilenameFlc}_RAM${suffix}.csv" ramFilenameFlcLast_split="${wmopsFilenameFlcLast}_RAM${suffix}.csv" log_ram_all_split="${destDir}/wmops/log_ram_all${suffix}.txt" # get the info on worst-case operating point: WMOPS number, enc-operating mode, dec-operating mode ### WMOPS Loading @@ -132,20 +127,27 @@ for suffix in "${split_suffixes[@]}"; do ${scriptDir}/mergeNewsletterRam.py ${heapFilenameFlc_split} ${stackFilenameFlc_split} >${ramFilenameFlc_split} ${scriptDir}/parseNewsletterRam.py ${heapFilenameFlc_split} ${stackFilenameFlc_split} ${ramFilenameFlcLast_split} ${commit_sha} ${shortDate} ${fullDate} >>${log_ram_all_split} # generate javascript code from split log files python3 ci/complexity_measurements/genWebpageData.py --wmops_log ${log_wmops_all_split} --ram_log ${log_ram_all_split} --suffix ${suffix} done # for ROM and wmops_per_op graphs, no split is done promFilenameFlc="${wmopsFilenameFlc}_PROM.csv" tromFilenameFlc="${wmopsFilenameFlc}_TROM.csv" romFilenameFlc="${wmopsFilenameFlc}_ROM.csv" romFilenameFlcLast="${wmopsFilenameFlcLast}_ROM.csv" log_rom_all="${destDir}/wmops/log_rom_all.txt" ### ROM ${scriptDir}/mergeNewsletterRom.py ${promFilenameFlc_split} ${tromFilenameFlc_split} >${romFilenameFlc_split} ${scriptDir}/parseNewsletterRom.py ${promFilenameFlc_split} ${tromFilenameFlc_split} ${romFilenameFlcLast_split} ${commit_sha} ${shortDate} ${fullDate} >>${log_rom_all_split} ${scriptDir}/mergeNewsletterRom.py ${promFilenameFlc} ${tromFilenameFlc} >${romFilenameFlc} ${scriptDir}/parseNewsletterRom.py ${promFilenameFlc} ${tromFilenameFlc} ${romFilenameFlcLast} ${commit_sha} ${shortDate} ${fullDate} >>${log_rom_all} # generate javascript code from log files # pass the ref log for comparison only if arg is given if [ "$wmops_ref_logfile" != "" ]; then python3 ci/complexity_measurements/genWebpageData.py ${log_wmops_all_split} ${wmopsFilenameFlc_split} ${log_rom_all_split} ${log_ram_all_split} --suffix ${suffix} --wmops_per_op_log_for_comparison $wmops_ref_logfile python3 ci/complexity_measurements/genWebpageData.py --wmops_per_op_log ${wmopsFilenameFlc_split} --rom_log ${log_rom_all_split} --wmops_per_op_log_for_comparison $wmops_ref_logfile else python3 ci/complexity_measurements/genWebpageData.py ${log_wmops_all_split} ${wmopsFilenameFlc_split} ${log_rom_all_split} ${log_ram_all_split} --suffix ${suffix} python3 ci/complexity_measurements/genWebpageData.py --wmops_per_op_log ${wmopsFilenameFlc_split} --rom_log ${log_rom_all_split} fi done python3 ${scriptDir}/check_for_changes.py ${destDir}/wmops/log_wmops_all.txt ${destDir}/wmops/log_ram_all.txt ${destDir}/wmops/log_rom_all.txt if [ "$?" != "0" ]; then ret_val=1 Loading