参考代码

vLLM 0.4.2版本昇腾框架适配代码目录结构如下所示:

├── cover
│   ├── requirements-ascend.txt
│   ├── setup.py
│   └── vllm
│       └── __init__.py
├── examples
│   ├── offline_inference.py
│   ├── offline_inference.sh
│   └── start_server.sh
├── install.sh
├── README.md
└── vllm_npu
    ├── README.md
    ├── requirements.txt
    ├── setup.py
    └── vllm_npu
        ├── attention
        │   ├── backends.py
        │   ├── __init__.py
        │   └── selector.py
        ├── config.py
        ├── core
        │   └── __init__.py
        ├── engine
        │   ├── arg_utils.py
        │   ├── ascend_engine.py
        │   ├── async_ascend_engine.py
        │   └── __init__.py
        ├── executor
        │   ├── ascend_executor.py
        │   ├── ascend_ray_executor.py
        │   ├── __init__.py
        │   └── ray_utils.py
        ├── __init__.py
        ├── model_executor
        │   ├── ascend_model_loader.py
        │   ├── __init__.py
        │   ├── layers
        │   │   ├── ascend_sampler.py
        │   │   └── __init__.py
        │   └── models
        │       ├── ascend
        │       │   ├── __init__.py
        │       │   └── mindie_llm_wrapper.py
        │       └── __init__.py
        ├── npu_adaptor.py
        ├── usage
        │   ├── __init__.py
        │   └── usage_lib.py
        ├── utils.py
        └── worker
            ├── ascend_model_runner.py
            ├── ascend_worker.py
            ├── cache_engine.py
            └── __init__.py

其中主要包括如下四个部分

  1. cover文件夹下包含了对vllm框架源码的修改内容。
  2. examples文件夹下包含了离线模式和在线模式的使用实例代码。
  3. vllm_npu文件夹下包含了补丁仓的源码内容。
  4. install.sh为一键式安装脚本,在将所有的代码文件都还原后,即可运行该脚本一键安装昇腾适配版的vllm框架,其中会自动拉取源码安装vllm原生框架并打上适配补丁。

代码仓中各个文件的代码内容