MoXing 五月更新,算是来了个大扫除

MoXing 是一个 Python 封装层,让 llama.cpp 更易用。

项目地址:https://github.com/cycleuser/MoXing

最开始其实就是为了在一台设备上用多个显卡运行多个模型,因为ollama这么做不太方便,直接用llama.cpp又不好部署,于是用python弄了一个。

安装只需要

pip install moxing -U
moxing devices

前情提要:

MoXing:低预算场景用RX580显卡轻松运行Qwen3.5-9b-q4_k_m模型

Void + MoXing:低成本方案用RX580显卡本地运行qwen3.5:9B模型,打造类Cursor体验

MoXing新升级:直接夺舍 Ollama ,部分模型提速 50%

MoXing 和 Ollama 对比:从omnicoder-9b到更多模型

本地部署并运行omnicoder-9b的速度之谜:MoXing vs Ollama

MoXing升级:同时运行多个模型实例

MoXing 速度最高达到 Ollama的 201% ,同模型同硬件的实测对比OmniCoder-2-9B 的 Q4_K_M 量化模型

MoXing 助力垃圾佬用百元超廉价显卡本地运行omnicoder-2-9b模型结果也只有十几个tokens/s

最近的版本更新了之后,砍掉了过于复杂的运行文件逻辑。

$ pip install moxing -U
$ moxing devices
                                      Available Devices
┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━┓
 ID      Name                              Backend   Memory      Free        Vendor   
┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━┩
 gpu0    Tesla P4                          CUDA      8.0GB       7.9GB       nvidia   
 gpu1    AMD Radeon RX 580 2048SP (RADV P  VULKAN    15.8GB      15.8GB      amd      
 cpu     CPU                               CPU       62.7GB      59.3GB      cpu      
└────────┴──────────────────────────────────┴──────────┴────────────┴────────────┴──────────┘

Backend Support:
  NVIDIA: CUDA, Vulkan
  AMD: ROCm, Vulkan

Usage:
  moxing ollama serve model -d gpu0 -b cuda
  moxing ollama serve model -d gpu1 -b rocm
  moxing ollama serve model -d gpu0 -b vulkan

CPU Offload Options:
  moxing ollama serve model --cpu-offload 10
  moxing ollama serve model --prompt-offload

这次的更新主要有三个改动,一个方向:砍掉缝合,回归主线。

二进制下载:三级回退变两级

之前 moxing download-binaries 走三条路:先找 MoXing patched release(自己改的 llama.cpp 加了 Ollama 补丁),再找 llama.cpp 官方,最后回退到 MoXing fallback。问题很明显——llama.cpp 一更新我们得跟着重新打包、打 tag、写 release notes,patched 版本经常拖好几天甚至几周,用户拿到的可能是过时二进制。代码里 _runner_type 在 official、ollama、patched 之间绕,两套路由逻辑并存。

现在改成两级:优先从 MoXing Release 下载自构建二进制(GitHub Actions 自动从 llama.cpp 源码编译,覆盖官方不提供的 Linux CUDA/Vulkan 等包),找不到就回退到 llama.cpp 官方 Release。

删掉了 RUNNER_TYPES、VersionInfo、find_asset_for_platform() 这些老代码,BinaryManager 和 LlamaServer 的 runner 参数也全砍了。净减 165 行。

砍掉 Ollama Runner

之前 MoXing 内嵌了一个 OllamaRunnerBinary 类,1083 行,专门下载和管理 Ollama 的 runner 二进制。有自己的下载逻辑、版本管理、进程管理,等于在 MoXing 里又维护了一份 Ollama 的安装系统。

这东西有几个硬伤:Ollama 更新很快,我们绑定的版本经常对不上;用户本地装了 Ollama,MoXing 还要下另一个;代码复杂度直接翻倍。

现在的做法很直接:moxing ollama serve 直接调系统装的 Ollama daemon,通过 Ollama 的 HTTP API 拿到模型路径,再喂给 llama.cpp server。

删掉了 ollama_runner.py(1083 行)、runners/ollama.py(116 行)、ollama download-runner 命令。serve 的 --runner 选项从 auto/llama_cpp/vllm/ollama 变成 auto/llama_cpp/vllm。

moxing build 大幅增强

老的 build 命令就是个 cmake -B build && cmake --build build,不管你选什么后端,依赖装没装不检查,CUDA 用什么架构不检测,失败了扔个 traceback 就完事。

现在每个后端都有独立的依赖检查、安装指引和编译参数。编译前先检查 cmake、g++、git 以及对应后端的专有依赖(CUDA 看 nvcc、Vulkan 看 libvulkan-dev、ROCm 看 hipconfig),缺什么直接给出 apt install 命令。CUDA 时跑 nvidia-smi 拿到计算能力,ROCm 时跑 rocminfo 拿到 gfx 架构,自动传给 CMake。编译失败了也不扔 traceback 跑路,而是按后端给出常见修复建议。

还加了 --backend auto,自动选最合适的后端:NVIDIA 用 CUDA,AMD 用 ROCm,有 Vulkan 驱动用 Vulkan,macOS 用 Metal,都没有就 CPU。

顺便提一下,llama.cpp 官方 Release 确实没提供 Linux CUDA 的预编译包,只有 Ubuntu CPU 和 macOS Metal。所以 Linux 用户要用 CUDA 或 ROCm,自己编译是最靠谱的,moxing build 就是干这个的。当然了,moxing 的release也提供了,用 moxing  download-binaries 或者 moxing update-binaries --force来下载。

另外加了三个构建脚本:build_all_binaries.py 批量编译所有后端,build_cuda_multi.py 编译多版本 CUDA,release_binaries.py 自动检测上游更新、编译、打包、上传到 GitHub Release。这解决了 Linux CUDA 等平台没有官方预编译包的问题。

数字记录

删了 1973 行,加了 1589 行,净减 384 行。删掉 2 个文件(ollama_runner.py、runners/ollama.py),新增 3 个构建脚本。

使用Tesla P4,运行omnicoder-2-9b-q5km能达到20tokens/s。

Image

使用7900xtx,运行qwen3.6-27b-mtp-q5km能达到30tokens/s。

Image

使用RX580-2048SP-16G,运行qwen3.6-27b-mtp-q5km,如果设置了--ngl 就是GPU上加载的层数为32,就是只有32层放在显存,其他放在内存,这样还是特别慢,只有1.5tokens/s。

Image

使用RX580-2048SP-16G,运行qwen3.6-27b-mtp-q5km,如果设置了--ngl 就是GPU上加载的层数为72,就是只有72层放在显存,其他放在内存,这样能稍微快点,大概5tokens/s。

Image

预览时标签不可点

Close

更多

Name cleared

微信扫一扫赞赏作者

Like the AuthorOther Amount

赞赏后展示我的头像

作品

暂无作品

Like the Author

Other Amount

¥

最低赞赏 ¥0

OK

Back

Other Amount

更多

赞赏金额

¥

最低赞赏 ¥0

1

2

3

4

5

6

7

8

9

0

.

大语言模型 · 目录

大语言模型

上一篇方法比规模更重要——AgenticQwen与Needle的小模型智能体应用探索下一篇Token自由-用MoXing在7900xtx-24G显卡上本地运行Qwen3.6-27B模型给OpenCode用来文档编撰润色

Close

更多

搜索「」网络结果

Close

调整当前正文文字大小

更多

100%