utils/ryzenai/generate_operators_baseline.py (37 lines of code) (raw):
# Copyright 2024 The HuggingFace Team. All rights reserved.
# Licensed under the MIT License.
import argparse
import json
import os
def parse_json(json_path):
with open(json_path, "r") as json_file:
data = json.load(json_file)
result = {"all": 0, "dpu": 0, "cpu": 0}
for entry in data["deviceStat"]:
result[entry["name"].lower()] = entry["nodeNum"]
return result
def process_folder(input_folder):
result_dict = {}
for folder_name in os.listdir(input_folder):
folder_path = os.path.join(input_folder, folder_name)
if os.path.isdir(folder_path):
json_path = os.path.join(folder_path, "vitisai_ep_report.json")
if os.path.exists(json_path):
model_name = folder_name.lower()
result_dict[model_name] = parse_json(json_path)
return result_dict
def main():
parser = argparse.ArgumentParser(description="Process JSON files in folders.")
parser.add_argument("input_folder", help="Path to the input folder")
parser.add_argument("output_json", help="Path to the output JSON file")
args = parser.parse_args()
input_folder = args.input_folder
output_json = args.output_json
if not os.path.exists(input_folder):
print(f"Error: Input folder '{input_folder}' does not exist.")
return
result_dict = process_folder(input_folder)
sorted_result = dict(sorted(result_dict.items()))
with open(output_json, "w") as output_file:
json.dump(sorted_result, output_file, indent=2)
print(f"Processed successfully. Result saved to '{output_json}'.")
if __name__ == "__main__":
main()