open-compass / opencompass

OpenCompass is an LLM evaluation platform, supporting a wide range of models (Llama3, Mistral, InternLM2,GPT-4,LLaMa2, Qwen,GLM, Claude, etc) over 100+ datasets.
https://opencompass.org.cn/
Apache License 2.0
4.06k stars 429 forks source link

[Bug] 多卡时,GPU7显存占用比其他卡多30G+ #1277

Open dhcode-cpp opened 4 months ago

dhcode-cpp commented 4 months ago

先决条件

问题类型

我修改了代码(配置不视为代码),或者我正在处理我自己的任务/模型/数据集。

环境


{'CUDA available': True,
 'CUDA_HOME': '/usr',
 'GCC': 'gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0',
 'GPU 0,1,2,3,4,5,6,7': 'NVIDIA A100-SXM4-80GB',
 'MMEngine': '0.10.4',
 'MUSA available': False,
 'NVCC': 'Cuda compilation tools, release 11.5, V11.5.119',
 'OpenCV': '4.10.0',
 'PyTorch': '2.3.0+cu121',
 'PyTorch compiling details': 'PyTorch built with:\n'
                              '  - GCC 9.3\n'
                              '  - C++ Version: 201703\n'
                              '  - Intel(R) oneAPI Math Kernel Library Version '
                              '2023.1-Product Build 20230303 for Intel(R) 64 '
                              'architecture applications\n'
                              '  - Intel(R) MKL-DNN v3.3.6 (Git Hash '
                              '86e6af5974177e513fd3fee58425e1063e7f1361)\n'
                              '  - OpenMP 201511 (a.k.a. OpenMP 4.5)\n'
                              '  - LAPACK is enabled (usually provided by '
                              'MKL)\n'
                              '  - NNPACK is enabled\n'
                              '  - CPU capability usage: AVX2\n'
                              '  - CUDA Runtime 12.1\n'
                              '  - NVCC architecture flags: '
                              '-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90\n'
                              '  - CuDNN 8.9.2\n'
                              '  - Magma 2.6.1\n'
                              '  - Build settings: BLAS_INFO=mkl, '
                              'BUILD_TYPE=Release, CUDA_VERSION=12.1, '
                              'CUDNN_VERSION=8.9.2, '
                              'CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, '
                              'CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 '
                              '-fabi-version=11 -fvisibility-inlines-hidden '
                              '-DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO '
                              '-DLIBKINETO_NOROCTRACER -DUSE_FBGEMM '
                              '-DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK '
                              '-DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE '
                              '-O2 -fPIC -Wall -Wextra -Werror=return-type '
                              '-Werror=non-virtual-dtor -Werror=bool-operation '
                              '-Wnarrowing -Wno-missing-field-initializers '
                              '-Wno-type-limits -Wno-array-bounds '
                              '-Wno-unknown-pragmas -Wno-unused-parameter '
                              '-Wno-unused-function -Wno-unused-result '
                              '-Wno-strict-overflow -Wno-strict-aliasing '
                              '-Wno-stringop-overflow -Wsuggest-override '
                              '-Wno-psabi -Wno-error=pedantic '
                              '-Wno-error=old-style-cast -Wno-missing-braces '
                              '-fdiagnostics-color=always -faligned-new '
                              '-Wno-unused-but-set-variable '
                              '-Wno-maybe-uninitialized -fno-math-errno '
                              '-fno-trapping-math -Werror=format '
                              '-Wno-stringop-overflow, LAPACK_INFO=mkl, '
                              'PERF_WITH_AVX=1, PERF_WITH_AVX2=1, '
                              'PERF_WITH_AVX512=1, TORCH_VERSION=2.3.0, '
                              'USE_CUDA=ON, USE_CUDNN=ON, USE_CUSPARSELT=1, '
                              'USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, '
                              'USE_GLOG=OFF, USE_GLOO=ON, USE_MKL=ON, '
                              'USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=1, '
                              'USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF, '
                              'USE_ROCM_KERNEL_ASSERT=OFF, \n',
 'Python': '3.11.9 (main, Apr 19 2024, 16:48:06) [GCC 11.2.0]',
 'TorchVision': '0.18.1+cu121',
 'numpy_random_seed': 2147483648,
 'opencompass': '0.2.5+e0d7808',
 'sys.platform': 'linux'}

重现问题 - 代码/配置示例

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python run.py --models hf_xdg-llama-3-8b --datasets  ceval_gen  cmmlu_gen mmlu_gen --num-gpus 8

我尝试其他的模型也有这个问题

重现问题 - 命令或脚本

CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python run.py --models hf_xdg-llama-3-8b --datasets  ceval_gen  cmmlu_gen mmlu_gen --num-gpus 8

这个模型是我自己定制的

重现问题 - 错误信息

image

其他信息

感谢你们提供的测评工具,以下是我在使用opencompass时遇到的问题:

当前采用多卡推理,8卡8进程,相当于数据并行,模型不做切分。

预期应该每个卡占用是相近的。 这里的gpu0和gpu7相差非常大。请问如何解决?

另外:

  1. 另外整体推理速度很慢,能否支持vllm推理
  2. 能否增加与LLM安全问题相关的测评数据集

期待你的回复和建议。

dhcode-cpp commented 4 months ago

PPL任务测评时,差异更大 gpu0 70G+, GPU7 20G+

image
tonysy commented 4 months ago

Hi, we actually has supported the vllm and lmdeploy. Please check the doc.

runjieovo commented 3 months ago

Hi, we actually has supported the vllm and lmdeploy. Please check the doc.

Thank you for offering the open-compass. I've tried the lmdeploy. It achieved stability and high infer speed. However, when I set num_gpus = 2 in the configs, it still run on only one gpu. How can I fix this? image

LKAMING97 commented 2 months ago

Hi, we actually has supported the vllm and lmdeploy. Please check the doc.

Thank you for offering the open-compass. I've tried the lmdeploy. It achieved stability and high infer speed. However, when I set num_gpus = 2 in the configs, it still run on only one gpu. How can I fix this? image

你好,我也遇到同样的情况,单机多卡情况还是只用一张卡推理,请问你解决了吗