Repository: open-compass/opencompass
Issue: [Bug] 多卡时，GPU7显存占用比其他卡多30G+
Root cause: Resource Mishandling

### 先决条件

- [X] 我已经搜索过 [问题](https://github.com/open-compass/opencompass/issues/) 和 [讨论](https://github.com/open-compass/opencompass/discussions) 但未得到预期的帮助。
- [X] 错误在 [最新版本](https://github.com/open-compass/opencompass) 中尚未被修复。

### 问题类型

我修改了代码（配置不视为代码），或者我正在处理我自己的任务/模型/数据集。

### 环境

```

{'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](https://github.com/open-compass/opencompass/assets/76241118/e9cbd24d-cef7-4bed-9403-f6d322933abd)


### 其他信息

感谢你们提供的测评工具，以下是我在使用opencompass时遇到的问题：

当前采用多卡推理，8卡8进程，相当于数据并行，模型不做切分。

预期应该每个卡占用是相近的。 **这里的gpu0和gpu7相差非常大。请问如何解决？**

另外：
1. 另外整体推理速度很慢，能否支持vllm推理
2. 能否增加与LLM安全问题相关的测评数据集

期待你的回复和建议。 



PPL任务测评时，差异更大 gpu0 70G+， GPU7 20G+

<img width="569" alt="image" src="https://github.com/open-compass/opencompass/assets/76241118/e29d8120-9cd4-48b8-a30d-ac04ce8f6291">


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

> 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](https://github.com/user-attachments/assets/8e1931e4-4275-4404-8999-d6629f4540c5)


> > 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](https://private-user-images.githubusercontent.com/140085732/352955205-8e1931e4-4275-4404-8999-d6629f4540c5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ5MDE2ODcsIm5iZiI6MTcyNDkwMTM4NywicGF0aCI6Ii8xNDAwODU3MzIvMzUyOTU1MjA1LThlMTkzMWU0LTQyNzUtNDQwNC04OTk5LWQ2NjI5ZjQ1NDBjNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODI5JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgyOVQwMzE2MjdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iMzBhYWU5YmVjNmQ4NTFkNWYzZWI0ODE3NTI3MDhmNWIxMzMxMmNjNDgwOTM1ODY3ZTcyZDNkODMzM2UwYWU5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.OJEobdY_ToOAR4puUJdQMoLBbTqh57ZZLiB5164M2wo)

你好，我也遇到同样的情况，单机多卡情况还是只用一张卡推理，请问你解决了吗

> PPL任务测评时，差异更大 gpu0 70G+， GPU7 20G+
> 
> <img alt="image" width="569" src="https://private-user-images.githubusercontent.com/76241118/343682860-e29d8120-9cd4-48b8-a30d-ac04ce8f6291.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDIyODk3MzgsIm5iZiI6MTc0MjI4OTQzOCwicGF0aCI6Ii83NjI0MTExOC8zNDM2ODI4NjAtZTI5ZDgxMjAtOWNkNC00OGI4LWEzMGQtYWMwNGNlOGY2MjkxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAzMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMzE4VDA5MTcxOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdjNjBjYzhmMGRlMTA4NzQwMWNhOWQ2NTM3OWI0MjkyYzFjNGQyZGVjYzg1Yjk5OGFmNWJiZDRiZjQwZmI2YjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.GF1gxSbUY7hRdW3DWAu3ZB4cvmi7LiGucWFQOs95PMQ">

你好，我也遇到了这个情况，请问解决了吗