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

相关推荐
_下雨天.7 小时前
LVS负载均衡
服务器·负载均衡·lvs
小成202303202659 小时前
Linux高级02
linux·开发语言
mounter6259 小时前
【硬核前沿】CXL 深度解析:重塑数据中心架构的“高速公路”,Linux 内核如何应对挑战?-- CXL 协议详解与 LSF/MM 最新动态
linux·服务器·网络·架构·kernel
++==10 小时前
Linux 进程间通信与线程同步技术详解:IPC 机制、线程 API、同步工具与经典同步问题
linux
特长腿特长10 小时前
centos、ubantu系列机的用户和用户组的结构是什么?具体怎么配置?用户组权限怎么使用?这篇文章持续更新,帮助你复习linux的基础知识
linux·运维·centos
zzzyyy53810 小时前
Linux环境变量
linux·运维·服务器
pluvium2710 小时前
记对 xonsh shell 的使用, 脚本编写, 迁移及调优
linux·python·shell·xonsh
无级程序员10 小时前
centos7 安装 llvm-toolset-7-clang出错的问题解决
linux·centos
kebeiovo11 小时前
atomic原子操作实现无锁队列
服务器·c++
CHHC188011 小时前
NetCore树莓派桌面应用程序
linux·运维·服务器