标签: Linux

  • Fedora 44 完美多媒体指南:从 ffmpeg-free 完美切换完整版 FFmpeg

    在 Fedora中,由于系统默认只自带了开源且无专利争议的“阉割版” ffmpeg-free(缺乏 H.264、H.265、AAC 等常见编解码器),要享受完整的影音体验,必须将其替换为 RPM Fusion 提供的完整版 FFmpeg

    1. 添加 RPM Fusion 仓库

    为系统添加 RPM Fusion 仓库。它包含了 Fedora 官方因政策原因无法收录的自由软件(Free)和非自由软件(Nonfree,如闭源驱动和部分专利编解码器)。

    sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

    2. 切换到完整版 FFmpeg

    使用 dnf swap 命令,安全地将系统自带的 ffmpeg-free 替换为 RPM Fusion 提供的、带有全套编解码器的完整版 ffmpeg。

    sudo dnf swap ffmpeg-free ffmpeg --allowerasing
  • 在 Fedora 44 上安装 NVIDIA CUDA

    在最新发布的 Fedora 44 系统上,基于 NVIDIA 官方 RPM 联网源快速搭建 CUDA 算力环境

    1. 添加 NVIDIA 官方软件源

    将 NVIDIA 为 Fedora 44 编译的官方源添加到 DNF 仓库中,并刷新本地缓存。

    # 添加 Fedora 44 专属 CUDA 软件源
    sudo dnf config-manager addrepo --from-repofile https://developer.download.nvidia.com/compute/cuda/repos/fedora44/x86_64/cuda-fedora44.repo
    
    # 清理 DNF 缓存
    sudo dnf clean all

    2. 安装 NVIDIA 驱动与 CUDA 工具包

    # 安装指定版本 Toolkit
    sudo dnf -y install cuda-toolkit-13-3
    
    # 安装专有 NVIDIA驱动
    sudo dnf -y install cuda-drivers

    配置环境变量(配置 nvcc 命令)

    安装完成后,系统默认不会将 nvcc 编译器路径加入全局变量。执行以下命令,将 CUDA 路径追加到 ~/.bashrc 中:

    cat >> ~/.bashrc << 'EOF'
    
    # NVIDIA CUDA TOOLKIT
    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    EOF

    让配置立即生效

    source ~/.bashrc

    验证安装结果

    重启系统后验证 GPU 驱动状态

    # reboot 重启系统
    nvcc -V
    nvidia-smi
  • Fedora 43 源码编译安装 llama.cpp 教程(支持 CUDA 显卡加速)

    在 Linux 环境下彻底释放显卡的高效推理潜能,源码编译 llama.cpp 带有 CUDA 加速的版本是最佳选择。本文将手把手带你在最新的 Fedora 43 系统(基于 CUDA 13.2 环境)中,从配置环境变量开始,一步步完成源码构建,打造完美契合你显卡算力的私有化大模型部署神器。

    1. 配置 CUDA 环境变量

    在编译之前,我们需要将 CUDA 的编译器 nvcc 和相关动态库路径写入系统的环境变量中,确保 CMake 能够准确识别。

    # 1. 将 CUDA 路径写入全局 shell 配置中
    cat >> ~/.bashrc << 'EOF'
    
    # NVIDIA CUDA Toolkit
    export PATH=/usr/local/cuda/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    EOF
    
    # 2. 使环境变量立即生效
    source ~/.bashrc
    
    # 3. 验证环境变量是否生效
    nvcc --version
    which nvcc
    
    

    提示:如果 nvcc –version 正确打印出了 CUDA 的版本号,说明路径配置成功,可以进行下一步。

    2. 获取源码与依赖安装

    确保系统里安装了基本的构建工具(cmake 和 gcc-c++)。

    # 安装基础编译依赖
    sudo dnf install -y cmake gcc-c++ git
    
    # 进入你的开发目录并克隆官方仓库
    mkdir -p ~/Dev && cd ~/Dev
    git clone https://github.com/ggml-org/llama.cpp
    cd llama.cpp
    
    

    3. 利用 CMake 执行 CUDA 加速编译

    为了让 llama.cpp 在运行时获得最佳性能,我们通过 CMake 指定启用 CUDA,并且将算力精准锁定在 86(对应 RTX 30 系列)。

    # 1. 安全起见,先清理可能存在的旧构建缓存
    rm -rf build
    
    # 2. 配置 CMake 编译选项
    cmake -B build \
          -DGGML_CUDA=ON \
          -DCMAKE_BUILD_TYPE=Release \
          -DCMAKE_CUDA_ARCHITECTURES=86 \
          -DGGML_CUDA_F16=ON \
          -DGGML_NATIVE=OFF
    
    # 3. 启动多核并行编译
    cmake --build build -j$(nproc)
    
    

    编译参数解析

    • -DGGML_CUDA=ON:核心开关,开启 NVIDIA GPU 的 CUDA 计算后端。
    • -DCMAKE_BUILD_TYPE=Release:开启高级编译器优化,大幅提升运行期推理速度。
    • -DCMAKE_CUDA_ARCHITECTURES=86:极其关键! 指定 GPU 架构。RTX 30 系列(如 3060 Ti、3070、3090)填写 86;如果你使用的是 RTX 40 系列,请改为 89。
    • -DGGML_NATIVE=OFF:关闭纯本地 CPU 强绑定优化,提升编译出的二进制文件在不同 CPU 架构间的兼容性。

    4. 验证编译结果

    编译完成后,可执行文件会被输出到 build/bin/ 目录下。我们需要验证程序能正常跑起来,且 GPU 加速已成功启用。

    4.1 验证基础版本信息

    ./build/bin/llama-cli --version
    
    

    如果输出显示了相应的版本号与 Git Commit 标识,说明程序本身编译无误。

    4.2 核心验证:检查 CUDA 参数是否就绪

    ./build/bin/llama-cli -h | grep -E "ngl|gpu|cuda|flash"
    
    

    运行后如果在输出中看到了如下关键控制参数,说明你的显卡已经可以整装待发了:

      -ngl N, --n-gpu-layers N  number of layers to store in VRAM
      --sm N, --split-mode N    how to split the model across multiple GPUs
      --flash-attn              enable Flash Attention
    
    

    特别是 -ngl(–n-gpu-layers),这是我们在运行大模型时,用来指定将多少层大模型放进显存(VRAM)中计算的核心参数。

    5. 部署大模型服务(llama-server)

    编译成功后,llama.cpp 提供了一个非常现代且支持 OpenAI 兼容接口的 Web 服务端程序,叫做 llama-server。我们可以直接用它把 GGUF 模型挂载为 API 服务。

    # 启动 API 服务端
    ./build/bin/llama-server \
      -m /path/to/your-model.gguf \
      --host 0.0.0.0 \
      --port 8080 \
      -ngl 99 \
      --ctx-size 4096
    
    

    核心启动参数调优说明:

    • –host 0.0.0.0 和 –port 8080:绑定所有网络接口并监听 8080 端口,不仅本地能调,局域网内的其他设备(如 HomeLab 中的 OpenWebUI)也能直接跨机器访问。
    • -ngl 99:告诉程序把模型的全部层(写 99 足够覆盖绝大多数 7B/14B 模型)都完全卸载到的显存中。如果模型太大导致显存溢出(OOM),可以适当调低该数值(如 24 或 32)。
    • –ctx-size 4096:分配 4096 长度的上下文窗口。

    启动后如何玩转?

    1. 原生 Web 界面:直接在浏览器打开 http://localhost:8080,即可使用 llama.cpp 内置的轻量化聊天面板。
    2. 对接第三方客户端:该服务完美兼容 OpenAI API 标准,接口地址为 http://localhost:8080/v1,可无缝接入 OpenWebUI、Cherry Studio 或 NextChat 等主流前端。

    编译过程

    # 配置 CMake 编译选项
    liqixin@fedora:~/Dev/llama.cpp$ cmake -B build -DGGML_CUDA=ON \
          -DCMAKE_BUILD_TYPE=Release \
          -DCMAKE_CUDA_ARCHITECTURES=86 \
          -DGGML_CUDA_F16=ON \
          -DGGML_NATIVE=OFF
    CMAKE_BUILD_TYPE=Release
    -- Warning: ccache not found - consider installing it for faster compilation or disable this warning with GGML_CCACHE=OFF
    -- CMAKE_SYSTEM_PROCESSOR: x86_64
    -- GGML_SYSTEM_ARCH: x86
    -- Including CPU backend
    -- x86 detected
    -- Adding CPU backend variant ggml-cpu: -msse4.2;-mf16c;-mfma;-mbmi2;-mavx;-mavx2 GGML_SSE42;GGML_F16C;GGML_FMA;GGML_BMI2;GGML_AVX;GGML_AVX2
    -- CUDA Toolkit found
    -- The CUDA compiler identification is NVIDIA 13.2.78 with host compiler GNU 15.2.1
    -- Detecting CUDA compiler ABI info
    -- Detecting CUDA compiler ABI info - done
    -- Check for working CUDA compiler: /usr/local/cuda/bin/nvcc - skipped
    -- Detecting CUDA compile features
    -- Detecting CUDA compile features - done
    -- Using CMAKE_CUDA_ARCHITECTURES=86 CMAKE_CUDA_ARCHITECTURES_NATIVE=86-real
    -- Could NOT find NCCL (missing: NCCL_LIBRARY NCCL_INCLUDE_DIR) 
    -- Warning: NCCL not found, performance for multiple CUDA GPUs will be suboptimal
    -- CUDA host compiler is GNU 15.2.1
    -- Including CUDA backend
    -- ggml version: 0.12.0
    -- ggml commit:  4f0e43da6
    -- Found OpenSSL: /usr/lib64/libcrypto.so (found version "3.5.4")
    -- Performing Test OPENSSL_VERSION_SUPPORTED
    -- Performing Test OPENSSL_VERSION_SUPPORTED - Success
    -- OpenSSL found: 3.5.4
    -- UI: derived HF_UI_VERSION=b9282
    -- UI: embedded with source: provisioned
    -- Generating embedded license file for target: llama-common
    -- Configuring done (2.2s)
    -- Generating done (0.1s)
    -- Build files have been written to: /home/liqixin/Dev/llama.cpp/build
    # 执行编译(Build)
    liqixin@fedora:~/Dev/llama.cpp$ cmake --build build -j$(nproc)
    [  0%] Building/provisioning UI assets (npm build -> HF Bucket fallback)
    [  1%] Building C object examples/gguf-hash/CMakeFiles/xxhash.dir/deps/xxhash/xxhash.c.o
    [  1%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.o
    [  1%] Building CXX object common/CMakeFiles/llama-common-base.dir/build-info.cpp.o
    [  1%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml.c.o
    [  2%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.o
    [  2%] Building C object examples/gguf-hash/CMakeFiles/sha256.dir/deps/sha256/sha256.c.o
    [  2%] Building CXX object tools/mtmd/CMakeFiles/llama-llava-cli.dir/deprecation-warning.cpp.o
    [  2%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml.cpp.o
    [  2%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-backend-meta.cpp.o
    [  2%] Building CXX object tools/mtmd/CMakeFiles/llama-minicpmv-cli.dir/deprecation-warning.cpp.o
    [  2%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.o
    [  3%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.o
    [  3%] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.o
    [  3%] Building CXX object vendor/cpp-httplib/CMakeFiles/cpp-httplib.dir/httplib.cpp.o
    [  3%] Building CXX object tools/mtmd/CMakeFiles/llama-gemma3-cli.dir/deprecation-warning.cpp.o
    [  3%] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/gguf.cpp.o
    -- UI: npm not found, skipping npm build and trying HF Bucket download
    -- UI: downloading assets from version: https://huggingface.co/buckets/ggml-org/llama-ui/resolve/b9282
    [  3%] Building C object examples/gguf-hash/CMakeFiles/sha1.dir/deps/sha1/sha1.c.o
    [  3%] Building CXX object tools/mtmd/CMakeFiles/llama-qwen2vl-cli.dir/deprecation-warning.cpp.o
    [  3%] Built target sha1
    [  3%] Linking CXX executable ../../bin/llama-llava-cli
    [  3%] Linking CXX executable ../../bin/llama-gemma3-cli
    [  3%] Linking CXX executable ../../bin/llama-qwen2vl-cli
    [  3%] Built target sha256
    [  3%] Linking CXX static library libllama-common-base.a
    [  3%] Linking CXX executable ../../bin/llama-minicpmv-cli
    [  3%] Built target llama-llava-cli
    [  3%] Built target llama-common-base
    [  3%] Built target llama-gemma3-cli
    [  3%] Built target llama-qwen2vl-cli
    [  3%] Built target llama-minicpmv-cli
    -- UI: failed to download index.html from version: "HTTP response code said error"
    -- UI: downloading assets from latest: https://huggingface.co/buckets/ggml-org/llama-ui/resolve/latest
    [  3%] Built target xxhash
    -- UI: downloaded index.html
    [  3%] Linking CXX shared library ../../bin/libggml-base.so
    [  3%] Built target ggml-base
    [  4%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/hbm.cpp.o
    [  4%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/repack.cpp.o
    [  4%] Building C object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/quants.c.o
    [  4%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/amx/amx.cpp.o
    [  4%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/traits.cpp.o
    [  4%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/binary-ops.cpp.o
    [  4%] Building C object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/ggml-cpu.c.o
    [  5%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/unary-ops.cpp.o
    [  4%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/vec.cpp.o
    [  5%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/ggml-cpu.cpp.o
    [  5%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/ops.cpp.o
    [  5%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/llamafile/sgemm.cpp.o
    [  5%] Building C object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/arch/x86/quants.c.o
    [  5%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/arch/x86/repack.cpp.o
    [  5%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/allreduce.cu.o
    [  5%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/acc.cu.o
    [  5%] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/amx/mmq.cpp.o
    [  5%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/add-id.cu.o
    [  5%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/arange.cu.o
    -- UI: downloaded bundle.js
    [  5%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/argmax.cu.o
    [  5%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/argsort.cu.o
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/binbcast.cu.o
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/clamp.cu.o
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/concat.cu.o
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/conv-transpose-1d.cu.o
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/conv2d-dw.cu.o
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/conv2d-transpose.cu.o
    -- UI: downloaded bundle.css
    [  6%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/conv2d.cu.o
    [  7%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/convert.cu.o
    [  7%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/count-equal.cu.o
    [  7%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/cpy.cu.o
    [  7%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/cross-entropy-loss.cu.o
    [  7%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/cumsum.cu.o
    [  7%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/diag.cu.o
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/diagmask.cu.o
    -- UI: downloaded loading.html
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/fattn-tile.cu.o
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/fattn-wmma-f16.cu.o
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/fattn.cu.o
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/fill.cu.o
    -- UI: verifying checksums...
    -- UI: all checksums verified
    -- UI: provisioning complete
    [  8%] Generating loading.html.hpp
    [  8%] Generating bundle.css.hpp
    [  8%] Generating bundle.js.hpp
    [  8%] Generating index.html.hpp
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/getrows.cu.o
    [  8%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/gated_delta_net.cu.o
    [  9%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/ggml-cuda.cu.o
    [  9%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/gla.cu.o
    [  9%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/im2col.cu.o
    [  9%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/mean.cu.o
    [  9%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/mmf.cu.o
    [ 10%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/mmid.cu.o
    [ 10%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/mmq.cu.o
    [ 10%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/mmvf.cu.o
    [ 10%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/mmvq.cu.o
    [ 10%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/norm.cu.o
    [ 11%] Linking CXX shared library ../../bin/libggml-cpu.so
    [ 11%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/opt-step-adamw.cu.o
    [ 11%] Built target ggml-cpu
    [ 11%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/opt-step-sgd.cu.o
    [ 11%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/out-prod.cu.o
    [ 12%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/pad.cu.o
    [ 12%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/pad_reflect_1d.cu.o
    [ 13%] Building CXX object tools/ui/CMakeFiles/llama-ui.dir/ui.cpp.o
    [ 13%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/pool2d.cu.o
    [ 13%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/quantize.cu.o
    [ 13%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/roll.cu.o
    [ 13%] Linking CXX static library libllama-ui.a
    [ 13%] Built target llama-ui
    [ 13%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/rope.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/scale.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/set-rows.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/set.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/snake.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/softcap.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/softmax.cu.o
    [ 14%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/solve_tri.cu.o
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/ssm-conv.cu.o
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/ssm-scan.cu.o
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/sum.cu.o
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/sumrows.cu.o
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/top-k.cu.o
    [ 15%] Linking CXX static library libcpp-httplib.a
    [ 15%] Built target cpp-httplib
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/topk-moe.cu.o
    [ 15%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/tri.cu.o
    [ 16%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/tsembd.cu.o
    [ 16%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/unary.cu.o
    [ 16%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/upscale.cu.o
    [ 16%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/wkv.cu.o
    [ 16%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq112-dv112.cu.o
    [ 16%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq128-dv128.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq192-dv128.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq256-dv256.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq320-dv256.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq40-dv40.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq512-dv512.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq576-dv512.cu.o
    [ 17%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq64-dv64.cu.o
    [ 18%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq72-dv72.cu.o
    [ 18%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq80-dv80.cu.o
    [ 18%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-tile-instance-dkq96-dv96.cu.o
    [ 18%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_16.cu.o
    [ 18%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_32.cu.o
    [ 18%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_8.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_1.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_2.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_4.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_16.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_32.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_4.cu.o
    [ 19%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_8.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_1.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_2.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_16.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_2.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_4.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_8.cu.o
    [ 20%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_64-ncols2_1.cu.o
    [ 21%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_1.cu.o
    [ 21%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_2.cu.o
    [ 21%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_4.cu.o
    [ 21%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_8.cu.o
    [ 21%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq1_s.cu.o
    [ 21%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq2_s.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq2_xs.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq2_xxs.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq3_s.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq3_xxs.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq4_nl.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-iq4_xs.cu.o
    [ 22%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-mxfp4.cu.o
    [ 23%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-nvfp4.cu.o
    [ 23%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q1_0.cu.o
    [ 23%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q2_k.cu.o
    [ 23%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q3_k.cu.o
    [ 23%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q4_0.cu.o
    [ 23%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q4_1.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q4_k.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q5_0.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q5_1.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q5_k.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q6_k.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmq-instance-q8_0.cu.o
    [ 24%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_1.cu.o
    [ 25%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_10.cu.o
    [ 25%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_11.cu.o
    [ 25%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_12.cu.o
    [ 25%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_13.cu.o
    [ 25%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_14.cu.o
    [ 25%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_15.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_16.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_2.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_3.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_4.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_5.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_6.cu.o
    [ 26%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_7.cu.o
    [ 27%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_8.cu.o
    [ 27%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/mmf-instance-ncols_9.cu.o
    [ 27%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-vec-instance-f16-f16.cu.o
    [ 27%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-vec-instance-q4_0-q4_0.cu.o
    [ 27%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-vec-instance-q8_0-q8_0.cu.o
    [ 27%] Building CUDA object ggml/src/ggml-cuda/CMakeFiles/ggml-cuda.dir/template-instances/fattn-vec-instance-bf16-bf16.cu.o
    [ 27%] Linking CUDA shared library ../../../bin/libggml-cuda.so
    [ 27%] Built target ggml-cuda
    [ 27%] Building CXX object ggml/src/CMakeFiles/ggml.dir/ggml-backend-dl.cpp.o
    [ 27%] Building CXX object ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.o
    [ 28%] Linking CXX shared library ../../bin/libggml.so
    [ 28%] Built target ggml
    [ 28%] Building CXX object examples/gguf/CMakeFiles/llama-gguf.dir/gguf.cpp.o
    [ 28%] Building CXX object examples/gguf-hash/CMakeFiles/llama-gguf-hash.dir/gguf-hash.cpp.o
    [ 28%] Building CXX object src/CMakeFiles/llama.dir/llama.cpp.o
    [ 28%] Building CXX object src/CMakeFiles/llama.dir/llama-batch.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-context.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-chat.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-adapter.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-grammar.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-arch.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-graph.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-impl.cpp.o
    [ 29%] Building CXX object src/CMakeFiles/llama.dir/llama-kv-cache.cpp.o
    [ 30%] Building CXX object src/CMakeFiles/llama.dir/llama-kv-cache-iswa.cpp.o
    [ 30%] Building CXX object src/CMakeFiles/llama.dir/llama-io.cpp.o
    [ 30%] Building CXX object src/CMakeFiles/llama.dir/llama-hparams.cpp.o
    [ 30%] Building CXX object src/CMakeFiles/llama.dir/llama-memory.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-memory-recurrent.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-cparams.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-memory-hybrid-iswa.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-memory-hybrid.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-mmap.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-model-loader.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-model-saver.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-model.cpp.o
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-quant.cpp.o
    [ 31%] Linking CXX executable ../../bin/llama-gguf-hash
    [ 31%] Building CXX object src/CMakeFiles/llama.dir/llama-sampler.cpp.o
    [ 32%] Linking CXX executable ../../bin/llama-gguf
    [ 33%] Building CXX object src/CMakeFiles/llama.dir/llama-vocab.cpp.o
    [ 33%] Built target llama-gguf-hash
    [ 33%] Building CXX object src/CMakeFiles/llama.dir/unicode-data.cpp.o
    [ 33%] Built target llama-gguf
    [ 33%] Building CXX object src/CMakeFiles/llama.dir/unicode.cpp.o
    [ 33%] Building CXX object src/CMakeFiles/llama.dir/models/afmoe.cpp.o
    [ 33%] Building CXX object src/CMakeFiles/llama.dir/models/apertus.cpp.o
    [ 33%] Building CXX object src/CMakeFiles/llama.dir/models/arcee.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/arctic.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/arwkv7.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/baichuan.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/bailingmoe.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/bailingmoe2.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/bert.cpp.o
    [ 34%] Building CXX object src/CMakeFiles/llama.dir/models/bitnet.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/bloom.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/chameleon.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/chatglm.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/codeshell.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/cogvlm.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/cohere2.cpp.o
    [ 35%] Building CXX object src/CMakeFiles/llama.dir/models/command-r.cpp.o
    [ 36%] Building CXX object src/CMakeFiles/llama.dir/models/dbrx.cpp.o
    [ 36%] Building CXX object src/CMakeFiles/llama.dir/models/deci.cpp.o
    [ 36%] Building CXX object src/CMakeFiles/llama.dir/models/deepseek.cpp.o
    [ 36%] Building CXX object src/CMakeFiles/llama.dir/models/deepseek2.cpp.o
    [ 36%] Building CXX object src/CMakeFiles/llama.dir/models/deepseek2ocr.cpp.o
    [ 36%] Building CXX object src/CMakeFiles/llama.dir/models/delta-net-base.cpp.o
    [ 37%] Building CXX object src/CMakeFiles/llama.dir/models/dots1.cpp.o
    [ 37%] Building CXX object src/CMakeFiles/llama.dir/models/dream.cpp.o
    [ 37%] Building CXX object src/CMakeFiles/llama.dir/models/ernie4-5-moe.cpp.o
    [ 37%] Building CXX object src/CMakeFiles/llama.dir/models/ernie4-5.cpp.o
    [ 37%] Building CXX object src/CMakeFiles/llama.dir/models/eurobert.cpp.o
    [ 37%] Building CXX object src/CMakeFiles/llama.dir/models/exaone-moe.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/exaone.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/exaone4.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/falcon-h1.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/falcon.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/gemma-embedding.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/gemma.cpp.o
    [ 38%] Building CXX object src/CMakeFiles/llama.dir/models/gemma2.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/gemma3.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/gemma3n.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/gemma4.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/glm-dsa.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/glm4-moe.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/glm4.cpp.o
    [ 39%] Building CXX object src/CMakeFiles/llama.dir/models/gpt2.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/gptneox.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/granite-hybrid.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/granite-moe.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/granite.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/grok.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/grovemoe.cpp.o
    [ 40%] Building CXX object src/CMakeFiles/llama.dir/models/hunyuan-dense.cpp.o
    [ 41%] Building CXX object src/CMakeFiles/llama.dir/models/hunyuan-moe.cpp.o
    [ 41%] Building CXX object src/CMakeFiles/llama.dir/models/hunyuan-vl.cpp.o
    [ 41%] Building CXX object src/CMakeFiles/llama.dir/models/internlm2.cpp.o
    [ 41%] Building CXX object src/CMakeFiles/llama.dir/models/jais.cpp.o
    [ 41%] Building CXX object src/CMakeFiles/llama.dir/models/jais2.cpp.o
    [ 41%] Building CXX object src/CMakeFiles/llama.dir/models/jamba.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/jina-bert-v2.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/jina-bert-v3.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/kimi-linear.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/lfm2.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/lfm2moe.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/llada-moe.cpp.o
    [ 42%] Building CXX object src/CMakeFiles/llama.dir/models/llada.cpp.o
    [ 43%] Building CXX object src/CMakeFiles/llama.dir/models/llama-embed.cpp.o
    [ 43%] Building CXX object src/CMakeFiles/llama.dir/models/llama.cpp.o
    [ 43%] Building CXX object src/CMakeFiles/llama.dir/models/llama4.cpp.o
    [ 43%] Building CXX object src/CMakeFiles/llama.dir/models/maincoder.cpp.o
    [ 43%] Building CXX object src/CMakeFiles/llama.dir/models/mamba-base.cpp.o
    [ 43%] Building CXX object src/CMakeFiles/llama.dir/models/mamba.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/mamba2.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/mimo2.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/minicpm.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/minicpm3.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/minimax-m2.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/mistral3.cpp.o
    [ 44%] Building CXX object src/CMakeFiles/llama.dir/models/mistral4.cpp.o
    [ 45%] Building CXX object src/CMakeFiles/llama.dir/models/modern-bert.cpp.o
    [ 45%] Building CXX object src/CMakeFiles/llama.dir/models/mpt.cpp.o
    [ 45%] Building CXX object src/CMakeFiles/llama.dir/models/nemotron-h-moe.cpp.o
    [ 45%] Building CXX object src/CMakeFiles/llama.dir/models/nemotron-h.cpp.o
    [ 45%] Building CXX object src/CMakeFiles/llama.dir/models/nemotron.cpp.o
    [ 45%] Building CXX object src/CMakeFiles/llama.dir/models/neo-bert.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/nomic-bert-moe.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/nomic-bert.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/olmo.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/olmo2.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/olmoe.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/openai-moe.cpp.o
    [ 46%] Building CXX object src/CMakeFiles/llama.dir/models/openelm.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/orion.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/paddleocr.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/pangu-embed.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/phi2.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/phi3.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/phimoe.cpp.o
    [ 47%] Building CXX object src/CMakeFiles/llama.dir/models/plamo.cpp.o
    [ 48%] Building CXX object src/CMakeFiles/llama.dir/models/plamo2.cpp.o
    [ 48%] Building CXX object src/CMakeFiles/llama.dir/models/plamo3.cpp.o
    [ 48%] Building CXX object src/CMakeFiles/llama.dir/models/plm.cpp.o
    [ 48%] Building CXX object src/CMakeFiles/llama.dir/models/qwen.cpp.o
    [ 48%] Building CXX object src/CMakeFiles/llama.dir/models/qwen2.cpp.o
    [ 48%] Building CXX object src/CMakeFiles/llama.dir/models/qwen2moe.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen2vl.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen3.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen35.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen35moe.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen3moe.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen3next.cpp.o
    [ 49%] Building CXX object src/CMakeFiles/llama.dir/models/qwen3vl.cpp.o
    [ 50%] Building CXX object src/CMakeFiles/llama.dir/models/qwen3vlmoe.cpp.o
    [ 50%] Building CXX object src/CMakeFiles/llama.dir/models/refact.cpp.o
    [ 50%] Building CXX object src/CMakeFiles/llama.dir/models/rnd1.cpp.o
    [ 50%] Building CXX object src/CMakeFiles/llama.dir/models/rwkv6-base.cpp.o
    [ 50%] Building CXX object src/CMakeFiles/llama.dir/models/rwkv6.cpp.o
    [ 50%] Building CXX object src/CMakeFiles/llama.dir/models/rwkv6qwen2.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/rwkv7-base.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/rwkv7.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/seed-oss.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/smallthinker.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/smollm3.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/stablelm.cpp.o
    [ 51%] Building CXX object src/CMakeFiles/llama.dir/models/starcoder.cpp.o
    [ 52%] Building CXX object src/CMakeFiles/llama.dir/models/starcoder2.cpp.o
    [ 52%] Building CXX object src/CMakeFiles/llama.dir/models/step35.cpp.o
    [ 52%] Building CXX object src/CMakeFiles/llama.dir/models/t5.cpp.o
    [ 52%] Building CXX object src/CMakeFiles/llama.dir/models/wavtokenizer-dec.cpp.o
    [ 52%] Building CXX object src/CMakeFiles/llama.dir/models/t5encoder.cpp.o
    [ 52%] Building CXX object src/CMakeFiles/llama.dir/models/xverse.cpp.o
    [ 53%] Linking CXX shared library ../bin/libllama.so
    [ 53%] Built target llama
    [ 54%] Building CXX object examples/simple/CMakeFiles/llama-simple.dir/simple.cpp.o
    [ 54%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/mtmd-audio.cpp.o
    [ 54%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/mtmd-image.cpp.o
    [ 55%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/clip.cpp.o
    [ 55%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/mtmd-helper.cpp.o
    [ 55%] Building CXX object examples/simple-chat/CMakeFiles/llama-simple-chat.dir/simple-chat.cpp.o
    [ 55%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/gemma4a.cpp.o
    [ 55%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/mtmd.cpp.o
    [ 55%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/dotsocr.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/glm4v.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/gemma4v.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/internvl.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/cogvlm.cpp.o
    [ 56%] Building C object tests/CMakeFiles/test-c.dir/test-c.c.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/hunyuanvl.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/granite-speech.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/kimivl.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/conformer.cpp.o
    [ 56%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/kimik25.cpp.o
    [ 56%] Building CXX object common/CMakeFiles/llama-common.dir/arg.cpp.o
    [ 57%] Linking C executable ../bin/test-c
    [ 57%] Built target test-c
    [ 57%] Building CXX object common/CMakeFiles/llama-common.dir/chat-auto-parser-generator.cpp.o
    [ 57%] Linking CXX executable ../../bin/llama-simple
    [ 57%] Built target llama-simple
    [ 58%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/nemotron-v2-vl.cpp.o
    [ 58%] Linking CXX executable ../../bin/llama-simple-chat
    [ 58%] Built target llama-simple-chat
    [ 58%] Building CXX object common/CMakeFiles/llama-common.dir/chat-auto-parser-helpers.cpp.o
    [ 58%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/llama4.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/chat-diff-analyzer.cpp.o
    [ 59%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/llava.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/chat-peg-parser.cpp.o
    [ 59%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/minicpmv.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/chat.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/common.cpp.o
    [ 59%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/paddleocr.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/console.cpp.o
    [ 59%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/pixtral.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/debug.cpp.o
    [ 59%] Building CXX object common/CMakeFiles/llama-common.dir/download.cpp.o
    [ 60%] Building CXX object common/CMakeFiles/llama-common.dir/fit.cpp.o
    [ 60%] Building CXX object common/CMakeFiles/llama-common.dir/hf-cache.cpp.o
    [ 60%] Building CXX object common/CMakeFiles/llama-common.dir/json-partial.cpp.o
    [ 60%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/qwen2vl.cpp.o
    [ 60%] Building CXX object common/CMakeFiles/llama-common.dir/json-schema-to-grammar.cpp.o
    [ 61%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/qwen3vl.cpp.o
    [ 61%] Building CXX object common/CMakeFiles/llama-common.dir/llguidance.cpp.o
    [ 61%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/mimovl.cpp.o
    [ 61%] Building CXX object common/CMakeFiles/llama-common.dir/log.cpp.o
    [ 62%] Building CXX object common/CMakeFiles/llama-common.dir/ngram-cache.cpp.o
    [ 62%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/qwen3a.cpp.o
    [ 62%] Building CXX object common/CMakeFiles/llama-common.dir/ngram-map.cpp.o
    [ 62%] Building CXX object common/CMakeFiles/llama-common.dir/ngram-mod.cpp.o
    [ 62%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/step3vl.cpp.o
    [ 62%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/siglip.cpp.o
    [ 62%] Building CXX object common/CMakeFiles/llama-common.dir/peg-parser.cpp.o
    [ 62%] Building CXX object common/CMakeFiles/llama-common.dir/preset.cpp.o
    [ 62%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/whisper-enc.cpp.o
    [ 63%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/deepseekocr.cpp.o
    [ 63%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/mobilenetv5.cpp.o
    [ 63%] Building CXX object common/CMakeFiles/llama-common.dir/regex-partial.cpp.o
    [ 63%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/youtuvl.cpp.o
    [ 63%] Building CXX object tools/mtmd/CMakeFiles/mtmd.dir/models/yasa2.cpp.o
    [ 63%] Building CXX object common/CMakeFiles/llama-common.dir/reasoning-budget.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/sampling.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/speculative.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/unicode.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/jinja/lexer.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/jinja/parser.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/jinja/runtime.cpp.o
    [ 64%] Building CXX object common/CMakeFiles/llama-common.dir/jinja/value.cpp.o
    [ 65%] Building CXX object common/CMakeFiles/llama-common.dir/jinja/string.cpp.o
    [ 65%] Building CXX object common/CMakeFiles/llama-common.dir/jinja/caps.cpp.o
    [ 65%] Building CXX object common/CMakeFiles/llama-common.dir/__/license.cpp.o
    [ 65%] Linking CXX shared library ../../bin/libmtmd.so
    [ 65%] Built target mtmd
    [ 65%] Linking CXX shared library ../bin/libllama-common.so
    [ 65%] Built target llama-common
    [ 66%] Building CXX object tests/CMakeFiles/test-tokenizer-0.dir/test-tokenizer-0.cpp.o
    [ 66%] Building CXX object tests/CMakeFiles/test-grammar-parser.dir/test-grammar-parser.cpp.o
    [ 66%] Building CXX object tests/CMakeFiles/test-gbnf-validator.dir/test-gbnf-validator.cpp.o
    [ 66%] Building CXX object tools/server/CMakeFiles/server-context.dir/server-chat.cpp.o
    [ 66%] Building CXX object tests/CMakeFiles/test-llama-grammar.dir/test-llama-grammar.cpp.o
    [ 67%] Building CXX object tests/CMakeFiles/test-json-schema-to-grammar.dir/test-json-schema-to-grammar.cpp.o
    [ 68%] Building CXX object tests/CMakeFiles/test-quantize-stats.dir/test-quantize-stats.cpp.o
    [ 68%] Building CXX object tests/CMakeFiles/test-reasoning-budget.dir/test-reasoning-budget.cpp.o
    [ 69%] Building CXX object tests/CMakeFiles/test-chat-peg-parser.dir/test-chat-peg-parser.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-jinja.dir/test-jinja.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-grammar-integration.dir/test-grammar-integration.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-log.dir/test-log.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-tokenizer-1-bpe.dir/test-tokenizer-1-bpe.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-json-partial.dir/test-json-partial.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-llama-archs.dir/test-llama-archs.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-sampling.dir/test-sampling.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-chat-auto-parser.dir/test-chat-auto-parser.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-tokenizer-1-spm.dir/test-tokenizer-1-spm.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/test-peg-parser.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-chat-template.dir/test-chat-template.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-log.dir/get-model.cpp.o
    [ 70%] Linking CXX executable ../bin/test-log
    [ 70%] Built target test-log
    [ 70%] Building CXX object tests/CMakeFiles/test-json-partial.dir/get-model.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-reasoning-budget.dir/get-model.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-llama-archs.dir/get-model.cpp.o
    [ 70%] Linking CXX executable ../bin/test-reasoning-budget
    [ 70%] Building CXX object tests/CMakeFiles/test-chat-peg-parser.dir/peg-parser/simple-tokenize.cpp.o
    [ 70%] Linking CXX executable ../bin/test-gbnf-validator
    [ 70%] Built target test-reasoning-budget
    [ 70%] Building CXX object tests/CMakeFiles/test-grammar-integration.dir/get-model.cpp.o
    [ 70%] Linking CXX executable ../bin/test-tokenizer-1-bpe
    [ 70%] Built target test-gbnf-validator
    [ 70%] Building CXX object tests/CMakeFiles/test-json-schema-to-grammar.dir/get-model.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-chat-template.dir/get-model.cpp.o
    [ 70%] Building CXX object tools/server/CMakeFiles/server-context.dir/server-task.cpp.o
    [ 70%] Building CXX object tests/CMakeFiles/test-sampling.dir/get-model.cpp.o
    [ 71%] Building CXX object tests/CMakeFiles/test-llama-grammar.dir/get-model.cpp.o
    [ 71%] Linking CXX executable ../bin/test-tokenizer-1-spm
    [ 71%] Building CXX object tests/CMakeFiles/test-chat-auto-parser.dir/get-model.cpp.o
    [ 71%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/simple-tokenize.cpp.o
    [ 71%] Built target test-tokenizer-1-bpe
    [ 71%] Building CXX object tests/CMakeFiles/test-jinja.dir/get-model.cpp.o
    [ 72%] Building CXX object tools/server/CMakeFiles/server-context.dir/server-queue.cpp.o
    [ 72%] Building CXX object tests/CMakeFiles/test-grammar-parser.dir/get-model.cpp.o
    [ 72%] Building CXX object tests/CMakeFiles/test-chat-peg-parser.dir/get-model.cpp.o
    [ 72%] Linking CXX executable ../bin/test-grammar-parser
    [ 72%] Built target test-tokenizer-1-spm
    [ 72%] Building CXX object tools/server/CMakeFiles/server-context.dir/server-common.cpp.o
    [ 72%] Building CXX object tests/CMakeFiles/test-regex-partial.dir/test-regex-partial.cpp.o
    [ 72%] Built target test-grammar-parser
    [ 72%] Building CXX object tools/server/CMakeFiles/server-context.dir/server-context.cpp.o
    [ 72%] Building CXX object tests/CMakeFiles/test-regex-partial.dir/get-model.cpp.o
    [ 72%] Linking CXX executable ../bin/test-llama-grammar
    [ 72%] Building CXX object tests/CMakeFiles/test-thread-safety.dir/test-thread-safety.cpp.o
    [ 72%] Linking CXX executable ../bin/test-tokenizer-0
    [ 72%] Linking CXX executable ../bin/test-sampling
    [ 72%] Built target test-llama-grammar
    [ 72%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/test-basic.cpp.o
    [ 72%] Built target test-tokenizer-0
    [ 72%] Building CXX object tools/server/CMakeFiles/server-context.dir/server-tools.cpp.o
    [ 72%] Built target test-sampling
    [ 72%] Building CXX object tests/CMakeFiles/test-thread-safety.dir/get-model.cpp.o
    [ 72%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/test-gbnf-generation.cpp.o
    [ 72%] Linking CXX executable ../bin/test-llama-archs
    [ 72%] Built target test-llama-archs
    [ 72%] Building CXX object tests/CMakeFiles/test-arg-parser.dir/test-arg-parser.cpp.o
    [ 72%] Linking CXX executable ../bin/test-json-partial
    [ 72%] Linking CXX executable ../bin/test-regex-partial
    [ 72%] Built target test-json-partial
    [ 72%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/test-json-parser.cpp.o
    [ 72%] Linking CXX executable ../bin/test-thread-safety
    [ 72%] Built target test-regex-partial
    [ 72%] Building CXX object tests/CMakeFiles/test-opt.dir/test-opt.cpp.o
    [ 72%] Built target test-thread-safety
    [ 72%] Building CXX object tests/CMakeFiles/test-arg-parser.dir/get-model.cpp.o
    [ 73%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/test-json-serialization.cpp.o
    [ 73%] Linking CXX executable ../bin/test-arg-parser
    [ 73%] Built target test-arg-parser
    [ 73%] Building CXX object tests/CMakeFiles/test-opt.dir/get-model.cpp.o
    [ 73%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/test-python-dict-parser.cpp.o
    [ 74%] Linking CXX executable ../bin/test-opt
    [ 74%] Built target test-opt
    [ 74%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/peg-parser/test-unicode.cpp.o
    [ 74%] Linking CXX executable ../bin/test-grammar-integration
    [ 74%] Linking CXX executable ../bin/test-quantize-stats
    [ 74%] Built target test-grammar-integration
    [ 74%] Building CXX object tests/CMakeFiles/test-peg-parser.dir/get-model.cpp.o
    [ 74%] Built target test-quantize-stats
    [ 74%] Building CXX object tests/CMakeFiles/test-gguf.dir/test-gguf.cpp.o
    [ 74%] Building CXX object tests/CMakeFiles/test-gguf.dir/get-model.cpp.o
    [ 74%] Building CXX object tests/CMakeFiles/test-backend-ops.dir/test-backend-ops.cpp.o
    [ 74%] Building CXX object tests/CMakeFiles/test-model-load-cancel.dir/test-model-load-cancel.cpp.o
    [ 75%] Building CXX object tests/CMakeFiles/test-model-load-cancel.dir/get-model.cpp.o
    [ 75%] Linking CXX executable ../bin/test-model-load-cancel
    [ 75%] Built target test-model-load-cancel
    [ 75%] Building CXX object tests/CMakeFiles/test-backend-ops.dir/get-model.cpp.o
    [ 76%] Building CXX object tests/CMakeFiles/test-autorelease.dir/test-autorelease.cpp.o
    [ 76%] Building CXX object tests/CMakeFiles/test-autorelease.dir/get-model.cpp.o
    [ 76%] Linking CXX executable ../bin/test-autorelease
    [ 76%] Building CXX object tests/CMakeFiles/test-backend-sampler.dir/test-backend-sampler.cpp.o
    [ 76%] Built target test-autorelease
    [ 76%] Building CXX object tests/CMakeFiles/test-state-restore-fragmented.dir/test-state-restore-fragmented.cpp.o
    [ 76%] Building CXX object tests/CMakeFiles/test-recurrent-state-rollback.dir/test-recurrent-state-rollback.cpp.o
    [ 76%] Linking CXX executable ../bin/test-gguf
    [ 76%] Built target test-gguf
    [ 77%] Building CXX object tests/CMakeFiles/test-backend-sampler.dir/get-model.cpp.o
    [ 77%] Building CXX object tests/CMakeFiles/test-save-load-state.dir/test-save-load-state.cpp.o
    [ 77%] Building CXX object tests/CMakeFiles/test-state-restore-fragmented.dir/get-model.cpp.o
    [ 78%] Linking CXX executable ../bin/test-chat-template
    [ 78%] Linking CXX executable ../bin/test-state-restore-fragmented
    [ 78%] Linking CXX executable ../bin/test-json-schema-to-grammar
    [ 78%] Built target test-chat-template
    [ 78%] Built target test-state-restore-fragmented
    [ 78%] Building CXX object tests/CMakeFiles/test-save-load-state.dir/get-model.cpp.o
    [ 79%] Building CXX object tests/CMakeFiles/test-recurrent-state-rollback.dir/get-model.cpp.o
    [ 79%] Built target test-json-schema-to-grammar
    [ 79%] Building CXX object tests/CMakeFiles/test-quantize-perf.dir/test-quantize-perf.cpp.o
    [ 79%] Building CXX object tests/CMakeFiles/test-barrier.dir/test-barrier.cpp.o
    [ 79%] Building CXX object tests/CMakeFiles/test-quantize-fns.dir/test-quantize-fns.cpp.o
    [ 79%] Linking CXX executable ../bin/test-recurrent-state-rollback
    [ 79%] Building CXX object tests/CMakeFiles/test-quantize-perf.dir/get-model.cpp.o
    [ 79%] Building CXX object tests/CMakeFiles/test-rope.dir/test-rope.cpp.o
    [ 79%] Built target test-recurrent-state-rollback
    [ 79%] Building CXX object tests/CMakeFiles/test-barrier.dir/get-model.cpp.o
    [ 79%] Building CXX object tests/CMakeFiles/test-rope.dir/get-model.cpp.o
    [ 79%] Building CXX object tests/CMakeFiles/test-quantize-fns.dir/get-model.cpp.o
    [ 79%] Building C object tests/CMakeFiles/test-mtmd-c-api.dir/test-mtmd-c-api.c.o
    [ 79%] Building CXX object tests/CMakeFiles/test-mtmd-c-api.dir/get-model.cpp.o
    [ 79%] Linking CXX executable ../bin/test-mtmd-c-api
    [ 79%] Linking CXX executable ../bin/test-barrier
    [ 79%] Linking CXX executable ../bin/test-quantize-fns
    [ 80%] Linking CXX executable ../bin/test-save-load-state
    [ 81%] Linking CXX executable ../bin/test-rope
    [ 81%] Built target test-mtmd-c-api
    [ 82%] Building CXX object tests/CMakeFiles/gguf-model-data.dir/gguf-model-data.cpp.o
    [ 82%] Built target test-barrier
    [ 82%] Built target test-quantize-fns
    [ 82%] Building CXX object tests/CMakeFiles/test-alloc.dir/test-alloc.cpp.o
    [ 82%] Building CXX object examples/batched/CMakeFiles/llama-batched.dir/batched.cpp.o
    [ 82%] Built target test-rope
    [ 82%] Building CXX object tests/CMakeFiles/test-alloc.dir/get-model.cpp.o
    [ 82%] Built target test-save-load-state
    [ 82%] Building CXX object examples/debug/CMakeFiles/llama-debug.dir/debug.cpp.o
    [ 82%] Building CXX object examples/embedding/CMakeFiles/llama-embedding.dir/embedding.cpp.o
    [ 82%] Linking CXX executable ../bin/test-backend-sampler
    [ 82%] Built target test-backend-sampler
    [ 82%] Building CXX object examples/eval-callback/CMakeFiles/llama-eval-callback.dir/eval-callback.cpp.o
    [ 82%] Building CXX object examples/idle/CMakeFiles/llama-idle.dir/idle.cpp.o
    [ 82%] Building CXX object examples/lookahead/CMakeFiles/llama-lookahead.dir/lookahead.cpp.o
    [ 83%] Building CXX object examples/lookup/CMakeFiles/llama-lookup.dir/lookup.cpp.o
    [ 83%] Linking CXX executable ../bin/test-quantize-perf
    [ 83%] Linking CXX executable ../bin/test-alloc
    [ 83%] Built target test-quantize-perf
    [ 83%] Building CXX object examples/lookup/CMakeFiles/llama-lookup-create.dir/lookup-create.cpp.o
    [ 83%] Built target test-alloc
    [ 83%] Building CXX object examples/lookup/CMakeFiles/llama-lookup-merge.dir/lookup-merge.cpp.o
    [ 83%] Linking CXX executable ../../bin/llama-batched
    [ 83%] Built target llama-batched
    [ 83%] Building CXX object examples/lookup/CMakeFiles/llama-lookup-stats.dir/lookup-stats.cpp.o
    [ 83%] Building CXX object examples/parallel/CMakeFiles/llama-parallel.dir/parallel.cpp.o
    [ 83%] Linking CXX executable ../../bin/llama-eval-callback
    [ 83%] Linking CXX executable ../bin/test-peg-parser
    [ 83%] Built target llama-eval-callback
    [ 83%] Linking CXX executable ../../bin/llama-embedding
    [ 83%] Building CXX object examples/passkey/CMakeFiles/llama-passkey.dir/passkey.cpp.o
    [ 83%] Linking CXX executable ../../bin/llama-idle
    [ 83%] Built target test-peg-parser
    [ 83%] Building CXX object examples/retrieval/CMakeFiles/llama-retrieval.dir/retrieval.cpp.o
    [ 83%] Linking CXX executable ../../bin/llama-lookup-merge
    [ 83%] Built target llama-embedding
    [ 83%] Built target llama-idle
    [ 83%] Building CXX object examples/speculative/CMakeFiles/llama-speculative.dir/speculative.cpp.o
    [ 84%] Building CXX object examples/speculative-simple/CMakeFiles/llama-speculative-simple.dir/speculative-simple.cpp.o
    [ 84%] Built target llama-lookup-merge
    [ 84%] Building CXX object examples/gen-docs/CMakeFiles/llama-gen-docs.dir/gen-docs.cpp.o
    [ 84%] Linking CXX executable ../../bin/llama-lookup
    [ 84%] Linking CXX executable ../../bin/llama-lookahead
    [ 84%] Built target llama-lookup
    [ 84%] Building CXX object examples/training/CMakeFiles/llama-finetune.dir/finetune.cpp.o
    [ 84%] Linking CXX executable ../../bin/llama-lookup-create
    [ 84%] Built target llama-lookahead
    [ 84%] Building CXX object examples/diffusion/CMakeFiles/llama-diffusion.dir/diffusion.cpp.o
    [ 84%] Built target llama-lookup-create
    [ 84%] Building CXX object examples/convert-llama2c-to-ggml/CMakeFiles/llama-convert-llama2c-to-ggml.dir/convert-llama2c-to-ggml.cpp.o
    [ 85%] Linking CXX executable ../../bin/llama-lookup-stats
    [ 85%] Built target llama-lookup-stats
    [ 85%] Building CXX object pocs/vdot/CMakeFiles/llama-vdot.dir/vdot.cpp.o
    [ 85%] Linking CXX executable ../../bin/llama-parallel
    [ 85%] Linking CXX executable ../../bin/llama-passkey
    [ 85%] Built target llama-parallel
    [ 85%] Built target llama-passkey
    [ 85%] Building CXX object pocs/vdot/CMakeFiles/llama-q8dot.dir/q8dot.cpp.o
    [ 86%] Building CXX object tools/batched-bench/CMakeFiles/llama-batched-bench-impl.dir/batched-bench.cpp.o
    [ 86%] Linking CXX executable ../../bin/llama-gen-docs
    [ 86%] Built target llama-gen-docs
    [ 86%] Building CXX object tools/gguf-split/CMakeFiles/llama-gguf-split.dir/gguf-split.cpp.o
    [ 86%] Linking CXX executable ../../bin/llama-finetune
    [ 87%] Linking CXX static library libllama-diffusion.a
    [ 87%] Linking CXX executable ../../bin/llama-vdot
    [ 87%] Built target llama-diffusion
    [ 88%] Building CXX object tools/imatrix/CMakeFiles/llama-imatrix.dir/imatrix.cpp.o
    [ 89%] Linking CXX executable ../../bin/llama-retrieval
    [ 89%] Built target llama-finetune
    [ 89%] Building CXX object tools/llama-bench/CMakeFiles/llama-bench-impl.dir/llama-bench.cpp.o
    [ 89%] Built target llama-vdot
    [ 89%] Building CXX object tools/completion/CMakeFiles/llama-completion-impl.dir/completion.cpp.o
    [ 89%] Linking CXX executable ../../bin/llama-q8dot
    [ 89%] Built target llama-retrieval
    [ 90%] Building CXX object tools/perplexity/CMakeFiles/llama-perplexity-impl.dir/perplexity.cpp.o
    [ 90%] Building CXX object tools/quantize/CMakeFiles/llama-quantize-impl.dir/quantize.cpp.o
    [ 90%] Built target llama-q8dot
    [ 90%] Building CXX object tools/tokenize/CMakeFiles/llama-tokenize.dir/tokenize.cpp.o
    [ 90%] Linking CXX executable ../../bin/llama-speculative-simple
    [ 90%] Built target llama-speculative-simple
    [ 90%] Building CXX object tools/parser/CMakeFiles/llama-debug-template-parser.dir/debug-template-parser.cpp.o
    [ 90%] Linking CXX executable ../../bin/llama-convert-llama2c-to-ggml
    [ 90%] Built target llama-convert-llama2c-to-ggml
    [ 90%] Linking CXX shared library ../../bin/libllama-batched-bench-impl.so
    [ 90%] Building CXX object tools/parser/CMakeFiles/llama-template-analysis.dir/template-analysis.cpp.o
    [ 90%] Linking CXX executable ../../bin/llama-gguf-split
    [ 90%] Built target llama-batched-bench-impl
    [ 90%] Building CXX object tools/tts/CMakeFiles/llama-tts.dir/tts.cpp.o
    [ 90%] Built target llama-gguf-split
    [ 90%] Linking CXX executable ../../bin/llama-tokenize
    [ 90%] Building CXX object tools/mtmd/CMakeFiles/llama-mtmd-cli.dir/mtmd-cli.cpp.o
    [ 90%] Built target llama-tokenize
    [ 90%] Building CXX object tools/mtmd/CMakeFiles/llama-mtmd-debug.dir/debug/mtmd-debug.cpp.o
    [ 90%] Linking CXX executable ../../bin/llama-debug
    [ 90%] Built target llama-debug
    [ 90%] Building CXX object tools/cvector-generator/CMakeFiles/llama-cvector-generator.dir/cvector-generator.cpp.o
    [ 90%] Linking CXX executable ../../bin/llama-speculative
    [ 90%] Built target llama-speculative
    [ 91%] Building CXX object tools/export-lora/CMakeFiles/llama-export-lora.dir/export-lora.cpp.o
    [ 92%] Linking CXX executable ../../bin/llama-mtmd-debug
    [ 92%] Built target llama-mtmd-debug
    [ 93%] Linking CXX shared library ../../bin/libllama-quantize-impl.so
    [ 94%] Building CXX object tools/fit-params/CMakeFiles/llama-fit-params-impl.dir/fit-params.cpp.o
    [ 94%] Built target llama-quantize-impl
    [ 94%] Building CXX object tools/results/CMakeFiles/llama-results.dir/results.cpp.o
    [ 94%] Linking CXX static library libgguf-model-data.a
    [ 94%] Built target gguf-model-data
    [ 94%] Building CXX object examples/diffusion/CMakeFiles/llama-diffusion-cli.dir/diffusion-cli.cpp.o
    [ 94%] Linking CXX executable ../../bin/llama-export-lora
    [ 95%] Linking CXX executable ../../bin/llama-cvector-generator
    [ 95%] Building CXX object tools/batched-bench/CMakeFiles/llama-batched-bench.dir/main.cpp.o
    [ 95%] Linking CXX executable ../../bin/llama-mtmd-cli
    [ 95%] Linking CXX executable ../../bin/llama-batched-bench
    [ 95%] Built target llama-export-lora
    [ 95%] Building CXX object tools/quantize/CMakeFiles/llama-quantize.dir/main.cpp.o
    [ 95%] Built target llama-cvector-generator
    [ 95%] Building CXX object tests/CMakeFiles/test-gguf-model-data.dir/test-gguf-model-data.cpp.o
    [ 95%] Linking CXX executable ../../bin/llama-quantize
    [ 95%] Built target llama-mtmd-cli
    [ 95%] Built target llama-batched-bench
    [ 95%] Building CXX object tests/CMakeFiles/test-quant-type-selection.dir/test-quant-type-selection.cpp.o
    [ 95%] Building CXX object tests/CMakeFiles/export-graph-ops.dir/export-graph-ops.cpp.o
    [ 95%] Linking CXX shared library ../../bin/libllama-fit-params-impl.so
    [ 95%] Built target llama-quantize
    [ 95%] Building CXX object tests/CMakeFiles/test-quant-type-selection.dir/get-model.cpp.o
    [ 95%] Linking CXX executable ../bin/test-chat-auto-parser
    [ 95%] Built target llama-fit-params-impl
    [ 95%] Building CXX object tools/fit-params/CMakeFiles/llama-fit-params.dir/main.cpp.o
    [ 95%] Linking CXX executable ../../bin/llama-fit-params
    [ 95%] Linking CXX shared library ../../bin/libllama-completion-impl.so
    [ 95%] Built target test-chat-auto-parser
    [ 96%] Linking CXX executable ../bin/test-gguf-model-data
    [ 96%] Linking CXX executable ../../bin/llama-results
    [ 96%] Built target llama-fit-params
    [ 96%] Built target llama-completion-impl
    [ 97%] Building CXX object tools/completion/CMakeFiles/llama-completion.dir/main.cpp.o
    [ 97%] Linking CXX executable ../../bin/llama-completion
    [ 97%] Built target llama-results
    [ 97%] Built target test-gguf-model-data
    [ 97%] Built target llama-completion
    [ 97%] Linking CXX shared library ../../bin/libllama-perplexity-impl.so
    [ 97%] Linking CXX executable ../../bin/llama-diffusion-cli
    [ 97%] Linking CXX executable ../bin/export-graph-ops
    [ 97%] Built target llama-perplexity-impl
    [ 97%] Building CXX object tools/perplexity/CMakeFiles/llama-perplexity.dir/main.cpp.o
    [ 97%] Linking CXX executable ../../bin/llama-perplexity
    [ 98%] Linking CXX executable ../bin/test-quant-type-selection
    [ 98%] Built target llama-diffusion-cli
    [ 98%] Built target export-graph-ops
    [ 98%] Built target test-quant-type-selection
    [ 98%] Built target llama-perplexity
    [ 98%] Linking CXX executable ../bin/test-jinja
    [ 98%] Linking CXX executable ../../bin/llama-debug-template-parser
    [ 98%] Built target test-jinja
    [ 98%] Built target llama-debug-template-parser
    [ 98%] Linking CXX executable ../../bin/llama-template-analysis
    [ 98%] Linking CXX executable ../bin/test-chat-peg-parser
    [ 98%] Built target llama-template-analysis
    [ 98%] Built target test-chat-peg-parser
    [ 98%] Linking CXX executable ../../bin/llama-imatrix
    [ 98%] Built target llama-imatrix
    [ 98%] Linking CXX static library libserver-context.a
    [ 98%] Built target server-context
    [ 98%] Building CXX object tools/server/CMakeFiles/llama-server-impl.dir/server-models.cpp.o
    [ 98%] Building CXX object tools/server/CMakeFiles/llama-server-impl.dir/server.cpp.o
    [ 98%] Building CXX object tools/server/CMakeFiles/llama-server-impl.dir/server-http.cpp.o
    [ 98%] Building CXX object tools/cli/CMakeFiles/llama-cli-impl.dir/cli.cpp.o
    [ 98%] Building CXX object tests/CMakeFiles/test-chat.dir/get-model.cpp.o
    [ 98%] Building CXX object tests/CMakeFiles/test-chat.dir/test-chat.cpp.o
    [ 99%] Linking CXX executable ../../bin/llama-tts
    [ 99%] Linking CXX shared library ../../bin/libllama-bench-impl.so
    [ 99%] Built target llama-tts
    [ 99%] Built target llama-bench-impl
    [ 99%] Building CXX object tools/llama-bench/CMakeFiles/llama-bench.dir/main.cpp.o
    [ 99%] Linking CXX executable ../../bin/llama-bench
    [ 99%] Built target llama-bench
    [ 99%] Linking CXX executable ../bin/test-backend-ops
    [ 99%] Built target test-backend-ops
    [ 99%] Linking CXX shared library ../../bin/libllama-cli-impl.so
    [ 99%] Built target llama-cli-impl
    [ 99%] Building CXX object tools/cli/CMakeFiles/llama-cli.dir/main.cpp.o
    [100%] Linking CXX executable ../../bin/llama-cli
    [100%] Built target llama-cli
    [100%] Linking CXX shared library ../../bin/libllama-server-impl.so
    [100%] Built target llama-server-impl
    [100%] Building CXX object tools/server/CMakeFiles/llama-server.dir/main.cpp.o
    [100%] Building CXX object app/CMakeFiles/llama-app.dir/llama.cpp.o
    [100%] Linking CXX executable ../../bin/llama-server
    [100%] Built target llama-server
    [100%] Linking CXX executable ../bin/llama
    [100%] Built target llama-app
    [100%] Linking CXX executable ../bin/test-chat
    [100%] Built target test-chat
    # 查看版本
    liqixin@fedora:~/Dev/llama.cpp$ ./build/bin/llama-cli --version
    version: 9282 (4f0e43da6)
    built with GNU 15.2.1 for Linux x86_64
    # 查看是否支持 GPU
    liqixin@fedora:~/Dev/llama.cpp$ ./build/bin/llama-cli -h | grep -E "ngl|gpu|cuda|flash"
    -fa,   --flash-attn [on|off|auto]       set Flash Attention use ('on', 'off', or 'auto', default: 'auto')
    -ngl,  --gpu-layers, --n-gpu-layers N   max. number of layers to store in VRAM, either an exact number,
    -mg,   --main-gpu INDEX                 the GPU to use for the model (with split-mode = none), or for
                                            single value is broadcast across all devices, default: 1024
    --spec-draft-ngl, -ngld, --gpu-layers-draft, --n-gpu-layers-draft N
    -st,   --single-turn                    run conversation for a single turn only, then exit when done
    liqixin@fedora:~/Dev/llama.cpp$ 
    
  • 解决 Fedora 43 (GNOME 49) 远程 SSH 触发 “The system will suspend now!”

    我把家里的台式机升级到Fedora 43 ,GNOME49 用起来确实挺舒服,顺手将 Fedora 43 Workstation 作为远程开发机或服务器使用时,遇到一个特别烦的问题,SSH 连着连着突然断了,因系统自动进入休眠(Suspend)而中断。我在 GNOME 图形界面的电源设置中关闭了所有自动挂起选项,系统依然可能在远程操作期间弹出 The system will suspend now! 并强制断开连接。

    1. 常规配置(图形界面)

    我开始以为在 GNOME 桌面环境的电源管理中配置这样就可以正常解决这个问题但并没有解决,没用

    1. 打开 Settings (设置) -> Power (电源)。
    2. Automatic Screen Blank (自动黑屏):设置为 Off (关闭)。
    3. Automatic Suspend (自动挂起):确保设置为 Off (关闭)。

    2. 禁用 systemd 休眠

    当 GUI 设置失效时,说明系统底层的 systemd 策略仍处于活跃状态。对于需要保持常开的远程机器,最稳妥的方法是屏蔽(Mask)相关的休眠单元。

    2.1 诊断休眠状态

    在操作前,你可以运行以下命令查看系统当前的休眠服务状态:

    sudo systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target

    2.2 执行屏蔽命令

    通过 mask 命令,我们将休眠相关的 Target 指向 /dev/null。这是一种比 disable 更强力的手段,能够防止任何物理按键、系统 API 或 GUI 插件触发休眠。

    # 一键禁用所有休眠模式
    sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

    执行效果: 系统将完全忽略所有的休眠请求,彻底终结 SSH 远程连接时的中断风险。

    2.3 恢复休眠(可选)

    如果你在未来需要恢复笔记本的合盖休眠或台式机的节能模式,可以使用以下命令解除屏蔽:

    sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

    3. 技术解析:为什么 GUI 设置后依然会断连

    在 Fedora 43 (GNOME 49) 中,这种情况通常由以下原因引起:

    • 多 Session 竞争: GNOME 的电源设置有时仅对当前的本地会话有效。如果系统停留在 GDM 登录界面,或者系统认为本地处于“无活动”状态,底层 systemd-logind 可能会接管电源策略。
    • SSH 会话识别: 系统默认可能不将纯远程 SSH 流量识别为“用户活动”,从而触发了全局的空闲休眠逻辑。

    追求“Vibe Coding”或需要高可用远程环境的开发者来说,单纯依靠 GNOME 的开关是不够的。“UI 辅助设置 + systemd 强制 Mask” 才是确保 Fedora 43 系统稳如磐石、SSH 永不断线的标准做法。

  • Fedora 开启 Wake-on-LAN(WOL)远程唤醒配置教程

    Wake-on-LAN(WOL,网络唤醒)是一种通过网络远程启动计算机的技术。设备即使处于关机或休眠状态,也可以通过接收特定的 Magic Packet(魔术包)被远程唤醒。

    该功能常用于:

    • 家庭服务器
    • NAS
    • 远程办公主机
    • 低功耗 Linux 设备

    1. 查看网卡名称

    ip link

    示例输出:

    2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP>

    这里的enp3s0为当前网卡名称。

    enp3s0

    2. 检查网卡是否支持 Wake-on-LAN

    查看网卡 WOL 状态:

    sudo ethtool <网卡名称> | grep Wake-on

    例如:

    sudo ethtool enp3s0 | grep Wake-on

    输出示例:

    Supports Wake-on: pumbg
    Wake-on: d

    Wake-on 参数说明

    参数含义
    d禁用 Wake-on-LAN
    pPHY 活动唤醒
    u单播数据包唤醒
    m多播数据包唤醒
    b广播数据包唤醒
    aARP 数据包唤醒
    gMagic Packet 唤醒
    s安全 Magic Packet
    f特定过滤器唤醒

    其中最常用的是g表示支持 Magic Packet 唤醒。

    3. 查看 NetworkManager 网络连接名称

    Fedora 默认使用 NetworkManager 管理网络。

    查看当前连接:

    sudo nmcli connection show

    示例:

    NAME                UUID                                  TYPE      DEVICE
    Wired connection 1  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  ethernet  enp3s0

    记住连接名称:

    Wired connection 1

    4. 开启 Wake-on-LAN

    使用 nmcli 配置永久 WOL:

    sudo nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic

    该配置在系统重启后依然有效。

    5. 重新应用网络配置

    立即生效:

    sudo nmcli device reapply <网卡名称>

    例如:

    sudo nmcli device reapply enp3s0

    6. 验证是否开启成功

    再次检查:

    sudo ethtool <网卡名称> | grep Wake-on

    如果输出Wake-on: g说明 Wake-on-LAN 已成功开启。

  • Docker 磁盘爆满实录:我以为镜像删干净了,结果系统还是报 No Space

    执行了 docker rmi,为什么磁盘空间还是 100% 占用?记录了一次服务器磁盘爆满的排查过程,深度解析 Docker 分层存储与构建缓存,并分享真正有效的深度清理命令。

    在日常开发和运维中,我习惯于用一个简单的命令来清理 Docker 镜像:

    docker rmi <IMAGE_ID>

    删除不再使用的镜像,释放磁盘空间,逻辑看似完美。直到有一天,我的服务器直接弹出令人绝望的红字:

    No space left on device

    我删光了所有能删的镜像,为什么磁盘还是满的?

    1. 现象:镜像删了,空间没回?

    当我意识到磁盘报警时,第一反应是检查 Docker 的占用情况:

    docker images  # 查看镜像列表
    df -h          # 查看系统磁盘状况

    诡异的现象出现了:

    • docker images 列表里只剩下几个业务镜像,加起来不到 2GB。
    • 但 /var/lib/docker 目录依然占用了 40GB+。

    这时候我才意识到:看到的“镜像”,并不代表 Docker 占用的全部空间。

    2. 分析原因:为什么 docker rmi 会失效?

    理解这个问题,必须看清 Docker 的底层存储机制。Docker 镜像并非一个独立的文件,而是像乐高积木一样层层堆叠的(Layer-based Filesystem)。

    2.1 镜像层(Layers)的“幽灵”

    当你用 docker rmi 删除一个镜像时,Docker 只会尝试删除该镜像特有的层。如果某些层被其他镜像引用,或者是构建过程中的中间层,它们就会留在磁盘上,变成无法通过 rmi 直接删除的“幽灵空间”。

    2.2 虚悬镜像(Dangling Images)

    在多次执行 docker build 后,旧的镜像会失去标签(Tag),变成 <none>:<none>。这些镜像往往不会出现在你常规的清理视线里,但依然实打实地占据空间。

    2.3 构建缓存(Build Cache)

    这是最隐形的“空间杀手”。特别是开启了 BuildKit 后,Docker 会产生大量的构建缓存。这些缓存完全不会显示在 docker images 列表中,却是磁盘爆满的元凶之一。

    3. 真正救命的命令:docker image prune

    当我发现手动删除(rmi)无能为力后,我使用了 Docker 官方提供的“深度清理”命令:

    docker image prune -a

    这条命令到底做了什么?

    1. 所有未被容器使用的镜像(即使它有 Tag)。
    2. 所有虚悬镜像(Dangling Images)。
    3. 所有孤立的镜像层。

    ⚠️ 安全提示: 只要你的业务容器正在运行,它所依赖的镜像就是安全的,不会被 prune 误删。但对于已经停止(Exited)的容器,其对应的镜像可能会被判定为“未使用”而被清理。

    执行后,我的服务器磁盘占用瞬间从 100% 降到了 15%。

    4. 进阶技巧:如何精准定位与排查?

    在盲目清理之前,我建议先用以下命令定位 Docker 的真实磁盘占用:

    docker system df

    输出会清晰地展示四类数据的占用分布:

    • Images: 镜像
    • Containers: 容器(包括日志和可写层)
    • Local Volumes: 本地卷
    • Build Cache: 构建缓存

    如果 image prune 仍不足以释放空间,可以使用终极命令:

    # 清理一切:停止的容器、未使用的网络、未使用的镜像和卷
    docker system prune -a --volumes