3
DCU技术达人
如何在DCU上面编译llama.cpp
2026-07-04 09:53:39
264
推荐一个免费的[语音识别网站](https://www.scnet.cn/ui/aihub/agent/zhenghong/asr) # 一、环境配置 操作系统以及各种软件的版本如下: ![1783129876616.png](/api-forum/file/RedirectImage?path=20260704/1783129876785_1783129876616.png '1783129876616.png') # 二、下载代码并编译 ```bash # 注意要下载b6792版本,因为最新的版本你到最后会发现gguf模型在推理时,会报各种乱码 git clone --depth 1 --branch b6792 https://github.com/ggml-org/llama.cpp.git cd llama.cpp HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" cmake -S . -B build -DGGML_HIP=ON -DGPU_TARGETS=gfx928 -DCMAKE_BUILD_TYPE=Release ``` *备注:在上面的命令中,gfx928是DCU的架构名称,可以通过下面的命令获得:* ```bash clinfo | grep Name ``` 编译时,报错如下: ![1783129907036.png](/api-forum/file/RedirectImage?path=20260704/1783129907221_1783129907036.png '1783129907036.png') 此时,vi examples/CMakeLists.txt,将simple文件夹那行注释掉: ![1783129925440.png](/api-forum/file/RedirectImage?path=20260704/1783129925670_1783129925440.png '1783129925440.png') 重新运行上面的编译命令,再次报错如下: ![1783129940858.png](/api-forum/file/RedirectImage?path=20260704/1783129941037_1783129940858.png '1783129940858.png') 解决办法是: ```bash sed -i 's/5\.3\.25211/6.3.25211/g' /opt/dtk/lib/cmake/hip/hip-config-version.cmake ``` 然后再次重新运行上面的编译命令。 完成后,再运行:(下面的128可改为你真实的cpu核数) ```bash cmake --build build --config Release -- -j 128 ``` 此处的编译时间很长,需耐心等待。 如果中途报错如下: ![1783129959453.png](/api-forum/file/RedirectImage?path=20260704/1783129959625_1783129959453.png '1783129959453.png') 那么就执行下面的操作: ```bash apt install -y libclang-rt-15-dev #下面的LDFLAGS路径是通过这个命令获得:find /usr/lib -name "libclang_rt.builtins-x86_64.a" #/usr/lib/llvm-15/lib/clang/15.0.7/lib/linux/libclang_rt.builtins-x86_64.a export LDFLAGS="-L/usr/lib/llvm-15/lib/clang/15.0.7/lib/linux" rm -rf build HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" cmake -S . -B build -DGGML_HIP=ON -DGPU_TARGETS=gfx928 -DCMAKE_BUILD_TYPE=Release cmake --build build --config Release -- -j 128 ``` 如果还报错: ```bash /root/private_data/work_space/llama.cpp/ggml/src/ggml-cuda/ggml-cuda.cu:3840:24: error: no member named 'unifiedAddressing' in 'hipDeviceProp_t' ``` 就修改ggml/src/ggml-cuda/ggml-cuda.cu: 把这行代码: ```bash bool is_uma = prop.unifiedAddressing > 0 || uma_env; ``` 改为: ```bash bool is_uma = uma_env; ``` 然后再重新编译。 最终成功的编译结果截图: ![1783129996309.png](/api-forum/file/RedirectImage?path=20260704/1783129996506_1783129996309.jpg '1783129996309.png') 128核cpu并行编译,耗时7分钟38秒。 # 总结一下,整体安装脚本如下: ```bash apt update apt install -y libclang-rt-15-dev export LDFLAGS="-L/usr/lib/llvm-15/lib/clang/15.0.7/lib/linux" rm -rf build sed -i 's/5\.3\.25211/6.3.25211/g' /opt/dtk/lib/cmake/hip/hip-config-version.cmake HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" cmake -S . -B build -DGGML_HIP=ON -DGPU_TARGETS=gfx928 -DCMAKE_BUILD_TYPE=Release cmake --build build --config Release -- -j 128 ``` # 三、参考文献 - [llama.cpp官网](https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md#hip)
全部评论(2)
只看楼主
A
aq
2楼
目前只有b6792能成功编译,高版本我测试了很多个,都没有编译成功
7/29
A
aq
1楼
只需修改ggml/src/ggml-hip/CMakeLists.txt,找到VERSION_LESS 6.1,修改为VERSION_LESS 6.1 AND FALSE
然后整个编译过程非常顺利
7/29
没有更多内容了
--
楼主
Level.1
0 帖子
楼主热帖
暂无数据