如何调试llama.cpp及判断是否支持RVV

如何调试llama.cpp

  1. 配置编译选项和编译器:cmake -B build -DGGML_RVV=ON -DGGML_RV_ZICBOP=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++
  2. 编译:cmake --build build --config Debug -j 8或者制定目标编译:cmake --build build --config Debug -j 8 --target llama-cli
  3. gdb调试:gdb --args ./build/bin/llama-cli -m ../DeepSeek-R1-Distill-Llama-8B-Q2_K_L.gguf -p "Hello" -t 1,使用-t 1可以指定单线程调试。

判断RVV是否支持的手段

在llama.cpp里的RVV相关的算子里,如果判断平台当前是否支持RVV,使用的手段是:

cpp 复制代码
#if defined(__riscv_v_intrinsic)

cpp 复制代码
#if defined(__riscv_v)

或者通过

cpp 复制代码
if(ggml_cpu_has_riscv_v) {
    }

但需要注意的是:

根据ggml/src/ggml-cpu/CMakeLists.txt的内容,rvv生效的部分仅位于ggml/src/ggml-cpu范围内,因此,使用rvv需要严格的限制在此范围内的文件(当然也可以通过修改CMakeLists.txt使得范围扩张)。

相关推荐
hehelm5 小时前
IO 多路复用 — Reactor
linux·服务器·网络·数据库·c++
浅止菌6 小时前
嵌入式项目Makefile越写越乱?一张万能模板+5个技巧,告别重复劳动
linux
Sagittarius_A*6 小时前
Web 渗透实战:服务器系统识别、端口与中间件全量探测
服务器·网络安全·中间件·渗透测试
刘某的Cloud7 小时前
手工配置nginx的systemd服务
linux·运维·网络·nginx·systemd
FREEDOM_X7 小时前
嵌入式Linux摄像头采集与图像处理
linux·图像处理·ubuntu
studytosky7 小时前
OpenClaw 入门与 Skill 开发
linux·服务器·ai编程
kaoa0007 小时前
Linux入门攻坚——82、kvm虚拟化-2
linux·运维·服务器
laowangpython8 小时前
昆仑通态 Mcgs Pro软件安装步骤(附安装包)Mcgs Pro 3.3.6 下载安装教程(保姆级)
java·服务器·数据库·其他
学无止境_永不停歇9 小时前
3. 进程状态
linux·服务器
刘某的Cloud9 小时前
Nginx 最小安全配置模板
linux·运维·nginx·安全·系统