diff --git a/README.md b/README.md index 653b08c..5c125a1 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@
-# InfiniMetrics +# InfiniBench **An InfiniTensor-Featured Comprehensive Accelerator Evaluation Framework** -[![Format Check](https://img.shields.io/badge/Format_Check-passing-success)](https://github.com/InfiniTensor/InfiniMetrics) -[![Issues](https://img.shields.io/github/issues/InfiniTensor/InfiniMetrics)](https://github.com/InfiniTensor/InfiniMetrics/issues) -[![Pull Requests](https://img.shields.io/github/issues-pr/InfiniTensor/InfiniMetrics)](https://github.com/InfiniTensor/InfiniMetrics/pulls) -[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/InfiniTensor/InfiniMetrics/blob/master/LICENSE) +[![Format Check](https://img.shields.io/badge/Format_Check-passing-success)](https://github.com/InfiniTensor/InfiniBench) +[![Issues](https://img.shields.io/github/issues/InfiniTensor/InfiniBench)](https://github.com/InfiniTensor/InfiniBench/issues) +[![Pull Requests](https://img.shields.io/github/issues-pr/InfiniTensor/InfiniBench)](https://github.com/InfiniTensor/InfiniBench/pulls) +[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/InfiniTensor/InfiniBench/blob/master/LICENSE) A unified, modular testing framework for comprehensive performance evaluation of accelerator hardware and software stacks. @@ -17,7 +17,7 @@ A unified, modular testing framework for comprehensive performance evaluation of ## 🎯 Overview -**InfiniMetrics** provides standardized interfaces for benchmarking across multiple layers: +**InfiniBench** provides standardized interfaces for benchmarking across multiple layers: - **Hardware-Level**: GPU memory bandwidth, cache performance, compute capabilities - **Operator-Level**: Individual operation performance (FLOPS, latency) diff --git a/README_CN.md b/README_CN.md index 1bef0ce..d9cd8fe 100644 --- a/README_CN.md +++ b/README_CN.md @@ -1,13 +1,13 @@ -# InfiniMetrics +# InfiniBench
**面向 InfiniTensor 的全面加速器评估框架** -[![Format Check](https://img.shields.io/badge/Format_Check-passing-success)](https://github.com/InfiniTensor/InfiniMetrics) -[![Issues](https://img.shields.io/github/issues/InfiniTensor/InfiniMetrics)](https://github.com/InfiniTensor/InfiniMetrics/issues) -[![Pull Requests](https://img.shields.io/github/issues-pr/InfiniTensor/InfiniMetrics)](https://github.com/InfiniTensor/InfiniMetrics/pulls) -[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/InfiniTensor/InfiniMetrics/blob/master/LICENSE) +[![Format Check](https://img.shields.io/badge/Format_Check-passing-success)](https://github.com/InfiniTensor/InfiniBench) +[![Issues](https://img.shields.io/github/issues/InfiniTensor/InfiniBench)](https://github.com/InfiniTensor/InfiniBench/issues) +[![Pull Requests](https://img.shields.io/github/issues-pr/InfiniTensor/InfiniBench)](https://github.com/InfiniTensor/InfiniBench/pulls) +[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/InfiniTensor/InfiniBench/blob/master/LICENSE) 一个统一、模块化的测试框架,专为加速卡和软件栈的全面性能评估而设计。 @@ -17,7 +17,7 @@ ## 🎯 项目概述 -**InfiniMetrics** 提供了标准化的接口,用于在多个层次进行基准测试: +**InfiniBench** 提供了标准化的接口,用于在多个层次进行基准测试: - **硬件层**:GPU 内存带宽、缓存性能、计算能力 - **算子层**:单个操作的性能(FLOPS、延迟) diff --git a/dashboard/app.py b/dashboard/app.py index 8e7efc8..2fd813b 100644 --- a/dashboard/app.py +++ b/dashboard/app.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Main Streamlit application for InfiniMetrics dashboard.""" +"""Main Streamlit application for InfiniBench dashboard.""" import streamlit as st import pandas as pd @@ -8,19 +8,19 @@ import sys from datetime import datetime from typing import Optional -from infinimetrics.common.constants import AcceleratorType +from infinibench.common.constants import AcceleratorType # Add project root to path project_root = Path(__file__).parent sys.path.append(str(project_root)) from components.header import render_header -from utils.data_loader import InfiniMetricsDataLoader +from utils.data_loader import InfiniBenchDataLoader from common import show_data_source_info # Page configuration st.set_page_config( - page_title="InfiniMetrics Dashboard", + page_title="InfiniBench Dashboard", page_icon="🏭", layout="wide", initial_sidebar_state="expanded", @@ -28,7 +28,7 @@ # Initialize session state if "data_loader" not in st.session_state: - st.session_state.data_loader = InfiniMetricsDataLoader() + st.session_state.data_loader = InfiniBenchDataLoader() if "selected_accelerators" not in st.session_state: st.session_state.selected_accelerators = [] if "use_mongodb" not in st.session_state: @@ -69,11 +69,11 @@ def main(): if use_mongodb != st.session_state.use_mongodb: st.session_state.use_mongodb = use_mongodb if use_mongodb: - st.session_state.data_loader = InfiniMetricsDataLoader( + st.session_state.data_loader = InfiniBenchDataLoader( use_mongodb=True, fallback_to_files=True ) else: - st.session_state.data_loader = InfiniMetricsDataLoader() + st.session_state.data_loader = InfiniBenchDataLoader() show_data_source_info(style="sidebar") st.markdown("---") @@ -85,7 +85,7 @@ def main(): if not use_mongodb and results_dir != str( st.session_state.data_loader.results_dir ): - st.session_state.data_loader = InfiniMetricsDataLoader(results_dir) + st.session_state.data_loader = InfiniBenchDataLoader(results_dir) auto_refresh = st.toggle("自动刷新", value=False) if auto_refresh: @@ -136,7 +136,7 @@ def render_dashboard(run_id_filter: str): font-size: 1.3em; line-height: 1.6; "> - InfiniMetrics Dashboard 用于统一展示 + InfiniBench Dashboard 用于统一展示 通信(NCCL / 集合通信)训练(Training / 分布式训练)推理(直接推理 / 服务性能)、 diff --git a/dashboard/common.py b/dashboard/common.py index 451c932..e6bd289 100644 --- a/dashboard/common.py +++ b/dashboard/common.py @@ -27,9 +27,9 @@ def init_page(page_title: str, page_icon: str): # Initialize DataLoader (respect MongoDB setting) if "data_loader" not in st.session_state: - from utils.data_loader import InfiniMetricsDataLoader + from utils.data_loader import InfiniBenchDataLoader - st.session_state.data_loader = InfiniMetricsDataLoader( + st.session_state.data_loader = InfiniBenchDataLoader( use_mongodb=st.session_state.use_mongodb, fallback_to_files=True, ) diff --git a/dashboard/components/header.py b/dashboard/components/header.py index b556f05..6118102 100644 --- a/dashboard/components/header.py +++ b/dashboard/components/header.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Header component for InfiniMetrics dashboard.""" +"""Header component for InfiniBench dashboard.""" import streamlit as st @@ -28,7 +28,7 @@ def render_header(): ) st.markdown( - '
🏭 InfiniMetrics 测试结果展示平台
', + '
🏭 InfiniBench 测试结果展示平台
', unsafe_allow_html=True, ) st.markdown( diff --git a/dashboard/pages/communication.py b/dashboard/pages/communication.py index 67c639c..b74c0ae 100644 --- a/dashboard/pages/communication.py +++ b/dashboard/pages/communication.py @@ -17,7 +17,7 @@ create_summary_table_comm, ) -init_page("通信测试分析 | InfiniMetrics", "🔗") +init_page("通信测试分析 | InfiniBench", "🔗") def main(): diff --git a/dashboard/pages/hardware.py b/dashboard/pages/hardware.py index d658a08..d2ccc0c 100644 --- a/dashboard/pages/hardware.py +++ b/dashboard/pages/hardware.py @@ -12,7 +12,7 @@ plot_hw_cache, ) -init_page("硬件测试分析 | InfiniMetrics", "🔧") +init_page("硬件测试分析 | InfiniBench", "🔧") def main(): diff --git a/dashboard/pages/inference.py b/dashboard/pages/inference.py index bcc21c3..3082eb8 100644 --- a/dashboard/pages/inference.py +++ b/dashboard/pages/inference.py @@ -11,7 +11,7 @@ create_summary_table_infer, ) -init_page("推理测试分析 | InfiniMetrics", "🚀") +init_page("推理测试分析 | InfiniBench", "🚀") def main(): diff --git a/dashboard/pages/operator.py b/dashboard/pages/operator.py index 1acf2c6..db5a479 100644 --- a/dashboard/pages/operator.py +++ b/dashboard/pages/operator.py @@ -12,7 +12,7 @@ render_operator_performance_charts, ) -init_page("算子测试分析 | InfiniMetrics", "⚡") +init_page("算子测试分析 | InfiniBench", "⚡") def main(): diff --git a/dashboard/pages/training.py b/dashboard/pages/training.py index 9da5c01..5a5b984 100644 --- a/dashboard/pages/training.py +++ b/dashboard/pages/training.py @@ -19,7 +19,7 @@ render_config_details, ) -init_page("训练测试分析 | InfiniMetrics", "🏋️") +init_page("训练测试分析 | InfiniBench", "🏋️") def main(): diff --git a/dashboard/utils/data_loader.py b/dashboard/utils/data_loader.py index 6c24148..73e5948 100644 --- a/dashboard/utils/data_loader.py +++ b/dashboard/utils/data_loader.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Unified data loader for InfiniMetrics dashboard.""" +"""Unified data loader for InfiniBench dashboard.""" from __future__ import annotations @@ -16,7 +16,7 @@ logger = logging.getLogger(__name__) -class InfiniMetricsDataLoader: +class InfiniBenchDataLoader: """ Unified data loader supporting multiple sources. @@ -237,7 +237,7 @@ def _enhance_summaries( ) __all__ = [ - "InfiniMetricsDataLoader", + "InfiniBenchDataLoader", "DataSource", "FileDataSource", "get_friendly_size", diff --git a/dashboard/utils/data_sources.py b/dashboard/utils/data_sources.py index c07dae8..3b1aa4c 100644 --- a/dashboard/utils/data_sources.py +++ b/dashboard/utils/data_sources.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Data source implementations for InfiniMetrics dashboard.""" +"""Data source implementations for InfiniBench dashboard.""" import json import logging diff --git a/dashboard/utils/data_utils.py b/dashboard/utils/data_utils.py index c749451..d8e689f 100644 --- a/dashboard/utils/data_utils.py +++ b/dashboard/utils/data_utils.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Data utility functions for InfiniMetrics dashboard.""" +"""Data utility functions for InfiniBench dashboard.""" import json import logging diff --git a/dashboard/utils/mongo_data_source.py b/dashboard/utils/mongo_data_source.py index 526fb95..e492634 100644 --- a/dashboard/utils/mongo_data_source.py +++ b/dashboard/utils/mongo_data_source.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""MongoDB data source for InfiniMetrics dashboard.""" +"""MongoDB data source for InfiniBench dashboard.""" import logging import sys diff --git a/dashboard/utils/visualizations/__init__.py b/dashboard/utils/visualizations/__init__.py index 23d25f6..c74f37e 100644 --- a/dashboard/utils/visualizations/__init__.py +++ b/dashboard/utils/visualizations/__init__.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Visualization functions for InfiniMetrics dashboard. +"""Visualization functions for InfiniBench dashboard. This package provides visualization utilities organized by test type: - base: Common/legacy visualization functions diff --git a/dashboard/utils/visualizations/base.py b/dashboard/utils/visualizations/base.py index f2de7f0..a641f9f 100644 --- a/dashboard/utils/visualizations/base.py +++ b/dashboard/utils/visualizations/base.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Visualization functions for InfiniMetrics dashboard.""" +"""Visualization functions for InfiniBench dashboard.""" import plotly.graph_objects as go import pandas as pd diff --git a/dashboard/utils/visualizations/hardware.py b/dashboard/utils/visualizations/hardware.py index aeec693..c3f22cc 100644 --- a/dashboard/utils/visualizations/hardware.py +++ b/dashboard/utils/visualizations/hardware.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Hardware-specific visualization functions for InfiniMetrics dashboard.""" +"""Hardware-specific visualization functions for InfiniBench dashboard.""" import plotly.graph_objects as go import pandas as pd diff --git a/db/__init__.py b/db/__init__.py index 54d2c01..572c7e2 100644 --- a/db/__init__.py +++ b/db/__init__.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 """ -InfiniMetrics MongoDB integration module. +InfiniBench MongoDB integration module. This module provides: - MongoDB connection management (client.py) diff --git a/db/client.py b/db/client.py index f6eddff..d28f3b6 100644 --- a/db/client.py +++ b/db/client.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""MongoDB connection management for InfiniMetrics.""" +"""MongoDB connection management for InfiniBench.""" import logging from typing import Optional diff --git a/db/config.py b/db/config.py index 9f3de33..0d5b0d4 100644 --- a/db/config.py +++ b/db/config.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""MongoDB configuration for InfiniMetrics.""" +"""MongoDB configuration for InfiniBench.""" from dataclasses import dataclass import os @@ -10,7 +10,7 @@ class DatabaseConfig: """MongoDB configuration settings.""" mongo_uri: str = "mongodb://localhost:27017" - database_name: str = "infinimetrics" + database_name: str = "infinibench" collection_name: str = "test_runs" summary_collection_name: str = "dispatcher_summaries" connection_timeout_ms: int = 5000 @@ -21,7 +21,7 @@ def from_env(cls) -> "DatabaseConfig": """Load configuration from environment variables.""" return cls( mongo_uri=os.getenv("MONGO_URI", "mongodb://localhost:27017"), - database_name=os.getenv("MONGO_DB_NAME", "infinimetrics"), + database_name=os.getenv("MONGO_DB_NAME", "infinibench"), collection_name=os.getenv("MONGO_COLLECTION", "test_runs"), summary_collection_name=os.getenv( "MONGO_SUMMARY_COLLECTION", "dispatcher_summaries" diff --git a/docs/README.md b/docs/README.md index 01942e3..8cdab91 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,6 +1,6 @@ -# InfiniMetrics Documentation +# InfiniBench Documentation -Welcome to the InfiniMetrics documentation. This hub provides quick access to all documentation resources. +Welcome to the InfiniBench documentation. This hub provides quick access to all documentation resources. ## Quick Navigation @@ -27,4 +27,4 @@ Welcome to the InfiniMetrics documentation. This hub provides quick access to al --- -For questions or support, please visit the [InfiniTensor GitHub repository](https://github.com/InfiniTensor/InfiniMetrics). +For questions or support, please visit the [InfiniTensor GitHub repository](https://github.com/InfiniTensor/InfiniBench). diff --git a/docs/architecture.md b/docs/architecture.md index 03720d0..88f2880 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -1,13 +1,13 @@ # Project Architecture -This document describes the architecture and organization of the InfiniMetrics framework. +This document describes the architecture and organization of the InfiniBench framework. ## Directory Structure ``` -InfiniMetrics/ +InfiniBench/ ├── main.py # Main entry point -├── infinimetrics/ +├── infinibench/ │ ├── adapter.py # Base adapter interface │ ├── dispatcher.py # Test orchestration │ ├── executor.py # Universal test executor @@ -52,7 +52,7 @@ InfiniMetrics/ ```mermaid flowchart TB - subgraph InfiniMetrics["InfiniMetrics"] + subgraph InfiniBench["InfiniBench"] Input[Input Files] --> Dispatcher[Dispatcher] Dispatcher --> Executor[Executor] Executor --> AdapterRegistry["Adapter Registry"] diff --git a/docs/configuration.md b/docs/configuration.md index 1cc2565..896d1b4 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1,6 +1,6 @@ # Configuration Guide -This guide explains how to configure and run tests in InfiniMetrics. +This guide explains how to configure and run tests in InfiniBench. ## Input File Format diff --git a/docs/dashboard.md b/docs/dashboard.md index f85c5f0..c02606b 100644 --- a/docs/dashboard.md +++ b/docs/dashboard.md @@ -1,7 +1,7 @@ -# InfiniMetrics Dashboard User Guide +# InfiniBench Dashboard User Guide ## 1. Dashboard Overview -InfiniMetrics Dashboard provides a unified interface to visualize benchmark and evaluation results of AI accelerators across the following scenarios: +InfiniBench Dashboard provides a unified interface to visualize benchmark and evaluation results of AI accelerators across the following scenarios: - Communication (NCCL / Collective Communication) diff --git a/docs/development.md b/docs/development.md index c5c6264..b141590 100644 --- a/docs/development.md +++ b/docs/development.md @@ -1,6 +1,6 @@ # Development Guide -This guide explains how to set up the development environment and extend InfiniMetrics by adding new adapters and metrics. +This guide explains how to set up the development environment and extend InfiniBench by adding new adapters and metrics. ## Development Setup @@ -51,7 +51,7 @@ git commit -m "your message" --no-verify Create a new adapter class by inheriting from `BaseAdapter`: ```python -from infinimetrics.adapter import BaseAdapter +from infinibench.adapter import BaseAdapter class MyCustomAdapter(BaseAdapter): def __init__(self, config): @@ -120,7 +120,7 @@ python main.py my_test_config.json ### Define Metric Class -In `infinimetrics/common/metrics.py`: +In `infinibench/common/metrics.py`: ```python class CustomMetric(Metric): @@ -184,7 +184,7 @@ def process(self, test_input): ### Directory Structure ``` -infinimetrics/ +infinibench/ ├── hardware/ # Hardware test adapters ├── operators/ # Operator test adapters ├── inference/ # Inference test adapters diff --git a/docs/images/dashboard_app.jpg b/docs/images/dashboard_app.jpg new file mode 100644 index 0000000..a199f14 Binary files /dev/null and b/docs/images/dashboard_app.jpg differ diff --git a/docs/images/dashboard_communication.jpg b/docs/images/dashboard_communication.jpg index 4f56efc..550f2fa 100644 Binary files a/docs/images/dashboard_communication.jpg and b/docs/images/dashboard_communication.jpg differ diff --git a/docs/images/dashboard_hardware.jpg b/docs/images/dashboard_hardware.jpg new file mode 100644 index 0000000..33a0350 Binary files /dev/null and b/docs/images/dashboard_hardware.jpg differ diff --git a/docs/images/dashboard_inference.jpg b/docs/images/dashboard_inference.jpg index 7c31a4f..1258b3c 100644 Binary files a/docs/images/dashboard_inference.jpg and b/docs/images/dashboard_inference.jpg differ diff --git a/docs/images/dashboard_operators.jpg b/docs/images/dashboard_operators.jpg index 88b0943..ac8d3a2 100644 Binary files a/docs/images/dashboard_operators.jpg and b/docs/images/dashboard_operators.jpg differ diff --git a/docs/images/dashboard_training.jpg b/docs/images/dashboard_training.jpg index 4b354f7..91dfc0b 100644 Binary files a/docs/images/dashboard_training.jpg and b/docs/images/dashboard_training.jpg differ diff --git a/docs/images/runid_research.jpg b/docs/images/runid_research.jpg index 6eb1e64..9a1da1b 100644 Binary files a/docs/images/runid_research.jpg and b/docs/images/runid_research.jpg differ diff --git a/docs/installation.md b/docs/installation.md index 0ac6f3f..18f9b1b 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -1,6 +1,6 @@ # Installation Guide -This guide covers the installation and setup of InfiniMetrics. +This guide covers the installation and setup of InfiniBench. ## Prerequisites @@ -30,7 +30,7 @@ pip install pandas If you plan to use the hardware testing modules, you need to build the CUDA memory benchmark suite: ```bash -cd infinimetrics/hardware/cuda-memory-benchmark +cd infinibench/hardware/cuda-memory-benchmark bash build.sh ``` diff --git a/docs/quickstart.md b/docs/quickstart.md index 8b4cb7c..da3208f 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -1,6 +1,6 @@ # Quick Start Guide -This guide will help you get up and running with InfiniMetrics in minutes. +This guide will help you get up and running with InfiniBench in minutes. ## Prerequisites @@ -14,8 +14,8 @@ Before you begin, ensure you have: ### 1. Clone the Repository ```bash -git clone https://github.com/InfiniTensor/InfiniMetrics.git -cd InfiniMetrics +git clone https://github.com/InfiniTensor/InfiniBench.git +cd InfiniBench ``` ### 2. Initialize Submodules @@ -39,7 +39,7 @@ pip install vllm If you plan to run hardware tests: ```bash -cd infinimetrics/hardware/cuda-memory-benchmark +cd infinibench/hardware/cuda-memory-benchmark bash build.sh ``` @@ -63,7 +63,7 @@ This will test: Run an inference benchmark: ```bash -cd infinimetrics/inference +cd infinibench/inference python infer_main.py --config config.json ``` @@ -99,7 +99,7 @@ Results are saved in: ## MongoDB Integration (Optional) -InfiniMetrics supports storing test results in MongoDB for persistent storage and dashboard visualization. +InfiniBench supports storing test results in MongoDB for persistent storage and dashboard visualization. ### Prerequisites @@ -146,7 +146,7 @@ watcher.run_forever() # Blocks until Ctrl+C | Variable | Default | Description | |----------|---------|-------------| | `MONGO_URI` | `mongodb://localhost:27017` | MongoDB connection URL | -| `MONGO_DB_NAME` | `infinimetrics` | Database name | +| `MONGO_DB_NAME` | `infinibench` | Database name | | `MONGO_COLLECTION` | `test_runs` | Test results collection | ## Next Steps diff --git a/docs/zh/README.md b/docs/zh/README.md index b4ad827..c37bcf6 100644 --- a/docs/zh/README.md +++ b/docs/zh/README.md @@ -1,6 +1,6 @@ -# InfiniMetrics 文档 +# InfiniBench 文档 -欢迎来到 InfiniMetrics 文档中心。本页面提供对所有文档资源的快速访问。 +欢迎来到 InfiniBench 文档中心。本页面提供对所有文档资源的快速访问。 ## 快速导航 @@ -27,4 +27,4 @@ --- -如有问题或需要支持,请访问 [InfiniTensor GitHub 仓库](https://github.com/InfiniTensor/InfiniMetrics)。 +如有问题或需要支持,请访问 [InfiniTensor GitHub 仓库](https://github.com/InfiniTensor/InfiniBench)。 diff --git a/docs/zh/architecture.md b/docs/zh/architecture.md index 2625f12..f5ca292 100644 --- a/docs/zh/architecture.md +++ b/docs/zh/architecture.md @@ -1,13 +1,13 @@ # 项目架构 -本文档描述 InfiniMetrics 框架的架构和组织。 +本文档描述 InfiniBench 框架的架构和组织。 ## 目录结构 ``` -InfiniMetrics/ +InfiniBench/ ├── main.py # 主入口文件 -├── infinimetrics/ +├── infinibench/ │ ├── adapter.py # 基础适配器接口 │ ├── dispatcher.py # 测试编排调度器 │ ├── executor.py # 通用测试执行器 @@ -55,7 +55,7 @@ InfiniMetrics/ ```mermaid flowchart TB - subgraph InfiniMetrics["InfiniMetrics"] + subgraph InfiniBench["InfiniBench"] Input[输入文件] --> Dispatcher[调度器] Dispatcher --> Executor[执行器] Executor --> AdapterRegistry["适配器注册表"] diff --git a/docs/zh/configuration.md b/docs/zh/configuration.md index 53e091f..d8ae656 100644 --- a/docs/zh/configuration.md +++ b/docs/zh/configuration.md @@ -1,6 +1,6 @@ # 配置指南 -本指南解释如何在 InfiniMetrics 中配置和运行测试。 +本指南解释如何在 InfiniBench 中配置和运行测试。 ## 输入文件格式 diff --git a/docs/zh/dashboard.md b/docs/zh/dashboard.md index c48d109..47155eb 100644 --- a/docs/zh/dashboard.md +++ b/docs/zh/dashboard.md @@ -1,8 +1,8 @@ -# InfiniMetrics Dashboard 使用指南 +# InfiniBench Dashboard 使用指南 ## 1. Dashboard 简介 -InfiniMetrics Dashboard 用于统一展示 AI 加速卡在以下场景下的测试与评测结果 +InfiniBench Dashboard 用于统一展示 AI 加速卡在以下场景下的测试与评测结果 - 通信(NCCL / 集合通信) - 训练(Training / 分布式训练) diff --git a/docs/zh/development.md b/docs/zh/development.md index 1c356a3..a4e9faf 100644 --- a/docs/zh/development.md +++ b/docs/zh/development.md @@ -1,6 +1,6 @@ # 开发指南 -本指南解释如何通过添加新适配器和指标来扩展 InfiniMetrics。 +本指南解释如何通过添加新适配器和指标来扩展 InfiniBench。 ## 添加新适配器 @@ -9,7 +9,7 @@ 通过继承 `BaseAdapter` 创建新适配器类: ```python -from infinimetrics.adapter import BaseAdapter +from infinibench.adapter import BaseAdapter class MyCustomAdapter(BaseAdapter): def __init__(self, config): @@ -78,7 +78,7 @@ python main.py my_test_config.json ### 定义指标类 -在 `infinimetrics/common/metrics.py` 中: +在 `infinibench/common/metrics.py` 中: ```python class CustomMetric(Metric): @@ -141,7 +141,7 @@ def process(self, test_input): ### 目录结构 ``` -infinimetrics/ +infinibench/ ├── hardware/ # 硬件测试适配器 ├── operators/ # 算子测试适配器 ├── inference/ # 推理测试适配器 diff --git a/docs/zh/installation.md b/docs/zh/installation.md index a3f93ac..6339d47 100644 --- a/docs/zh/installation.md +++ b/docs/zh/installation.md @@ -1,6 +1,6 @@ # 安装指南 -本指南涵盖 InfiniMetrics 的安装和设置。 +本指南涵盖 InfiniBench 的安装和设置。 ## 前置要求 @@ -30,7 +30,7 @@ pip install pandas 如果计划使用硬件测试模块,需要构建 CUDA 内存基准测试套件: ```bash -cd infinimetrics/hardware/cuda-memory-benchmark +cd infinibench/hardware/cuda-memory-benchmark bash build.sh ``` diff --git a/docs/zh/quickstart.md b/docs/zh/quickstart.md index 0e3211a..51963fa 100644 --- a/docs/zh/quickstart.md +++ b/docs/zh/quickstart.md @@ -1,6 +1,6 @@ # 快速开始指南 -本指南将帮助您在几分钟内开始使用 InfiniMetrics。 +本指南将帮助您在几分钟内开始使用 InfiniBench。 ## 前提条件 @@ -14,8 +14,8 @@ ### 1. 克隆仓库 ```bash -git clone https://github.com/InfiniTensor/InfiniMetrics.git -cd InfiniMetrics +git clone https://github.com/InfiniTensor/InfiniBench.git +cd InfiniBench ``` ### 2. 初始化子模块 @@ -39,7 +39,7 @@ pip install vllm 如果您计划运行硬件测试: ```bash -cd infinimetrics/hardware/cuda-memory-benchmark +cd infinibench/hardware/cuda-memory-benchmark bash build.sh ``` @@ -63,7 +63,7 @@ python main.py format_input_comprehensive_hardware.json 运行推理基准测试: ```bash -cd infinimetrics/inference +cd infinibench/inference python infer_main.py --config config.json ``` diff --git a/infinimetrics/adapter.py b/infinibench/adapter.py similarity index 78% rename from infinimetrics/adapter.py rename to infinibench/adapter.py index 528d523..753e1eb 100644 --- a/infinimetrics/adapter.py +++ b/infinibench/adapter.py @@ -5,9 +5,9 @@ import logging from typing import Dict, Any, Union, Optional -from infinimetrics.input import TestInput -from infinimetrics.common.constants import InfiniMetricsJson -from infinimetrics.utils.time_utils import get_timestamp +from infinibench.input import TestInput +from infinibench.common.constants import InfiniBenchJson +from infinibench.utils.time_utils import get_timestamp logger = logging.getLogger(__name__) @@ -94,25 +94,21 @@ def _create_error_response( Dict with error information in standardized format """ response = { - InfiniMetricsJson.RESULT_CODE: result_code, - InfiniMetricsJson.TIME: get_timestamp(), - InfiniMetricsJson.ERROR_MSG: error_msg, - InfiniMetricsJson.METRICS: [], + InfiniBenchJson.RESULT_CODE: result_code, + InfiniBenchJson.TIME: get_timestamp(), + InfiniBenchJson.ERROR_MSG: error_msg, + InfiniBenchJson.METRICS: [], } # Include context if test_input is provided if test_input: response.update( { - InfiniMetricsJson.RUN_ID: test_input.get( - InfiniMetricsJson.RUN_ID, "" - ), - InfiniMetricsJson.TESTCASE: test_input.get( - InfiniMetricsJson.TESTCASE, "" - ), - InfiniMetricsJson.CONFIG: test_input.get( - InfiniMetricsJson.CONFIG, {} + InfiniBenchJson.RUN_ID: test_input.get(InfiniBenchJson.RUN_ID, ""), + InfiniBenchJson.TESTCASE: test_input.get( + InfiniBenchJson.TESTCASE, "" ), + InfiniBenchJson.CONFIG: test_input.get(InfiniBenchJson.CONFIG, {}), } ) diff --git a/infinimetrics/common/command_builder.py b/infinibench/common/command_builder.py similarity index 100% rename from infinimetrics/common/command_builder.py rename to infinibench/common/command_builder.py diff --git a/infinimetrics/common/constants.py b/infinibench/common/constants.py similarity index 98% rename from infinimetrics/common/constants.py rename to infinibench/common/constants.py index 29991b0..ab3ffc5 100644 --- a/infinimetrics/common/constants.py +++ b/infinibench/common/constants.py @@ -84,8 +84,8 @@ class TestCategory(str, Enum): # Field name constants organized by context -class InfiniMetricsJson: - """Top-level JSON field names for InfiniMetrics""" +class InfiniBenchJson: + """Top-level JSON field names for InfiniBench""" CONFIG = "config" METRICS = "metrics" diff --git a/infinimetrics/common/csv_utils.py b/infinibench/common/csv_utils.py similarity index 100% rename from infinimetrics/common/csv_utils.py rename to infinibench/common/csv_utils.py diff --git a/infinimetrics/common/error_handler.py b/infinibench/common/error_handler.py similarity index 98% rename from infinimetrics/common/error_handler.py rename to infinibench/common/error_handler.py index 70f9161..770be37 100644 --- a/infinimetrics/common/error_handler.py +++ b/infinibench/common/error_handler.py @@ -5,7 +5,7 @@ from datetime import datetime from typing import Any, Dict -from infinimetrics.common.constants import ErrorCode +from infinibench.common.constants import ErrorCode logger = logging.getLogger(__name__) diff --git a/infinimetrics/common/hardware_info.py b/infinibench/common/hardware_info.py similarity index 100% rename from infinimetrics/common/hardware_info.py rename to infinibench/common/hardware_info.py diff --git a/infinimetrics/common/prompt_data.py b/infinibench/common/prompt_data.py similarity index 100% rename from infinimetrics/common/prompt_data.py rename to infinibench/common/prompt_data.py diff --git a/infinimetrics/common/testcase_utils.py b/infinibench/common/testcase_utils.py similarity index 100% rename from infinimetrics/common/testcase_utils.py rename to infinibench/common/testcase_utils.py diff --git a/infinimetrics/communication/nccl_adapter.py b/infinibench/communication/nccl_adapter.py similarity index 99% rename from infinimetrics/communication/nccl_adapter.py rename to infinibench/communication/nccl_adapter.py index b77c68b..0b576dc 100644 --- a/infinimetrics/communication/nccl_adapter.py +++ b/infinibench/communication/nccl_adapter.py @@ -12,7 +12,7 @@ from dataclasses import dataclass from pathlib import Path from typing import Any, Dict, List, Optional, Tuple -from infinimetrics.adapter import BaseAdapter +from infinibench.adapter import BaseAdapter logger = logging.getLogger(__name__) @@ -84,7 +84,7 @@ def setup(self, config: Dict[str, Any]) -> None: ) out_dir = config.get("output_dir", DEFAULTS["output_dir"]) - self.result_dir = Path(out_dir) + self.result_dir = Path(out_dir) / "comm" self.result_dir.mkdir(parents=True, exist_ok=True) self._setup_nccl_env(config) @@ -439,7 +439,7 @@ def _save_raw_csv(self, results: Dict[str, Any]) -> Dict[str, str]: w.writerow(["size_bytes", "latency_us"]) for x in results["latency"]: w.writerow([x["size_bytes"], x["latency_us"]]) - raw["latency"] = f"./comm/{fp.name}" + raw["latency"] = f"./{fp.name}" if results["busbw"]: fp = self.result_dir / f"{prefix}_bandwidth.csv" @@ -448,7 +448,7 @@ def _save_raw_csv(self, results: Dict[str, Any]) -> Dict[str, str]: w.writerow(["size_bytes", "bandwidth_gbs"]) for x in results["busbw"]: w.writerow([x["size_bytes"], x["busbw_gbs"]]) - raw["bandwidth"] = f"./comm/{fp.name}" + raw["bandwidth"] = f"./{fp.name}" return raw diff --git a/infinimetrics/dispatcher.py b/infinibench/dispatcher.py similarity index 94% rename from infinimetrics/dispatcher.py rename to infinibench/dispatcher.py index 75856cc..1e07a2d 100644 --- a/infinimetrics/dispatcher.py +++ b/infinibench/dispatcher.py @@ -7,9 +7,9 @@ from pathlib import Path from datetime import datetime -from infinimetrics.adapter import BaseAdapter -from infinimetrics.executor import Executor, TestResult -from infinimetrics.common.constants import TestCategory +from infinibench.adapter import BaseAdapter +from infinibench.executor import Executor, TestResult +from infinibench.common.constants import TestCategory logger = logging.getLogger(__name__) @@ -28,35 +28,35 @@ def _create_inference_adapter(): """Create inference adapter""" - from infinimetrics.inference.inference_adapter import InferenceAdapter + from infinibench.inference.inference_adapter import InferenceAdapter return InferenceAdapter() def _create_infinicore_adapter(): """Create InfiniCore adapter (lazy import).""" - from infinimetrics.operators.infinicore_adapter import InfiniCoreAdapter + from infinibench.operators.infinicore_adapter import InfiniCoreAdapter return InfiniCoreAdapter() def _create_nccltests_adapter(): """Create NCCL communication adapter.""" - from infinimetrics.communication.nccl_adapter import NcclTestsAdapter + from infinibench.communication.nccl_adapter import NcclTestsAdapter return NcclTestsAdapter() def _create_hardware_adapter(): """Create Hardware adapter (lazy import).""" - from infinimetrics.hardware.hardware_adapter import HardwareTestAdapter + from infinibench.hardware.hardware_adapter import HardwareTestAdapter return HardwareTestAdapter() def _create_training_adapter(): """Create training adapter (lazy import).""" - from infinimetrics.training.training_adapter import TrainingAdapter + from infinibench.training.training_adapter import TrainingAdapter return TrainingAdapter() @@ -254,7 +254,7 @@ def _aggregate_results(self, results: List[Dict[str, Any]]) -> Dict[str, Any]: def _save_summary(self, aggregated: Dict[str, Any]) -> None: """Save aggregated results summary to disk with Git and CI information.""" # 获取Git信息 - from infinimetrics.utils.git_utils import get_git_info, get_ci_environment_info + from infinibench.utils.git_utils import get_git_info, get_ci_environment_info git_info = get_git_info() ci_info = get_ci_environment_info() diff --git a/infinimetrics/executor.py b/infinibench/executor.py similarity index 98% rename from infinimetrics/executor.py rename to infinibench/executor.py index fe95b12..0493c39 100644 --- a/infinimetrics/executor.py +++ b/infinibench/executor.py @@ -13,10 +13,10 @@ import subprocess -from infinimetrics.adapter import BaseAdapter -from infinimetrics.common.constants import ErrorCode, TEST_CATEGORIES -from infinimetrics.utils.hardware_detector import HardwareDetector -from infinimetrics.utils.path_utils import sanitize_filename +from infinibench.adapter import BaseAdapter +from infinibench.common.constants import ErrorCode, TEST_CATEGORIES +from infinibench.utils.hardware_detector import HardwareDetector +from infinibench.utils.path_utils import sanitize_filename logger = logging.getLogger(__name__) diff --git a/infinibench/hardware/__init__.py b/infinibench/hardware/__init__.py new file mode 100644 index 0000000..569d99b --- /dev/null +++ b/infinibench/hardware/__init__.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python3 +"""Hardware benchmark package for InfiniBench.""" + +from infinibench.hardware.hardware_adapter import HardwareTestAdapter + +__all__ = ["HardwareTestAdapter"] diff --git a/infinimetrics/hardware/cuda-memory-benchmark/CMakeLists.txt b/infinibench/hardware/cuda-memory-benchmark/CMakeLists.txt similarity index 100% rename from infinimetrics/hardware/cuda-memory-benchmark/CMakeLists.txt rename to infinibench/hardware/cuda-memory-benchmark/CMakeLists.txt diff --git a/infinimetrics/hardware/cuda-memory-benchmark/QUICKSTART.md b/infinibench/hardware/cuda-memory-benchmark/QUICKSTART.md similarity index 100% rename from infinimetrics/hardware/cuda-memory-benchmark/QUICKSTART.md rename to infinibench/hardware/cuda-memory-benchmark/QUICKSTART.md diff --git a/infinimetrics/hardware/cuda-memory-benchmark/README.md b/infinibench/hardware/cuda-memory-benchmark/README.md similarity index 100% rename from infinimetrics/hardware/cuda-memory-benchmark/README.md rename to infinibench/hardware/cuda-memory-benchmark/README.md diff --git a/infinimetrics/hardware/cuda-memory-benchmark/build.sh b/infinibench/hardware/cuda-memory-benchmark/build.sh similarity index 100% rename from infinimetrics/hardware/cuda-memory-benchmark/build.sh rename to infinibench/hardware/cuda-memory-benchmark/build.sh diff --git a/infinimetrics/hardware/cuda-memory-benchmark/include/cache_benchmark.h b/infinibench/hardware/cuda-memory-benchmark/include/cache_benchmark.h similarity index 100% rename from infinimetrics/hardware/cuda-memory-benchmark/include/cache_benchmark.h rename to infinibench/hardware/cuda-memory-benchmark/include/cache_benchmark.h diff --git a/infinimetrics/hardware/cuda-memory-benchmark/include/cuda_utils.h b/infinibench/hardware/cuda-memory-benchmark/include/cuda_utils.h similarity index 100% rename from infinimetrics/hardware/cuda-memory-benchmark/include/cuda_utils.h rename to infinibench/hardware/cuda-memory-benchmark/include/cuda_utils.h diff --git a/infinimetrics/hardware/cuda-memory-benchmark/include/memory_bandwidth_test.h b/infinibench/hardware/cuda-memory-benchmark/include/memory_bandwidth_test.h similarity index 100% rename from infinimetrics/hardware/cuda-memory-benchmark/include/memory_bandwidth_test.h rename to infinibench/hardware/cuda-memory-benchmark/include/memory_bandwidth_test.h diff --git a/infinimetrics/hardware/cuda-memory-benchmark/include/performance_test.h b/infinibench/hardware/cuda-memory-benchmark/include/performance_test.h similarity index 100% rename from infinimetrics/hardware/cuda-memory-benchmark/include/performance_test.h rename to infinibench/hardware/cuda-memory-benchmark/include/performance_test.h diff --git a/infinimetrics/hardware/cuda-memory-benchmark/include/stream_benchmark.h b/infinibench/hardware/cuda-memory-benchmark/include/stream_benchmark.h similarity index 100% rename from infinimetrics/hardware/cuda-memory-benchmark/include/stream_benchmark.h rename to infinibench/hardware/cuda-memory-benchmark/include/stream_benchmark.h diff --git a/infinimetrics/hardware/cuda-memory-benchmark/src/main.cu b/infinibench/hardware/cuda-memory-benchmark/src/main.cu similarity index 100% rename from infinimetrics/hardware/cuda-memory-benchmark/src/main.cu rename to infinibench/hardware/cuda-memory-benchmark/src/main.cu diff --git a/infinimetrics/hardware/hardware_adapter.py b/infinibench/hardware/hardware_adapter.py similarity index 93% rename from infinimetrics/hardware/hardware_adapter.py rename to infinibench/hardware/hardware_adapter.py index 426c60a..69e18fb 100644 --- a/infinimetrics/hardware/hardware_adapter.py +++ b/infinibench/hardware/hardware_adapter.py @@ -7,10 +7,10 @@ from pathlib import Path from typing import Any, Dict, Optional, List -from infinimetrics.adapter import BaseAdapter -from infinimetrics.common.csv_utils import save_csv, create_timeseries_metric -from infinimetrics.common.command_builder import build_command_from_config -from infinimetrics.common.constants import ( +from infinibench.adapter import BaseAdapter +from infinibench.common.csv_utils import save_csv, create_timeseries_metric +from infinibench.common.command_builder import build_command_from_config +from infinibench.common.constants import ( TEST_TYPE_MAP, MEMORY_DIRECTIONS, STREAM_OPERATIONS, @@ -22,9 +22,9 @@ CACHE_TEST_TIMEOUT, DEFAULT_TEST_TIMEOUT, METRIC_PREFIX_MEM_SWEEP, - InfiniMetricsJson, + InfiniBenchJson, ) -from infinimetrics.utils.time_utils import get_timestamp +from infinibench.utils.time_utils import get_timestamp logger = logging.getLogger(__name__) @@ -66,9 +66,9 @@ def process(self, test_input: Any) -> Dict[str, Any]: if not test_input: raise ValueError(f"Invalid test_input type: {type(test_input)}") - testcase = test_input.get(InfiniMetricsJson.TESTCASE, "unknown") - config = test_input.get(InfiniMetricsJson.CONFIG, {}) - run_id = test_input.get(InfiniMetricsJson.RUN_ID, "unknown") + testcase = test_input.get(InfiniBenchJson.TESTCASE, "unknown") + config = test_input.get(InfiniBenchJson.CONFIG, {}) + run_id = test_input.get(InfiniBenchJson.RUN_ID, "unknown") logger.info(f"HardwareTestAdapter: Processing {testcase}") @@ -99,12 +99,12 @@ def process(self, test_input: Any) -> Dict[str, Any]: result_config["command"] = command return { - InfiniMetricsJson.RESULT_CODE: 0, - InfiniMetricsJson.TIME: get_timestamp(), - InfiniMetricsJson.RUN_ID: run_id, - InfiniMetricsJson.TESTCASE: testcase, - InfiniMetricsJson.CONFIG: result_config, - InfiniMetricsJson.METRICS: metrics, + InfiniBenchJson.RESULT_CODE: 0, + InfiniBenchJson.TIME: get_timestamp(), + InfiniBenchJson.RUN_ID: run_id, + InfiniBenchJson.TESTCASE: testcase, + InfiniBenchJson.CONFIG: result_config, + InfiniBenchJson.METRICS: metrics, } except Exception as e: diff --git a/infinimetrics/inference/.gitkeep b/infinibench/inference/.gitkeep similarity index 100% rename from infinimetrics/inference/.gitkeep rename to infinibench/inference/.gitkeep diff --git a/infinimetrics/inference/__init__.py b/infinibench/inference/__init__.py similarity index 84% rename from infinimetrics/inference/__init__.py rename to infinibench/inference/__init__.py index 3323f32..798f745 100644 --- a/infinimetrics/inference/__init__.py +++ b/infinibench/inference/__init__.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 """ -infinimetrics inference package +infinibench inference package """ __version__ = "1.0.0" diff --git a/infinimetrics/inference/direct.py b/infinibench/inference/direct.py similarity index 97% rename from infinimetrics/inference/direct.py rename to infinibench/inference/direct.py index dbc6a68..0bd3bc9 100644 --- a/infinimetrics/inference/direct.py +++ b/infinibench/inference/direct.py @@ -7,7 +7,7 @@ from pathlib import Path from .engine_utils import AcceleratorMonitorMixin from .factory import create_framework_impl -from infinimetrics.utils.accelerator_monitor import create_accelerator_monitor +from infinibench.utils.accelerator_monitor import create_accelerator_monitor logger = logging.getLogger(__name__) @@ -70,7 +70,7 @@ def _load_framework_adapter(self): def _generate_prompts(self) -> List[str]: """Generate test prompts""" - from infinimetrics.utils.prompt_generator import PromptGenerator + from infinibench.utils.prompt_generator import PromptGenerator ia = self.config.infer_args batch_size = ( diff --git a/infinimetrics/inference/engine_utils.py b/infinibench/inference/engine_utils.py similarity index 93% rename from infinimetrics/inference/engine_utils.py rename to infinibench/inference/engine_utils.py index 389f47c..f82285c 100644 --- a/infinimetrics/inference/engine_utils.py +++ b/infinibench/inference/engine_utils.py @@ -32,7 +32,7 @@ def _start_accelerator_monitor(self): if cpu_only: return - from infinimetrics.utils.accelerator_monitor import create_accelerator_monitor + from infinibench.utils.accelerator_monitor import create_accelerator_monitor self.monitor = create_accelerator_monitor( accelerator_type=accelerator, diff --git a/infinimetrics/inference/factory.py b/infinibench/inference/factory.py similarity index 100% rename from infinimetrics/inference/factory.py rename to infinibench/inference/factory.py diff --git a/infinimetrics/inference/frameworks/infinilm_impl.py b/infinibench/inference/frameworks/infinilm_impl.py similarity index 99% rename from infinimetrics/inference/frameworks/infinilm_impl.py rename to infinibench/inference/frameworks/infinilm_impl.py index 3047439..3273ed3 100644 --- a/infinimetrics/inference/frameworks/infinilm_impl.py +++ b/infinibench/inference/frameworks/infinilm_impl.py @@ -12,11 +12,11 @@ import random from pathlib import Path from typing import List, Tuple, Optional, Dict, Any -from infinimetrics.inference.infer_config import InferConfig +from infinibench.inference.infer_config import InferConfig import subprocess import threading -from infinimetrics.common.constants import ( +from infinibench.common.constants import ( DEFAULT_TEMPERATURE, DEFAULT_TOP_P, DEFAULT_TOP_K, @@ -621,7 +621,7 @@ def get_peak_memory_usage(self) -> Optional[float]: accelerator = getattr(dev, "accelerator", "nvidia") device_ids = getattr(dev, "device_ids", None) - from infinimetrics.utils.accelerator_monitor import ( + from infinibench.utils.accelerator_monitor import ( create_accelerator_monitor, ) diff --git a/infinimetrics/inference/frameworks/vllm_impl.py b/infinibench/inference/frameworks/vllm_impl.py similarity index 99% rename from infinimetrics/inference/frameworks/vllm_impl.py rename to infinibench/inference/frameworks/vllm_impl.py index ea7c382..aff5d76 100644 --- a/infinimetrics/inference/frameworks/vllm_impl.py +++ b/infinibench/inference/frameworks/vllm_impl.py @@ -4,7 +4,7 @@ from typing import List, Tuple, Dict, Any from vllm import LLM, SamplingParams -from infinimetrics.common.constants import ( +from infinibench.common.constants import ( DEFAULT_TEMPERATURE, DEFAULT_TOP_P, DEFAULT_TOP_K, diff --git a/infinimetrics/inference/infer_config.py b/infinibench/inference/infer_config.py similarity index 98% rename from infinimetrics/inference/infer_config.py rename to infinibench/inference/infer_config.py index 23613c4..c6a8291 100644 --- a/infinimetrics/inference/infer_config.py +++ b/infinibench/inference/infer_config.py @@ -12,16 +12,16 @@ from pathlib import Path from datetime import datetime -from infinimetrics.common.testcase_utils import generate_run_id +from infinibench.common.testcase_utils import generate_run_id from typing import Dict, Any, Optional, List from dataclasses import dataclass -from infinimetrics.common.testcase_utils import ( +from infinibench.common.testcase_utils import ( generate_run_id_from_config, parse_testcase, validate_testcase_format, ) -from infinimetrics.common.constants import ( +from infinibench.common.constants import ( ProcessorType, AcceleratorType, DEFAULT_WARMUP_ITERATIONS, @@ -529,7 +529,7 @@ def generate_auto_run_id(testcase: str) -> str: Returns: Generated run_id """ - from infinimetrics.common.testcase_utils import ( + from infinibench.common.testcase_utils import ( generate_auto_run_id as common_generate_run_id, ) diff --git a/infinimetrics/inference/inference_adapter.py b/infinibench/inference/inference_adapter.py similarity index 97% rename from infinimetrics/inference/inference_adapter.py rename to infinibench/inference/inference_adapter.py index 70527bc..3ecb532 100644 --- a/infinimetrics/inference/inference_adapter.py +++ b/infinibench/inference/inference_adapter.py @@ -8,9 +8,9 @@ from typing import Dict, Any from datetime import datetime -from infinimetrics.adapter import BaseAdapter -from infinimetrics.input import TestInput -from infinimetrics.common.testcase_utils import generate_run_id +from infinibench.adapter import BaseAdapter +from infinibench.input import TestInput +from infinibench.common.testcase_utils import generate_run_id logger = logging.getLogger(__name__) diff --git a/infinimetrics/inference/result_writer.py b/infinibench/inference/result_writer.py similarity index 98% rename from infinimetrics/inference/result_writer.py rename to infinibench/inference/result_writer.py index c0c7fca..f813bb2 100644 --- a/infinimetrics/inference/result_writer.py +++ b/infinibench/inference/result_writer.py @@ -7,8 +7,8 @@ from pathlib import Path from typing import Dict, Any, List from datetime import datetime -from infinimetrics.utils.metrics import ScalarMetric, TimeseriesMetric -from infinimetrics.utils.path_utils import sanitize_filename +from infinibench.utils.metrics import ScalarMetric, TimeseriesMetric +from infinibench.utils.path_utils import sanitize_filename logger = logging.getLogger(__name__) diff --git a/infinimetrics/inference/service.py b/infinibench/inference/service.py similarity index 97% rename from infinimetrics/inference/service.py rename to infinibench/inference/service.py index 10f2d37..ee6d122 100644 --- a/infinimetrics/inference/service.py +++ b/infinibench/inference/service.py @@ -75,7 +75,7 @@ def _start_service(self): async def _run_trace_test(self, service_manager): """Run trace test""" - from infinimetrics.utils.trace_client import TraceClient, TraceClientConfig + from infinibench.utils.trace_client import TraceClient, TraceClientConfig # Create trace client client_config = TraceClientConfig( @@ -143,7 +143,7 @@ def _process_trace_results(self, trace_results): def _create_prompt_generator(self): """Create prompt generator - returns a callable""" - from infinimetrics.utils.prompt_generator import PromptGenerator + from infinibench.utils.prompt_generator import PromptGenerator # Create PromptGenerator instance pg_instance = PromptGenerator(method="random") diff --git a/infinimetrics/inference/service_manager.py b/infinibench/inference/service_manager.py similarity index 99% rename from infinimetrics/inference/service_manager.py rename to infinibench/inference/service_manager.py index fe5ace0..d45b452 100644 --- a/infinimetrics/inference/service_manager.py +++ b/infinibench/inference/service_manager.py @@ -341,7 +341,7 @@ def _build_start_command(self, port: int) -> List[str]: cmd.extend(["--max-model-len", str(max_seq_len)]) if (not cpu_only) and accelerator == "nvidia": - from infinimetrics.common.constants import ( + from infinibench.common.constants import ( DEFAULT_VLLM_GPU_MEMORY_UTILIZATION, DEFAULT_VLLM_SWAP_SPACE, ) diff --git a/infinimetrics/input.py b/infinibench/input.py similarity index 100% rename from infinimetrics/input.py rename to infinibench/input.py diff --git a/infinibench/operators/__init__.py b/infinibench/operators/__init__.py new file mode 100644 index 0000000..f5e45e5 --- /dev/null +++ b/infinibench/operators/__init__.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 +"""Operators package for InfiniBench.""" + +from infinibench.operators.flops_calculator import ( + FLOPSCalculator, + calculate_bandwidth, +) +from infinibench.operators.infinicore_adapter import InfiniCoreAdapter + +__all__ = [ + "FLOPSCalculator", + "calculate_bandwidth", + "InfiniCoreAdapter", +] diff --git a/infinimetrics/operators/flops_calculator.py b/infinibench/operators/flops_calculator.py similarity index 99% rename from infinimetrics/operators/flops_calculator.py rename to infinibench/operators/flops_calculator.py index 3ddb509..21d4a77 100644 --- a/infinimetrics/operators/flops_calculator.py +++ b/infinibench/operators/flops_calculator.py @@ -8,7 +8,7 @@ from typing import Dict, List, Optional, Callable -from infinimetrics.common.constants import DTYPE_BYTES_MAP +from infinibench.common.constants import DTYPE_BYTES_MAP class FLOPSCalculator: diff --git a/infinimetrics/operators/infinicore_adapter.py b/infinibench/operators/infinicore_adapter.py similarity index 91% rename from infinimetrics/operators/infinicore_adapter.py rename to infinibench/operators/infinicore_adapter.py index 0995b5a..5147b73 100644 --- a/infinimetrics/operators/infinicore_adapter.py +++ b/infinibench/operators/infinicore_adapter.py @@ -11,9 +11,9 @@ from infinicore.test.framework import TestManager from infinicore.test.framework.devices import InfiniDeviceNames -from infinimetrics.adapter import BaseAdapter -from infinimetrics.common.constants import ( - InfiniMetricsJson, +from infinibench.adapter import BaseAdapter +from infinibench.common.constants import ( + InfiniBenchJson, InfiniCoreRequest, OperatorConfig, TensorSpec, @@ -25,7 +25,7 @@ PLATFORM_INFINICORE, DEFAULT_TOLERANCE, ) -from infinimetrics.operators.flops_calculator import ( +from infinibench.operators.flops_calculator import ( FLOPSCalculator, calculate_bandwidth, ) @@ -56,7 +56,7 @@ def process(self, test_input: Union[Dict[str, Any], Any]) -> Dict[str, Any]: if not test_input: raise ValueError(f"Invalid test_input type: {type(test_input)}") - testcase = test_input.get(InfiniMetricsJson.TESTCASE, "unknown") + testcase = test_input.get(InfiniBenchJson.TESTCASE, "unknown") logger.info(f"InfiniCoreAdapter: Processing {testcase}") try: @@ -67,7 +67,7 @@ def process(self, test_input: Union[Dict[str, Any], Any]) -> Dict[str, Any]: except Exception as e: # Log error with context, then re-raise for Executor to handle - config = test_input.get(InfiniMetricsJson.CONFIG, {}) + config = test_input.get(InfiniBenchJson.CONFIG, {}) operator = config.get("operator", "unknown") device = config.get("device", "unknown") @@ -82,8 +82,8 @@ def process(self, test_input: Union[Dict[str, Any], Any]) -> Dict[str, Any]: def _convert_to_request(self, legacy_json: dict) -> list: """Convert legacy JSON format to InfiniCore request format.""" - config = legacy_json.get(InfiniMetricsJson.CONFIG, {}) - self.req_metrics_template = legacy_json.get(InfiniMetricsJson.METRICS, []) + config = legacy_json.get(InfiniBenchJson.CONFIG, {}) + self.req_metrics_template = legacy_json.get(InfiniBenchJson.METRICS, []) operator = config.get(OperatorConfig.OPERATOR, "").capitalize() # TODO: need to also support torch.nn and infinicore.nn case @@ -255,11 +255,9 @@ def _handle_bandwidth(self, metric: dict, context: dict, config: dict = None): ) def _convert_from_response(self, saved_files: list, original_req: dict) -> dict: - """Convert InfiniCore saved file content to InfiniMetrics format.""" + """Convert InfiniCore saved file content to InfiniBench format.""" final_json = copy.deepcopy(original_req) - final_json[InfiniMetricsJson.TIME] = datetime.now().strftime( - "%Y-%m-%d %H:%M:%S" - ) + final_json[InfiniBenchJson.TIME] = datetime.now().strftime("%Y-%m-%d %H:%M:%S") try: if not saved_files: @@ -274,10 +272,10 @@ def _convert_from_response(self, saved_files: list, original_req: dict) -> dict: is_success = tc_result.get(InfiniCoreResult.STATUS, {}).get( InfiniCoreResult.SUCCESS, False ) - final_json[InfiniMetricsJson.RESULT_CODE] = 0 if is_success else 1 + final_json[InfiniBenchJson.RESULT_CODE] = 0 if is_success else 1 if not is_success: - final_json[InfiniMetricsJson.ERROR_MSG] = tc_result.get( + final_json[InfiniBenchJson.ERROR_MSG] = tc_result.get( InfiniCoreResult.STATUS, {} ).get(InfiniCoreResult.ERROR, "Unknown") return final_json @@ -315,11 +313,11 @@ def _convert_from_response(self, saved_files: list, original_req: dict) -> dict: self.METRIC_BANDWIDTH: self._handle_bandwidth, } - config = final_json.get(InfiniMetricsJson.CONFIG, {}) + config = final_json.get(InfiniBenchJson.CONFIG, {}) - if InfiniMetricsJson.METRICS in final_json and self.req_metrics_template: + if InfiniBenchJson.METRICS in final_json and self.req_metrics_template: for i, metric in enumerate( - final_json[InfiniMetricsJson.METRICS][ + final_json[InfiniBenchJson.METRICS][ : len(self.req_metrics_template) ] ): @@ -336,8 +334,8 @@ def _convert_from_response(self, saved_files: list, original_req: dict) -> dict: except Exception as e: logger.error(f"[InfiniCoreAdapter] Parsing Error: {e}") - final_json[InfiniMetricsJson.RESULT_CODE] = 1 - final_json[InfiniMetricsJson.ERROR_MSG] = str(e) + final_json[InfiniBenchJson.RESULT_CODE] = 1 + final_json[InfiniBenchJson.ERROR_MSG] = str(e) return final_json diff --git a/infinimetrics/training/.gitkeep b/infinibench/training/.gitkeep similarity index 100% rename from infinimetrics/training/.gitkeep rename to infinibench/training/.gitkeep diff --git a/infinimetrics/training/frameworks/__init__.py b/infinibench/training/frameworks/__init__.py similarity index 100% rename from infinimetrics/training/frameworks/__init__.py rename to infinibench/training/frameworks/__init__.py diff --git a/infinimetrics/training/frameworks/infinitrain_impl.py b/infinibench/training/frameworks/infinitrain_impl.py similarity index 100% rename from infinimetrics/training/frameworks/infinitrain_impl.py rename to infinibench/training/frameworks/infinitrain_impl.py diff --git a/infinimetrics/training/frameworks/megatron_impl.py b/infinibench/training/frameworks/megatron_impl.py similarity index 100% rename from infinimetrics/training/frameworks/megatron_impl.py rename to infinibench/training/frameworks/megatron_impl.py diff --git a/infinimetrics/training/training_adapter.py b/infinibench/training/training_adapter.py similarity index 92% rename from infinimetrics/training/training_adapter.py rename to infinibench/training/training_adapter.py index dc6646b..b98de5f 100644 --- a/infinimetrics/training/training_adapter.py +++ b/infinibench/training/training_adapter.py @@ -2,18 +2,18 @@ from typing import Dict, Any, Union, Optional from datetime import datetime -from infinimetrics.adapter import BaseAdapter -from infinimetrics.input import TestInput -from infinimetrics.common.constants import ( - InfiniMetricsJson, +from infinibench.adapter import BaseAdapter +from infinibench.input import TestInput +from infinibench.common.constants import ( + InfiniBenchJson, TestCategory, AcceleratorType, ) -from infinimetrics.common.testcase_utils import ( +from infinibench.common.testcase_utils import ( generate_run_id_from_config, extract_testcase_components, ) -from infinimetrics.utils.accelerator_monitor import create_accelerator_monitor +from infinibench.utils.accelerator_monitor import create_accelerator_monitor logger = logging.getLogger(__name__) @@ -75,7 +75,7 @@ def setup(self, config: Dict[str, Any]) -> None: # Create framework-specific runner if framework == "megatron": - from infinimetrics.training.frameworks.megatron_impl import MegatronImpl + from infinibench.training.frameworks.megatron_impl import MegatronImpl self.runner = MegatronImpl(config, resolved_device_count, self.run_id) logger.info( @@ -156,14 +156,14 @@ def process(self, test_input: Union[TestInput, Dict[str, Any]]) -> Dict[str, Any # Return standardized response response = { - InfiniMetricsJson.RUN_ID: run_id, - InfiniMetricsJson.TESTCASE: testcase, - InfiniMetricsJson.TIME: datetime.now().strftime("%Y-%m-%d %H:%M:%S"), - InfiniMetricsJson.RESULT_CODE: 0, + InfiniBenchJson.RUN_ID: run_id, + InfiniBenchJson.TESTCASE: testcase, + InfiniBenchJson.TIME: datetime.now().strftime("%Y-%m-%d %H:%M:%S"), + InfiniBenchJson.RESULT_CODE: 0, "success": 0, # 0 = success (backward compatibility) - InfiniMetricsJson.CONFIG: cleaned_config, + InfiniBenchJson.CONFIG: cleaned_config, "resolved": resolved, - InfiniMetricsJson.METRICS: metrics, + InfiniBenchJson.METRICS: metrics, } logger.info(f"Training completed successfully: {testcase}") diff --git a/infinibench/utils/__init__.py b/infinibench/utils/__init__.py new file mode 100644 index 0000000..098b525 --- /dev/null +++ b/infinibench/utils/__init__.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python3 +"""Utilities package for InfiniBench.""" + +from infinibench.utils.input_loader import load_input_file, load_inputs_from_paths +from infinibench.utils.metrics import Metric, ScalarMetric, TimeseriesMetric +from infinibench.utils.time_utils import get_timestamp + +__all__ = [ + "load_input_file", + "load_inputs_from_paths", + "Metric", + "ScalarMetric", + "TimeseriesMetric", + "get_timestamp", +] diff --git a/infinimetrics/utils/accelerator_monitor.py b/infinibench/utils/accelerator_monitor.py similarity index 99% rename from infinimetrics/utils/accelerator_monitor.py rename to infinibench/utils/accelerator_monitor.py index c838105..f7fed3e 100644 --- a/infinimetrics/utils/accelerator_monitor.py +++ b/infinibench/utils/accelerator_monitor.py @@ -10,7 +10,7 @@ import logging from enum import Enum from typing import Dict, List, Optional, Union -from infinimetrics.common.constants import ProcessorType, AcceleratorType +from infinibench.common.constants import ProcessorType, AcceleratorType logger = logging.getLogger(__name__) diff --git a/infinimetrics/utils/git_utils.py b/infinibench/utils/git_utils.py similarity index 100% rename from infinimetrics/utils/git_utils.py rename to infinibench/utils/git_utils.py diff --git a/infinimetrics/utils/hardware_detector.py b/infinibench/utils/hardware_detector.py similarity index 100% rename from infinimetrics/utils/hardware_detector.py rename to infinibench/utils/hardware_detector.py diff --git a/infinimetrics/utils/input_loader.py b/infinibench/utils/input_loader.py similarity index 100% rename from infinimetrics/utils/input_loader.py rename to infinibench/utils/input_loader.py diff --git a/infinimetrics/utils/metrics.py b/infinibench/utils/metrics.py similarity index 100% rename from infinimetrics/utils/metrics.py rename to infinibench/utils/metrics.py diff --git a/infinimetrics/utils/path_utils.py b/infinibench/utils/path_utils.py similarity index 100% rename from infinimetrics/utils/path_utils.py rename to infinibench/utils/path_utils.py diff --git a/infinimetrics/utils/prompt_generator.py b/infinibench/utils/prompt_generator.py similarity index 99% rename from infinimetrics/utils/prompt_generator.py rename to infinibench/utils/prompt_generator.py index 103f42d..b6a086b 100644 --- a/infinimetrics/utils/prompt_generator.py +++ b/infinibench/utils/prompt_generator.py @@ -10,10 +10,10 @@ import json from pathlib import Path from typing import Callable, Optional, Dict, Any, List, Union -from infinimetrics.common.prompt_data import get_template_names, get_topic_names +from infinibench.common.prompt_data import get_template_names, get_topic_names import logging -from infinimetrics.common.prompt_data import ( +from infinibench.common.prompt_data import ( PRESET_TEMPLATES, PRESET_TOPICS, DEFAULT_TEMPLATE_NAME, diff --git a/infinimetrics/utils/time_utils.py b/infinibench/utils/time_utils.py similarity index 100% rename from infinimetrics/utils/time_utils.py rename to infinibench/utils/time_utils.py diff --git a/infinimetrics/utils/token_generator.py b/infinibench/utils/token_generator.py similarity index 100% rename from infinimetrics/utils/token_generator.py rename to infinibench/utils/token_generator.py diff --git a/infinimetrics/utils/trace_client.py b/infinibench/utils/trace_client.py similarity index 99% rename from infinimetrics/utils/trace_client.py rename to infinibench/utils/trace_client.py index 402282e..8a03f05 100644 --- a/infinimetrics/utils/trace_client.py +++ b/infinibench/utils/trace_client.py @@ -16,7 +16,7 @@ from dataclasses import dataclass import numpy as np -from infinimetrics.common.constants import ( +from infinibench.common.constants import ( DEFAULT_TIMEOUT_MS, DEFAULT_TEMPERATURE, DEFAULT_TOP_P, diff --git a/infinimetrics/utils/trace_generator.py b/infinibench/utils/trace_generator.py similarity index 100% rename from infinimetrics/utils/trace_generator.py rename to infinibench/utils/trace_generator.py diff --git a/infinimetrics/hardware/__init__.py b/infinimetrics/hardware/__init__.py deleted file mode 100644 index 47aab85..0000000 --- a/infinimetrics/hardware/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env python3 -"""Hardware benchmark package for InfiniMetrics.""" - -from infinimetrics.hardware.hardware_adapter import HardwareTestAdapter - -__all__ = ["HardwareTestAdapter"] diff --git a/infinimetrics/operators/__init__.py b/infinimetrics/operators/__init__.py deleted file mode 100644 index 70e442c..0000000 --- a/infinimetrics/operators/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env python3 -"""Operators package for InfiniMetrics.""" - -from infinimetrics.operators.flops_calculator import ( - FLOPSCalculator, - calculate_bandwidth, -) -from infinimetrics.operators.infinicore_adapter import InfiniCoreAdapter - -__all__ = [ - "FLOPSCalculator", - "calculate_bandwidth", - "InfiniCoreAdapter", -] diff --git a/infinimetrics/utils/__init__.py b/infinimetrics/utils/__init__.py deleted file mode 100644 index dd51101..0000000 --- a/infinimetrics/utils/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env python3 -"""Utilities package for InfiniMetrics.""" - -from infinimetrics.utils.input_loader import load_input_file, load_inputs_from_paths -from infinimetrics.utils.metrics import Metric, ScalarMetric, TimeseriesMetric -from infinimetrics.utils.time_utils import get_timestamp - -__all__ = [ - "load_input_file", - "load_inputs_from_paths", - "Metric", - "ScalarMetric", - "TimeseriesMetric", - "get_timestamp", -] diff --git a/main.py b/main.py index 2325acc..df0cc93 100644 --- a/main.py +++ b/main.py @@ -1,13 +1,13 @@ #!/usr/bin/env python3 -"""Main entry point for InfiniMetrics test framework.""" +"""Main entry point for InfiniBench test framework.""" import sys import logging import argparse from typing import List, Dict, Any -from infinimetrics.dispatcher import Dispatcher -from infinimetrics.utils import load_inputs_from_paths +from infinibench.dispatcher import Dispatcher +from infinibench.utils import load_inputs_from_paths logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" @@ -57,7 +57,7 @@ def print_summary(results: Dict[str, Any]) -> None: def main(): """Main entry point.""" parser = argparse.ArgumentParser( - description="InfiniMetrics - Test Orchestration Framework", + description="InfiniBench - Test Orchestration Framework", epilog="Examples:\n python main.py input.json\n python main.py /path/to/inputs/\n python main.py input.json --output ./results", formatter_class=argparse.RawDescriptionHelpFormatter, ) diff --git a/pyproject.toml b/pyproject.toml index 50c6741..a96214a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires = ["setuptools", "wheel"] build-backend = "setuptools.build_meta" [project] -name = "infinimetrics" +name = "infinibench" version = "0.1.0" description = "An InfiniTensor-featured comprehensive accelerator evaluation framework" dependencies = [] @@ -32,7 +32,7 @@ exclude = ''' ''' [tool.setuptools.packages.find] -include = ["infinimetrics*", "dashboard*", "db*"] +include = ["infinibench*", "dashboard*", "db*"] [tool.pytest.ini_options] testpaths = ["tests"] diff --git a/requirements-dev.txt b/requirements-dev.txt index b81ecd3..36de70a 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,4 +1,4 @@ -# Development dependencies for InfiniMetrics +# Development dependencies for InfiniBench # Install with: pip install -r requirements-dev.txt # ============================================================ diff --git a/requirements.txt b/requirements.txt index 5ca79c4..451cdec 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ # Core dependencies (none required for basic usage) # Optional: MongoDB support -# pip install infinimetrics[mongodb] +# pip install infinibench[mongodb] pymongo>=4.0.0 # Optional: Dashboard support -# pip install infinimetrics[dashboard] +# pip install infinibench[dashboard] streamlit>=1.28.0 plotly>=5.0.0 pandas>=2.0.0 diff --git a/scripts/README.md b/scripts/README.md index 4c9b090..62a56b9 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -1,6 +1,6 @@ # Testing Scripts -Unified test execution scripts for InfiniMetrics. +Unified test execution scripts for InfiniBench. ## Quick Start diff --git a/scripts/common/install_deps.sh b/scripts/common/install_deps.sh index ba3808b..af2f79e 100755 --- a/scripts/common/install_deps.sh +++ b/scripts/common/install_deps.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Unified dependency management script for InfiniMetrics +# Unified dependency management script for InfiniBench # Usage: ./scripts/common/install_deps.sh [component] # # Components: @@ -201,10 +201,10 @@ install_hardware() { local SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Find project root by going up until we find the marker directory local PROJECT_ROOT="$SCRIPT_DIR" - while [[ "$PROJECT_ROOT" != "/" && ! -d "$PROJECT_ROOT/infinimetrics" ]]; do + while [[ "$PROJECT_ROOT" != "/" && ! -d "$PROJECT_ROOT/infinibench" ]]; do PROJECT_ROOT="$(dirname "$PROJECT_ROOT")" done - local BENCHMARK_PATH="$PROJECT_ROOT/infinimetrics/hardware/cuda-memory-benchmark" + local BENCHMARK_PATH="$PROJECT_ROOT/infinibench/hardware/cuda-memory-benchmark" # 2. Check if already built echo -e "${BLUE}Checking CUDA memory benchmark...${NC}" @@ -278,7 +278,7 @@ main() { local exit_code=0 echo "==========================================" - echo "InfiniMetrics Dependency Manager" + echo "InfiniBench Dependency Manager" echo "==========================================" echo "" diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh index 8e6baa9..b6afed8 100755 --- a/scripts/run_tests.sh +++ b/scripts/run_tests.sh @@ -123,7 +123,7 @@ check_all_deps() { # ======================================== main() { echo "==========================================" - echo "InfiniMetrics Test Runner" + echo "InfiniBench Test Runner" echo "==========================================" echo "" @@ -143,8 +143,8 @@ main() { echo "" # Run tests - log_test_start "InfiniMetrics" - trap 'cleanup_on_error "InfiniMetrics"' ERR + log_test_start "InfiniBench" + trap 'cleanup_on_error "InfiniBench"' ERR echo "Running ${#INPUT_PATHS[@]} input path(s):" for path in "${INPUT_PATHS[@]}"; do @@ -155,7 +155,7 @@ main() { # Execute main.py python main.py "${INPUT_PATHS[@]}" --output "./output/" - log_test_end "InfiniMetrics" $? + log_test_end "InfiniBench" $? } main "$@"