如何在 Windows 11 原生构建 Colibrì 并启用 CUDA GPU 层不走 WSL【免费下载链接】colibriRun frontier MoE models on hardware you already own — pure C, zero deps, experts streamed from disk. Tiny engine, immense model. 项目地址: https://gitcode.com/GitHub_Trending/colibri3/colibri本文解决一个具体任务在一台全新 Windows 11 机器上从源码构建 Colibrì 引擎纯 Ccolibri.exe并把 CUDA 编译成独立的coli_cuda.dll供引擎运行时加载——全程不用 WSL。该路径由 docs/windows.md 完整描述并在 Core Ultra 9 285K / RTX 5080sm_120/ 128 GB RAM / Windows 11 24H2 上逐步验证过。CPU 构建和 CUDA DLL 是两个独立阶段引擎本身用 MinGW-w64 gcc 编译MSVC 编不了CUDA 内核用 nvcc MSVC 编译主机二进制通过 c/backend_loader.c 以LoadLibrary在运行时加载 DLLDLL 缺失时引擎回落到 CPU 路径且无报错。0. 准备条件组件作用获取方式git、Python 3克隆仓库 coli启动器winget / python.org安装时勾选 Add python.exe to PATHMinGW-w64 gcc make编译引擎MSVC 不能编译引擎推荐 MSYS2或便携 w64devkit或scoop install mingw-winlibs有坑见下CUDA Toolkit ≥ 12.8GPU 层Blackwell/sm_120 必须 ≥12.8winget install Nvidia.CUDAMSVC Build ToolsC workloadnvcc 在 Windows 上的宿主编译器winget install Microsoft.VisualStudio.2022.BuildTools Desktop development with C本地 NVMe 上约 400 GB 空闲int4 模型约 370–384 GBNTFS 即可不能是网络挂载RAM 最低 16 GB越大 expert 缓存越大、速度越快。CPU 构建不需要 CUDA/MSVC 任何部分——先做 CPU 构建GPU 层后加。scoop MinGW 的已知坑#478scoop install mingw-winlibs只带gccmake没有sh.exe。Makefile 的配方使用 POSIX shell 语法command -v、{ ...; }、重定向/dev/nullGNU make 通过/bin/sh执行没有 sh.exe 时 make 回落到cmd.exe构建失败并报printf is not recognized或The system cannot find the path specified。修复方式装 MSYS2文档推荐配方就是按它写的或在任意构建 shell 里set PATH%PATH%;C:\msys64\usr\bin。w64devkit 自带 sh.exe可直接用。1. 先把模型下载跑起来最耗时的一步docs/windows.md 的步骤顺序刻意把长下载放在构建之前并行进行python -m pip install -U huggingface_hub[hf_transfer] $env:HF_HUB_ENABLE_HF_TRANSFER 1 hf download model-repo --local-dir D:\glm52_i4model-repo需替换为实际模型仓库docs/quickstart.md 推荐的是带int8 MTP heads的 group-scaledgs64GLM-5.2 int4 容器https://huggingface.co/mastouri/GLM-5.2-colibri-int4-g64-with-int8-mtp约 372 GB落到 Windows 例如D:\glm52_i4。文档特别说明要用 int8 MTP heads 的容器int4 heads 会静默导致 0% draft 接受率。下载可断点续传中断后重跑同一命令即可整个下载需要数小时下面的构建都在这期间完成。如果暂时只想验证构建和 GPU 层而不下载 370 GB 模型可选分支用仓库自带的 oracle 生成器 c/tools/make_glm_oracle.py 本地生成一个约 0.6 MB、随机权重的glm_tiny测试模型它不是语言模型只用于让 C 引擎精确复现参考 token ID详见 docs/windows.md 的 Generating the synthetic GLM oracle model 一节。2. 构建 CPU 引擎在普通 PowerShell 中进入仓库的c\目录make colibri.exe ARCHnative # ARCHnative 解锁 AVX-VNNIAlder Lake/Arrow Lake make iobench.exe # 磁盘基准可在承诺下载前先用它测盘#pragma comment和 unused variable 的警告是正常的MSVC 风格gcc 会忽略。验证方式引擎 banner 在支持 VNNI 的 CPU 上应打印idot: avx-vnni如果显示avx2说明构建时没带ARCHnative。Smart App Control 会拦截自编译二进制在开启 Smart App Control 的 Windows 11 上VerifiedAndReputablePolicyState 1运行自编译的colibri.exe会失败Program colibri.exe failed to run: An Application Control policy has blocked this file这不是 Defender 也不是 Mark-of-the-WebSAC 拦截所有未签名、来源不明的二进制包括自己编译的。修复Windows 安全中心 → 应用和浏览器控制 → Smart App Control 设置 →关闭然后重启策略只在重启时重载。注意 SAC 是单向的之后想重新启用必须重置 Windows。设置页缺失时注册表等价操作是把HKLM:\SYSTEM\CurrentControlSet\Control\CI\Policy\VerifiedAndReputablePolicyState设为0管理员 PowerShell再重启。动手前先用这条命令查看当前状态0 关闭1 强制2 评估(Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\CI\Policy).VerifiedAndReputablePolicyState3. 构建 CUDA DLLGPU 层nvcc 需要 MSVC 作为宿主编译器所以这一步必须在带 MSVC 环境的 shell 里执行从开始菜单打开x64 Native Tools Command Prompt for VS 2022普通 PowerShell 过不了cl检查。该提示符是cmd.exe环境且没有sh.exe#478cuda-dll配方用了 POSIX 语法构建前先执行一次set PATH%PATH%;C:\msys64\usr\binMSYS2 装在别处就调整路径如果用的是 w64devkit 或 scoop MinGW把 PATH 指向sh.exe实际所在位置。然后make cuda-dll CUDA_ARCHsm_120 # 按你的 GPU 架构替换 make colibri.exe CUDA_DLL1 ARCHnative # 用运行时加载器重链主机二进制CUDA_ARCH必须匹配 GPU 的 compute capabilitydocs/windows.md 给出了对照表架构代表 GPUnvcc标志BlackwellB100, B200, RTX 50x0sm_100,sm_120HopperH100, H200, GH200sm_90/sm_90aAda LovelaceRTX 40x0, RTX 2000, L4, L40sm_89AmpereA100, RTX 30x0, A10, Orinsm_80,sm_86,sm_87TuringRTX 2080, GTX 1660 Ti, T4sm_75VoltaV100, Titan V, Xaviersm_70,sm_72注意docs/windows.md 中一段笔记本验证记录写的是make cuda-dll CUDA-ARCHsm_89连字符但 c/Makefile 中定义的变量是CUDA_ARCH下划线以 Makefile 和文档其余部分使用的CUDA_ARCH为准。两个坑在当前dev分支已修复#314旧 checkout 上值得知道CUDA_HOME含空格C:\Program Files\...曾使配方失败——已修复nvcc 现在从 PATH 取、$(NVCC)已加引号CPU-only 构建之后跑make colibri.exe CUDA_DLL1曾报up to date并静默保留 CPU-only 二进制GPU 层永远不生效、无报错——当前dev有 build-config 戳c/Makefile 中的.build-config强制重链旧树上需先手动删除二进制再重编。另有一个一次性脚本 c/build_cuda.bat它自动通过 vswhere 定位 vcvars64、按nvidia-smi的 compute capability 自动推导CUDA_ARCH检测失败回落到sm_120等价于上面的cuda-dll配方。构建完应有colibri.exe、coli_cuda.dll以及coli_cuda.lib、coli_cuda.exp。4. 首次运行与验证cd repo\c $env:OMP_NUM_THREADS physical cores python coli run Explain what a mixture-of-experts model is. --model D:\glm52_i4 --ngen 48其中repo替换为你的仓库路径physical cores替换为物理核心数。首次运行是冷启动——profile 以expert-disk为主、缓存逐步预热命中率随运行次数上升。这是文档给出的参考形态Core Ultra 9 285K / RTX 5080 / 128 GB / NVMe 随机读 5.85 GB/sCPU 冷启动 0.26 tok/s → 热 CPU 0.30 → GPU 层 auto-pin 0.42 tok/sexpert 命中 66%约 65% 墙钟时间在 expert-disk——在约 25% expert 驻留率下磁盘受限是预期形态更快的盘和更大的 RAM 抬高下限GPU 抬高计算。在 CPU 构建之上开启 GPU 层$env:COLI_CUDA1; $env:COLI_GPU0; $env:CUDA_DENSE1; $env:CUDA_EXPERT_GB4 python coli run ... --model D:\glm52_i4 --ngen 64各变量的作用见 docs/ENVIRONMENT.mdCOLI_CUDA1启用 CUDA 后端COLI_GPU选设备CUDA_DENSE默认 0把稠密非 expertmatmul 放上 GPUCUDA_EXPERT_GB是 GPU 上 expert 缓存的 VRAM 预算也接受auto。CUDA_EXPERT_GB的取值要让稠密约 10 GB experts 工作集总和不超出你的 VRAM。判断 GPU 层是否生效第一次 GPU 运行应打印[CUDA] device 0: your GPU, ... sm_XX [CUDA] mode: routed experts resident dense tensors另外两个文档给出的行为要点MTP 推测在 CUDA 下默认关闭#293draft 与 verify 的浮点累积分歧COLI_CUDA_MTP1可显式开回如果构建失败报nvcc fatal: unsupported gpu architecture sm_120说明 CUDA 12.8需要装 12.8。5. 失败速查与限制docs/windows.md 的失败索引中与本场景直接相关的条目现象原因修复make colibri.exe期间printf is not recognized/The system cannot find the path specifiedscoop MinGW 无sh.exemake 回落 cmd.exe#478用 MSYS2/w64devkit或set PATH%PATH%;C:\msys64\usr\binAn Application Control policy has blocked this fileSmart App Control关闭 SAC 并重启cuda-dll ... Error 1立即失败旧树CUDA_HOME 含空格 / MSVC 拒绝-Wextra更新到当前dev#314colibri.exe is up to date但 GPU 不生效旧树残留 CPU-only 二进制更新到dev或删除二进制重编cl.exe (MSVC) not in PATH从普通 PowerShell 构建使用 x64 Native Tools 提示符nvcc fatal: unsupported gpu architecture sm_120CUDA 12.8安装 CUDA 12.8MTP0% (0/0)CPU 路径容器是 int4 MTP heads换 int8-MTP 容器CUDA 下 MTPdraft0#293 起就是默认COLI_CUDA_MTP1显式开启两个值得记住的边界其一Windows Store 的python别名桩是原生 Windows 上最常见的坑——要么装真正的 Pythonpython.org 或winget install Python.Python.3.12要么在设置 → 应用 → 应用执行别名里禁用别名其二cola……没有cola如果你直接双击运行colibri.exe等引擎 exe 而没有模型可加载它们会打印启动方法后退出从资源管理器看就像一个闪一下就消失的窗口#1241——日常入口是启动器colipython coli chat/serve/run/doctor模型由--model或COLI_MODEL指定。下一步构建和 GPU 层验证通过后docs/windows.md 给出的延续项是warmup.ps1它用多样化的 prompt 循环跑coli run无人值守地建立.coli_usage使用直方图让下一次真实会话以较大的热 expert 驻留开始例如.\warmup.ps1 -Rounds 1 -Ngen 32约 60–90 分钟进度持久化。缓存、预取与推测的详细调优见 docs/tuning.md每个环境变量的完整语义见 docs/ENVIRONMENT.md。【免费下载链接】colibriRun frontier MoE models on hardware you already own — pure C, zero deps, experts streamed from disk. Tiny engine, immense model. 项目地址: https://gitcode.com/GitHub_Trending/colibri3/colibri创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考