如何调试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使得范围扩张)。

相关推荐
KL's pig/猪头/爱心/猪头3 小时前
写一个rv1106的led驱动1-整体架构
linux·驱动开发
叁金Coder3 小时前
【CentOS-Stream-9 配置网卡信息】
linux·运维·centos
赵一舟3 小时前
linux下的磁盘清理
linux·运维·服务器
会飞的小新3 小时前
Shell 脚本中的信号与 trap:从 Ctrl+C 到优雅退出
linux·开发语言
Frdbio3 小时前
环腺苷酸(cAMP)ELISA检测试剂盒
linux·人工智能·python
生产队队长3 小时前
Linux:awk进行行列转换操作
android·linux·运维
捷米研发三部3 小时前
EtherNet/IP转CAN协议转换网关实现罗克韦尔 PLC与压力传感器通讯在轮胎压力监测系统的应用案例
服务器·网络
白玉瑕3 小时前
服务器的构成
运维·服务器
linweidong3 小时前
在Ubuntu新版本安装gcc4.8等老版本环境
linux·运维·ubuntu
石像鬼₧魂石3 小时前
80 端口(Web 服务)渗透测试完整总结(含踩坑 + 绕过 + 实战流程)
linux·运维·服务器·前端·网络·阿里云