diff --git a/README.md b/README.md index b3ce2d0814ab0668af114e5b4e53fdb2d4a6088f..5a447cd8d79dd2b2f79b8522561df35885dd5517 100644 --- a/README.md +++ b/README.md @@ -3,29 +3,29 @@ ### 名词定义 |名词|定义| | --- | --- | -|点事件|模型推理/训练过程中瞬间发生的事件、或是对某些值的记录| -|持续事件|模型推理/训练过程中会持续一段时间的事件| -|stubs程序|执行标准AI测试时,在被测试者端运行的用于拉起模型负载的控制程序| +|点事件|模型训练、推理过程中,瞬间发生的事件或是对某些值的记录。| +|持续事件|模型训练、推理过程中,会持续一段时间的事件。| +|Stubs程序|执行标准AI测试时,被测试者运行的用于拉起模型负载的控制程序。| ### 工具概述 -AISBench打点组件logging(后简称logging工具)提供标准化接口,用于在模型负载中进行打点,记录模型运行数据。并且提供汇总上报功能,将多卡数据汇总上报stubs程序。logging工具可以和stubs搭配使用,也可以单独用于脚本中的打点。 +AISBench打点组件logging(后简称logging工具)提供标准化接口,用于在模型负载中进行打点,记录模型运行数据。并且提供汇总上报功能,将多卡数据汇总上报给Stubs程序。logging工具可以和Stubs搭配使用,也可以单独用于脚本中的打点。 ### 工具依赖 -``` -os: linux -python version: >3.6 -``` + +- OS:Linux +- Python版本:Python 3.7及以上版本 ## 安装和卸载 ### 安装logging -1. 解压Stubs程序包`Ais-Benchmark-Stubs--.tar.gz`并进入子目录。(arch表示CPU架构,version表示Stubs版本号) -2. 进入Stubs程序包中的`dependencies/logging/`目录,确认路径下有文件`ais_bench_logging--py3-none-linux_.whl`, 用pip安装: - ``` +1. 从[logging发行版](https://gitee.com/aisbench/logging/releases/)获取whl包,`ais_bench_logging--py3-none-linux_.whl`, 通过`pip install`命令安装: + + ```bash pip install ais_bench_logging--py3-none-linux_.whl --force-reinstall ``` -3. 输入`pip show ais_bench_logging`确认安装完成,命令行打屏如下: - ``` + +2. 执行`pip show ais_bench_logging`确认安装完成,输出结果如下: + ```bash Name: ais-bench-logging Version: 2.1 Summary: ais_bench logging @@ -38,7 +38,7 @@ python version: >3.6 Required-by: ``` ### 卸载logging -如果要卸载打点组件logging,可以使用如下命令: +卸载logging可以使用如下命令: ```bash pip uninstall ais_bench_logging ``` @@ -51,86 +51,123 @@ from ais_bench.logging import ``` 其中`some function`表示对应的接口函数。 ### API使用介绍 -#### init(初始化接口) - 函数原型 +#### init(初始化) +- 功能说明 + + 用于初始化。初始化失败,则在后续的打点中只会执行打屏,不会执行落盘。 + +- 函数原型 ```python init(task_type: str, log_dir:str) ``` -需要传入 -- 本次记录的模型运行任务的类型,可接受"training"或者"inference"。 -- 落盘文件的目录。 -用于初始化。初始化失败,则在后续的打点中只会执行打屏,不会执行落盘。 +- 参数说明 + + | 参数 | 说明 | + | --------- | ------------------------------------------------------------ | + | task_type | 本次记录的模型运行任务的类型,可取值:"training"或"inference"。 | + | log_dir | 落盘文件的目录。 | + +#### start(持续事件开始打点) -#### start(持续事件开始打点接口) -函数原型 +- 功能说明 + + 用于记录持续事件的开始,传入的事件名称如果不是规定字段,则只会进行打屏,不会对此打点做记录。 + +- 函数原型 ```python start(event_name: str, sample_num: int) ``` -需要传入: -- 事件名称。 -- 样本数量。 -用于记录持续事件的开始,传入的事件名称如果不是规定字段,则只会进行打屏,不会对此打点做记录。 +- 参数说明 + + | 参数 | 说明 | + | ---------- | ---------- | + | event_name | 事件名称。 | + | sample_num | 样本数量。 | +#### end(持续事件结束打点) -#### end(持续事件结束打点接口) -函数原型 +- 功能说明 + + 用于记录持续事件的结束,传入的事件名称如果不是规定字段,则只会进行打屏,不会对此打点做记录。 + +- 函数原型 ```python end(event_name: str, sample_num: int) ``` -需要传入: -- 事件名称。 -- 样本数量。 -用于记录持续事件的结束,传入的事件名称如果不是规定字段,则只会进行打屏,不会对此打点做记录。 +- 参数说明 + + | 参数 | 说明 | + | ---------- | ---------- | + | event_name | 事件名称。 | + | sample_num | 样本数量。 | + +#### event(点事件打点) -#### event(点事件打点接口) -函数原型 +- 功能说明 + + 用于记录点事件的取值,传入的事件名称如果不是规定字段,则只会进行打屏,不会对此字段对应的值做记录。 + +- 函数原型 ```python event(event_name: str, value: str) ``` -需要传入: -- 事件名称。 -- 事件对应的值。 -用于记录持续事件的结束,传入的事件名称如果不是规定字段,则只会进行打屏,不会对此打点做记录。 +- 参数说明 + + | 参数 | 说明 | + | ---------- | -------------- | + | event_name | 事件名称。 | + | value | 事件对应的值。 | -#### finish(后处理接口) -函数原型 +#### finish(后处理) + +- 功能说明 + + 和init配套使用,在所有打点完成之后调用,实现数据的落盘。 + +- 函数原型 ```python finish() ``` -和init配套使用,在所有打点完成之后调用,实现数据的落盘。 -#### collect_report(汇总上报接口) -函数原型 +#### collect_report(汇总上报) + +- 功能说明 + + 用于从指定目录中获取指定任务类型的性能数据文件,并将其上报给Stubs程序。多次使用需要注意清理历史json文件。 + +- 函数原型 ```python collect_report(task_type: str, log_dirs: List[str]) ``` -需要传入: -- 任务类型,可接受"training"或者"inference"。 -- 数据文件目录的列表。 -用于从指定目录中获取指定任务类型的性能数据文件,并将其上报stubs程序。多次使用需要注意清理历史json文件。 +- 参数说明 + + | 参数 | 说明 | + | --------- | ------------------------------------------- | + | task_type | 任务类型,可取值:"training"或"inference"。 | + | log_dirs | 数据文件目录的列表。 | ### 附录 #### 调试方法 -设置日志等级,以获取调试信息。1表示debug,2表示info,3表示warning,4表示error +设置日志等级,以获取调试信息。1表示debug,2表示info,3表示warning,4表示error。 ```shell export AISBENCH_LOG_LEVEL=1 ``` #### 整体打点规则 -当logging模块和stubs配合使用时,对于训练和推理都需要记录"result"点事件。 +当logging模块和Stubs配合使用时,对于训练和推理都需要记录"result"点事件。 #### 训练任务持续事件规定字段 "dataload", // 数据读入