ipex-llm/python/llm/dev/benchmark/all-in-one
2023-12-12 17:24:06 +08:00
..
prompt transformer int4 and native int4's benchmark script for 32 256 1k 2k input (#8871) 2023-09-07 09:49:55 +08:00
config.yaml [LLM] Add performance tests for windows iGPU (#9584) 2023-12-04 20:50:02 +08:00
README.md Update all-in-one benchmark readme (#9618) 2023-12-07 10:32:09 +08:00
run-arc.sh LLM: add benchmark scripts on GPU (#8916) 2023-09-07 18:08:17 +08:00
run-deepspeed-spr.sh fix llm-init on deepspeed missing lib (#9419) 2023-11-10 13:51:24 +08:00
run-max-gpu.sh LLM: add benchmark script for Max gpu and ipex fp16 gpu (#9112) 2023-10-10 10:18:41 +08:00
run-spr.sh LLM: decoupling bigdl-llm and bigdl-nano (#9306) 2023-11-01 11:00:54 +08:00
run.py Remove empty cache between each iteration of generation (#9660) 2023-12-12 17:24:06 +08:00

All in One Benchmark Test

All in one benchmark test allows users to test all the benchmarks and record them in a result CSV. Users can provide models and related information in config.yaml.

Before running, make sure to have bigdl-llm.

Dependencies

pip install omegaconf
pip install pandas

Install gperftools to use libtcmalloc.so for MAX GPU to get better performance:

conda install -c conda-forge -y gperftools=2.10

Config

Config YAML file has following format

repo_id:
  - 'THUDM/chatglm-6b'
  - 'THUDM/chatglm2-6b'
  - 'meta-llama/Llama-2-7b-chat-hf'
  # - 'liuhaotian/llava-v1.5-7b' # requires a LLAVA_REPO_DIR env variables pointing to the llava dir; added only for gpu win related test_api now
local_model_hub: 'path to your local model hub'
warm_up: 1
num_trials: 3
num_beams: 1 # default to greedy search
low_bit: 'sym_int4' # default to use 'sym_int4' (i.e. symmetric int4)
in_out_pairs:
  - '32-32'
  - '1024-128'
test_api:
  - "transformer_int4"
  - "native_int4"
  - "optimize_model"
  - "pytorch_autocast_bf16"
  # - "ipex_fp16_gpu" # on Intel GPU
  # - "transformer_int4_gpu"  # on Intel GPU
  # - "optimize_model_gpu"  # on Intel GPU
  # - "deepspeed_transformer_int4_cpu" # on Intel SPR Server
  # - "transformer_int4_gpu_win" # on Intel GPU for Windows (catch GPU peak memory)
cpu_embedding: False # whether put embedding to CPU (only avaiable now for gpu win related test_api)

Run

run python run.py, this will output results to results.csv.

For SPR performance, run bash run-spr.sh.

Note

The value of OMP_NUM_THREADS should be the same as the cpu cores specified by numactl -C.

Note

Please install torch nightly version to avoid Illegal instruction (core dumped) issue, you can follow the following command to install: pip install --pre --upgrade torch --index-url https://download.pytorch.org/whl/nightly/cpu

For ARC performance, run bash run-arc.sh.

For MAX GPU performance, run bash run-max-gpu.sh.