benchmarking/profilers/utilities.py (23 lines of code) (raw):

#!/usr/bin/env python ############################################################################## # Copyright 2021-present, Facebook, Inc. # All rights reserved. # # This source code is licensed under the license found in the # LICENSE file in the root directory of this source tree. ############################################################################## import os from typing import Dict, Mapping from uuid import uuid4 from bridge.file_storage.upload_files.file_uploader import FileUploader from utils.custom_logger import getLogger def generate_perf_filename(model_name="benchmark", hash=None): """Given the provided model name and optional hash, generate a unique base filename.""" if hash is None: hash = uuid4() return f"{model_name}_perf_{hash}" def upload_profiling_reports(files: Mapping[str, str]) -> Dict: """ Upload to aibench profiling reports manifold bucket. Accepts dict of key -> local file path, uploads using file basename and returns meta dict of key -> manifold_url. """ meta = {} profiling_reports_uploader = FileUploader("profiling_reports").get_uploader() for key, file in files.items(): if not os.path.isfile(file): raise FileNotFoundError(f"File {file} does not exist.") try: url = profiling_reports_uploader.upload_file(file) meta.update({key: url}) except Exception as e: getLogger().exception( f"Warning: could not upload {key}: {file}. Skipping.\nException: {e}" ) return meta