3A5000上用的daoxiagnhu20操作系统,安装的是gcc (Loongnix 8.3.0-6.lnd.vec.44) 8.3.0,编译用CMake 3.24.3版,编译成功,加载运行模型Meta-Llama-3-8B-Instruct-Q4_K_M.gguf成功,用命令./bin/llama-server -m /home/pnxc/下载/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf --port 8080启动推理速度很慢而且会卡死。
尝试编译最新的llama.cpp-b8665,需要修改CMakeList.txt的第191行代码加入以下内容
# Fix std::filesystem linking for GCC < 9 (needed for loongarch with GCC 8.3)
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.0")
message(STATUS "Linking stdc++fs to ggml targets for GCC < 9.0")
foreach(target IN ITEMS ggml ggml-base ggml-cpu)
if(TARGET ${target})
target_link_libraries(${target} PUBLIC stdc++fs)
endif()
endforeach()
endif()
修改完后从177行到206行的内容如下:
#
# 3rd-party
#
if (LLAMA_USE_SYSTEM_GGML)
message(STATUS "Using system-provided libggml, skipping ggml build")
find_package(ggml REQUIRED)
add_library(ggml ALIAS ggml::ggml)
endif()
if (NOT TARGET ggml AND NOT LLAMA_USE_SYSTEM_GGML)
set(GGML_BUILD_NUMBER ${LLAMA_BUILD_NUMBER})
set(GGML_BUILD_COMMIT ${LLAMA_BUILD_COMMIT})
add_subdirectory(ggml)
# Fix std::filesystem linking for GCC < 9 (needed for loongarch with GCC 8.3)
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9.0")
message(STATUS "Linking stdc++fs to ggml targets for GCC < 9.0")
foreach(target IN ITEMS ggml ggml-base ggml-cpu)
if(TARGET ${target})
target_link_libraries(${target} PUBLIC stdc++fs)
endif()
endforeach()
endif()
# ... otherwise assume ggml is added by a parent CMakeLists.txt
endif()
#
# build the library
#
修改完之后进行编译,会在bin文件夹编译出结果
./bin/llama-server -h
./bin/llama-cli -h 经典的你是谁的问题,模型Meta-Llama-3-8B-Instruct-Q4_K_M.gguf用命令./bin/llama-server -m /home/pnxc/下载/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf --port 8080推理了4分钟,推理速度是0.83t/s。 用命令./bin/llama-server -m /data/home/pnxc/下载/gemma-4-E2B-it-UD-Q4_K_XL.gguf --port 8080换成模型gemma-4-E2B-it-UD-Q4_K_XL.gguf会出现思维链,思维链的推理速度是0.96t/s

启动命令加上--chat-template-kwargs '{"enable_thinking": false}'关闭思维链后,推理速度是2.21t/s,这速度只能说是能够跑起来的想用起来还有不少的路要走。

3A6000上用daoxianghu20操作系统,安装的是g++ (Loongnix 8.3.0-6.lnd.vec.44) 8.3.0,编译用CMake 3.30.0-rc4版,这次用的llama.cpp-b8763.tar.gz,同样是要修改llamacpp根目录的CMakeList.txt文件来修复std::filesystem,CMakeList.txt要修改的地方是在第117行附近,代码内容跟3A5000一样

修改完文件就用下面的没能力编译
cd build
rm -rf * # 清空 build 目录
cmake ..
make -j$(nproc) 编译后可以用下面两个来看下有没有正常输出,有正常输出那就编译成功了可以用后面的命令快速加载模型来测试推理速度。
./bin/llama-server -h
./bin/llama-cli -h
~/下载/llamacpp/llama.cpp-b8763/build/bin/llama-server \
--model ~/下载/Gemma4/gemma-4-E2B-it-Q4_K_M.gguf \
--mmproj ~/下载/Gemma4/Gemma-4-E2B-it-GGUF-mmproj-F16.gguf \
--chat-template-kwargs '{"enable_thinking": false}' \
--host 0.0.0.0 \
--port 8080 \
--ctx-size 4096 reading是23.02t/s,reason 是11t/s,generate 是8.37 t/s,思考模式下的速度是3A5000的8.7倍。关闭思考模式的推理速度是11.86t/s,这个速度总算进入可用的区间了。


记录完。