|
| 1 | +## 🚣♂️ 使用PaddleNLP在DCU(K100_AI)下跑通llama2-7b模型 🚣 |
| 2 | +PaddleNLP在海光 DCU-K100AI 芯片上对llama系列模型进行了深度适配和优化,此文档用于说明在DCU-K100_AI上使用PaddleNLP进行llama系列模型进行高性能推理的流程。 |
| 3 | + |
| 4 | +### 检查硬件: |
| 5 | + |
| 6 | + | 芯片类型 | 驱动版本 | |
| 7 | + | --- | --- | |
| 8 | + | K100_AI | 6.2.17a | |
| 9 | + |
| 10 | +**注:如果要验证您的机器是否为海光K100-AI芯片,只需系统环境下输入命令,看是否有输出:** |
| 11 | +``` |
| 12 | +lspci | grep -i -E "disp|co-pro" |
| 13 | +
|
| 14 | +# 显示如下结果 - |
| 15 | +37:00.0 Co-processor: Chengdu Haiguang IC Design Co., Ltd. Device 6210 (rev 01) |
| 16 | +3a:00.0 Co-processor: Chengdu Haiguang IC Design Co., Ltd. Device 6210 (rev 01) |
| 17 | +``` |
| 18 | + |
| 19 | +### 环境准备: |
| 20 | +注意:K100_AI 芯片需要安装DTK 24.04 及以上版本,请按照下面步骤进行 |
| 21 | +1. 拉取镜像 |
| 22 | +``` |
| 23 | +# 注意此镜像仅为开发环境,镜像中不包含预编译的飞桨安装包 |
| 24 | +docker pull registry.baidubce.com/device/paddle-dcu:dtk24.04.1-kylinv10-gcc73-py310 |
| 25 | +``` |
| 26 | +2. 参考如下命令启动容器 |
| 27 | +``` |
| 28 | +docker run -it --name paddle-dcu-dev -v `pwd`:/work \ |
| 29 | + -w=/work --shm-size=128G --network=host --privileged \ |
| 30 | + --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \ |
| 31 | + registry.baidubce.com/device/paddle-dcu:dtk24.04.1-kylinv10-gcc73-py310 /bin/bash |
| 32 | +``` |
| 33 | +3. 安装paddle |
| 34 | +``` |
| 35 | +# paddlepaddle『飞桨』深度学习框架,提供运算基础能力 |
| 36 | +git clone https://github.com/PaddlePaddle/Paddle.git |
| 37 | +cd Paddle && mkdir build && cd build |
| 38 | +
|
| 39 | +cmake .. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_CXX_FLAGS="-Wno-error -w" \ |
| 40 | + -DPY_VERSION=3.10 -DPYTHON_EXECUTABLE=`which python3` -DWITH_CUSTOM_DEVICE=OFF \ |
| 41 | + -DWITH_TESTING=OFF -DON_INFER=ON -DWITH_DISTRIBUTE=ON -DWITH_MKL=ON \ |
| 42 | + -DWITH_ROCM=ON -DWITH_RCCL=ON |
| 43 | +
|
| 44 | +make -j128 |
| 45 | +pip install -U python/dist/paddlepaddle_rocm-0.0.0-cp310-cp310-linux_x86_64.whl |
| 46 | +
|
| 47 | +# 检查是否安装正常 |
| 48 | +python -c "import paddle; paddle.version.show()" |
| 49 | +python -c "import paddle; paddle.utils.run_check()" |
| 50 | +
|
| 51 | +``` |
| 52 | +4. 克隆PaddleNLP仓库代码,并安装依赖 |
| 53 | +``` |
| 54 | +# PaddleNLP是基于paddlepaddle『飞桨』的自然语言处理和大语言模型(LLM)开发库,存放了基于『飞桨』框架实现的各种大模型,llama系列模型也包含其中。为了便于您更好地使用PaddleNLP,您需要clone整个仓库。 |
| 55 | +pip install --pre --upgrade paddlenlp -f https://www.paddlepaddle.org.cn/whl/paddlenlp.html |
| 56 | +``` |
| 57 | +5. 安装 paddlenlp_ops |
| 58 | +``` |
| 59 | +# PaddleNLP仓库内置了专用的融合算子,以便用户享受到极致压缩的推理成本 |
| 60 | +git clone https://github.com/PaddlePaddle/PaddleNLP.git |
| 61 | +cd PaddleNLP/csrc/ |
| 62 | +python setup_hip.py install |
| 63 | +cd - |
| 64 | +``` |
| 65 | + |
| 66 | +### 高性能推理: |
| 67 | +海光的推理命令与GPU推理命令一致,请参考[大模型推理教程](https://github.com/PaddlePaddle/PaddleNLP/blob/develop/llm/docs/inference.md). |
0 commit comments