加载中...
不想等待可以点我关掉
1
2
3
4
5
# 可能会报版本过低:sudo apt install cmake
# 升级:pip install --upgrade cmake
pip install cmake
git clone https://github.com/ggerganov/llama.cpp --depth=1
cd llama.cpp/

添加当前用户目录到环境变量

1
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc

解决以下问题:

1
2
WARNING: The scripts ccmake, cmake, cpack and ctest are installed in '/home/hzc/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

指定CUDA工具包版本

查看可用工具包

1
2
3
4
5
ls -d /usr/local/cuda*
#> /usr/local/cuda /usr/local/cuda-12

which nvcc || find /usr/local -name nvcc 2>/dev/null
#> /usr/bin/nvcc

可见只有旧版工具包,且由于系统版本过旧,apt install nvidia-cuda-toolkit无法安装到最新的

下载CUDA Toolkit 12.4 Downloads | NVIDIA Developer(CUDA 13 没有Ubuntu 20.04的)

1
2
3
4
5
6
7
8
9
10
11
12
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-ubuntu2004-12-4-local_12.4.0-550.54.14-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-12-4-local_12.4.0-550.54.14-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4

# 显式将 CUDA 12.4 的 lib64 库路径优先加载,防止链接器调用系统的旧版库,以避免 undefined reference to cublasSetWorkspace_v2
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-12.4/bin:$PATH
export CUDA_PATH=/usr/local/cuda-12.4

清除已有构建产物并重新构建

1
2
3
rm -rf build
CUDACXX=/usr/local/cuda-12.4/bin/nvcc cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=86 -DLLAMA_BUILD_TESTS=OFF -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.4
cmake --build build --config Release -j$(nproc)

-DLLAMA_BUILD_TESTS=OFF 禁用编译测试套件
如果编译期间遇到错误可以去掉多核编译以查看详情