|
3 | 3 | </div>
|
4 | 4 |
|
5 | 5 |
|
6 |
| -# Byte MLPerf Inference Benchmark Tool |
7 |
| -Byte MLPerf(Inference) is an AI Accelerator Benchmark that focuses on evaluating AI Accelerators from practical production perspective, including the ease of use and versatility of software and hardware. Byte MLPerf has the following characteristics: |
| 6 | +# ByteMLPerf Benchmark Tool |
| 7 | +ByteMLPerf is an AI Accelerator Benchmark that focuses on evaluating AI Accelerators from practical production perspective, including the ease of use and versatility of software and hardware. Byte MLPerf has the following characteristics: |
8 | 8 | - Models and runtime environments are more closely aligned with practical business use cases.
|
9 | 9 | - For ASIC hardware evaluation, besides evaluate performance and accuracy, it also measure metrics like compiler usability and coverage.
|
10 | 10 | - Performance and accuracy results obtained from testing on the open Model Zoo serve as reference metrics for evaluating ASIC hardware integration.
|
11 | 11 |
|
12 |
| -Vendors can refer to this document for guidance on building backend: [ByteMLPerf Guide](https://bytedance.us.feishu.cn/docx/L98Mdw3J6obMtJxeRBzuHeRbsof) [[中文版](https://bytedance.feishu.cn/docs/doccno9eLS3OseTA5aMBeeQf2cf#TDK8of)] |
13 |
| -Also, you can visit our offical website here:[bytemlperf.ai](https://bytemlperf.ai/) |
| 12 | +## Category |
| 13 | +The ByteMLPerf benchmark is structured into three main categories: Inference, Training, and Micro, each targeting different aspects of AI accelerator performance: |
14 | 14 |
|
15 |
| -## Usage |
16 |
| -The user uses launch.py as the entry point. When using Byte MLPerf to evaluate the model, you only need to pass in two parameters --task and --hardware_type, as shown below: |
17 |
| -```bash |
18 |
| -python3 launch.py --task xxx --hardware_type xxx |
19 |
| -``` |
| 15 | +- Inference: This category is subdivided into two distinct sections to cater to different types of models: |
20 | 16 |
|
21 |
| -1. task |
22 |
| ---task parameter is the name of the incoming workload. You need to specify the workload. For example, if you would like to evaluate the workload: bert-tf-fp16.json, you need to specify --task bert-tf-fp16. |
23 |
| -Note: All workloads are defined under general_perf/workloads, and the name needs to be aligned with the file name when passing parameters. The current format is model-framework-precision. |
| 17 | + - General Performance: This section is dedicated to evaluating the inference capabilities of accelerators using common models such as ResNet-50 and BERT. It aims to provide a broad understanding of the accelerator's performance across a range of typical tasks. Vendors can refer to this document for guidance on building general perf backend: [ByteMLPerf General Perf Guide](https://bytedance.us.feishu.cn/docx/L98Mdw3J6obMtJxeRBzuHeRbsof) [[中文版](https://bytedance.feishu.cn/docs/doccno9eLS3OseTA5aMBeeQf2cf#TDK8of)] |
24 | 18 |
|
25 |
| -2. hardware_type |
26 |
| ---hardware_type parameter is the incoming hardware_type name, there is no default value, it must be specified by the user. Example: To evaluate Habana Goya, specify --hardware_type GOYA . |
27 |
| -Note: All hardware types are defined under general_perf/backends, and the name needs to be aligned with the folder name when passing parameters. |
| 19 | + - Large Language Model (LLM) Performance: Specifically designed to assess the capabilities of accelerators in handling large language models, this section addresses the unique challenges posed by the size and complexity of these models. Vendors can refer to this document for guidance on building llm perf backend: [ByteMLPerf LLM Perf Guide](https://bytedance.larkoffice.com/docx/ZoU7dkPXYoKtJtxlrRMcNGMwnTc) [[中文版](https://bytedance.larkoffice.com/docx/ZoU7dkPXYoKtJtxlrRMcNGMwnTc)] |
28 | 20 |
|
29 |
| -3. compile_only |
30 |
| ---compile_only parameter will make task stoped once compilation is finished |
| 21 | +- Micro: The Micro category focuses on the performance of specific operations or "ops" that are fundamental to AI computations, such as Gemm, Softmax, and various communication operations. This granular level of testing is crucial for understanding the capabilities and limitations of accelerators at a more detailed operational level. Vendors can refer to this document for guidance on building micro perf backend: [ByteMLPerf Micro Perf Guide](https://bytedance.us.larkoffice.com/docx/EpjFdSpRsoOIHWxtKgjuRsMPsFB)[[中文版](https://bytedance.us.larkoffice.com/docx/LJWvdGVAzoxXkTxF9h9uIETbsWc)] |
31 | 22 |
|
32 |
| -4. show_task_list |
33 |
| ---show_task_list parameter will print all task name |
| 23 | +- Training: Currently under development, this category aims to evaluate the performance of AI accelerators in training scenarios. It will provide insights into how well accelerators can handle the computationally intensive process of training AI models, which is vital for the development of new and more advanced AI systems. |
34 | 24 |
|
35 |
| -5. show_hardware_list |
36 |
| ---show_hardware_list parameter will print all hardware backend |
| 25 | +Vendors looking to evaluate and improve their AI accelerators can utilize the ByteMLPerf benchmark as a comprehensive guide. The benchmark not only offers a detailed framework for performance and accuracy evaluation but also includes considerations for compiler usability and coverage for ASIC hardware, ensuring a holistic assessment approach. |
37 | 26 |
|
38 |
| -### Workload Description |
39 |
| -A workload definition needs to contain the following fields: |
40 |
| -```javascript |
41 |
| -{ |
42 |
| - "model": "bert-torch-fp32", //The name of the model to be evaluated, which needs to be aligned with the model_zoo name |
43 |
| - "test_perf": true, //Evaluate model performance |
44 |
| - "test_accuracy": true, //Evaluate model accuracy |
45 |
| - "test_numeric": true, //Accuracy:Evaluate model numeric |
46 |
| - "clients": 3, //Performance:Client threads that submit data |
47 |
| - "iterations": 100, //Performance:How many iterations are submitted by each thread |
48 |
| - "batch_sizes":[1,4,8,16,32,64],//Performance:The batch size when each thread submits data |
49 |
| - "data_percent": 50, //Accuracy:Ratio of data to assess accuracy, [1-100] |
50 |
| - "compile_only": false, //Compile the model only |
51 |
| -} |
52 |
| -``` |
53 |
| - |
54 |
| -## Model Zoo List |
55 |
| -Model Zoo&Dataset |
56 |
| -The models supported by Byte MLPerf are collected under the Model Zoo. From the perspective of access rights, they are currently divided into internal models and open models. Released with Byte MLPerf is the open model included in the corresponding version. |
57 |
| - |
58 |
| -Open model collection principles: |
59 |
| -- Basic Model: including Resnet50, Bert and WnD; |
60 |
| -- Popular Model:Includes models currently widely used in the industry; |
61 |
| -- SOTA: including SOTA models corresponding to business domains; |
62 |
| - |
63 |
| -In addition to the complete model structure, Byte MLPerf will also add some typical model substructure subgraphs or OPs (provided that the open model cannot find a suitable model containing such classic substructures), such as transformer encoder/decoder with different sequence lengths , all kinds of common conv ops, such as group conv, depwise-conv, point-wise conv, and rnn common structures, such as gru/lstm, etc. |
64 |
| - |
65 |
| -| Model | Domain | Purpose | Framework | Dataset | Precision | |
66 |
| -| ---- | ---- | ---- | ---- | ---- | ---- | |
67 |
| -| resnet50-v1.5 | cv | regular | tensorflow, pytorch | imagenet2012 | fp32 | |
68 |
| -| bert-base | nlp | regular | tensorflow, pytorch | squad-1.1 | fp32 | |
69 |
| -| wide&deep | rec | regular | tensorflow | criteo | fp32 | |
70 |
| -| videobert | mm |popular | onnx | cifar100 | fp32 | |
71 |
| -| albert | nlp | popular | pytorch | squad-1.1 | fp32 | |
72 |
| -| conformer | nlp | popular | onnx | none | fp32 | |
73 |
| -| roformer | nlp | popular | tensorflow | cail2019 | fp32 | |
74 |
| -| yolov5 | cv | popular | onnx | none | fp32 | |
75 |
| -| roberta | nlp | popular | pytorch | squad-1.1 | fp32 | |
76 |
| -| deberta | nlp | popular | pytorch | squad-1.1 | fp32 | |
77 |
| -| swin-transformer | cv | popular | pytorch | imagenet2012 | fp32 | |
78 |
| -| gpt2 | nlp | sota | pytorch | none | fp32 | |
79 |
| -| stable diffusion | cv | sota | onnx | none | fp32 | |
80 |
| -| LlaMa2 7B | nlp | sota | torch | none | fp16 | |
81 |
| -| chatGLM2 6B | nlp | sota | torch | none | fp16 | |
82 |
| - |
83 |
| -### ByteIR |
84 |
| - |
85 |
| -The ByteIR Project is a ByteDance model compilation solution. ByteIR includes compiler, runtime, and frontends, and provides an end-to-end model compilation solution. |
86 |
| - |
87 |
| -Although all ByteIR components (compiler/runtime/frontends) are together to provide an end-to-end solution, and all under the same umbrella of this repository, each component technically can perform independently. |
88 |
| - |
89 |
| -For More Information, please refer to [ByteIR](https://github.com/bytedance/byteir) |
90 |
| - |
91 |
| -Models Supported By ByteIR: |
92 |
| -| Model | Domain | Purpose | Framework | Dataset | Precision | |
93 |
| -| ---- | ---- | ---- | ---- | ---- | ---- | |
94 |
| -| resnet50-v1.5 | cv | regular | [mhlo](https://lf-bytemlperf.17mh.cn/obj/bytemlperf-zoo/resnet50_mhlo.tar) | imagenet2012 | fp32 | |
95 |
| -| bert-base | nlp | regular | [mhlo](https://lf-bytemlperf.17mh.cn/obj/bytemlperf-zoo/bert_mhlo.tar) | squad-1.1 | fp32 | |
| 27 | +For more details, you can visit our offical website here: [bytemlperf.ai](https://bytemlperf.ai/) |
96 | 28 |
|
97 | 29 | ## Vendor List
|
98 | 30 | ByteMLPerf Vendor Backend List will be shown below
|
99 | 31 |
|
100 |
| -| Vendor | SKU | Key Parameters | Supplement | |
101 |
| -| :---- | :----| :---- | :---- | |
102 |
| -| Intel | Xeon | - | - | |
103 |
| -| Stream Computing | STC P920 | <li>Computation Power:128 TFLOPS@FP16 <li> Last Level Buffer: 8MB, 256GB/s <li>Level 1 Buffer: 1.25MB, 512GB/s <li> Memory: 16GB, 119.4GB/S <li> Host Interface:PCIe 4, 16x, 32GB/s <li> TDP: 160W | [STC Introduction](byte_infer_perf/general_perf/backends/STC/README.md) | |
104 |
| -| Graphcore | Graphcore® C600 | <li>Compute: 280 TFLOPS@FP16, 560 TFLOPS@FP8 <li> In Processor Memory: 900 MB, 52 TB/s <li> Host Interface: Dual PCIe Gen4 8-lane interfaces, 32GB/s <li> TDP: 185W | [IPU Introduction](byte_infer_perf/general_perf/backends/IPU/README.md) | |
105 |
| -| Moffett-AI | Moffett-AI S30 | <li>Compute: 1440 (32x-Sparse) TFLOPS@BF16, 2880 (32x-Sparse) TOPS@INT8, <li> Memory: 60 GB, <li> Host Interface: Dual PCIe Gen4 8-lane interfaces, 32GB/s <li> TDP: 250W | [SPU Introduction](byte_infer_perf/general_perf/backends/SPU/README.md) | |
106 |
| -| Habana | Gaudi2 | <li>24 Tensor Processor Cores, Dual matrix multiplication engines <li> Memory: 96 GB HBM2E, 48MB SRAM | [HPU Introduction](byte_infer_perf/general_perf/backends/HPU/README.md) | |
| 32 | +| Vendor | SKU | Key Parameters | Inference(General Perf) | Inference(LLM Perf) | |
| 33 | +| :---- | :----| :---- | :---- | :---- | |
| 34 | +| Intel | Xeon | - | - | - | |
| 35 | +| Stream Computing | STC P920 | <li>Computation Power:128 TFLOPS@FP16 <li> Last Level Buffer: 8MB, 256GB/s <li>Level 1 Buffer: 1.25MB, 512GB/s <li> Memory: 16GB, 119.4GB/S <li> Host Interface:PCIe 4, 16x, 32GB/s <li> TDP: 160W | [STC Introduction](byte_infer_perf/general_perf/backends/STC/README.md) | - | |
| 36 | +| Graphcore | Graphcore® C600 | <li>Compute: 280 TFLOPS@FP16, 560 TFLOPS@FP8 <li> In Processor Memory: 900 MB, 52 TB/s <li> Host Interface: Dual PCIe Gen4 8-lane interfaces, 32GB/s <li> TDP: 185W | [IPU Introduction](byte_infer_perf/general_perf/backends/IPU/README.md) | - | |
| 37 | +| Moffett-AI | Moffett-AI S30 | <li>Compute: 1440 (32x-Sparse) TFLOPS@BF16, 2880 (32x-Sparse) TOPS@INT8, <li> Memory: 60 GB, <li> Host Interface: Dual PCIe Gen4 8-lane interfaces, 32GB/s <li> TDP: 250W | [SPU Introduction](byte_infer_perf/general_perf/backends/SPU/README.md) | - | |
| 38 | +| Habana | Gaudi2 | <li>24 Tensor Processor Cores, Dual matrix multiplication engines <li> Memory: 96 GB HBM2E, 48MB SRAM | [HPU Introduction](byte_infer_perf/general_perf/backends/HPU/README.md) | - | |
107 | 39 |
|
108 | 40 | ## Statement
|
109 | 41 | [ASF Statement on Compliance with US Export Regulations and Entity List](https://news.apache.org/foundation/entry/statement-by-the-apache-software)
|
0 commit comments