系统之家提供 Windows 系统、Ghost 系统、驱动与常用软件的安全下载及安装教程。 后台管理
📢 欢迎访问系统之家!所有资源均经过安全检测。

ktransformers/kt

发布时间:2026-10-20 | 浏览:1
📥 下载地址(文章开头)
装机神器,可安装一切系统,纯净版,英文版,繁体版 ,精简版,原版等等等
Files Expand file tree File metadata and controls 高性能 KTransformers 内核库,提供面向 CPU 的高效 MoE 推理内核,支持 AMX 和 AVX 等后端。 KT-Kernel 说明 特性 安装 先决条件 快速安装(推荐) 手动配置(进阶) 验证安装 与 SGLang 集成 安装步骤 1. 安装 SGLang 2. 准备权重 3. 启动 SGLang Server 完整示例:Qwen3-30B-A3B 方案 A:AMX 后端(AMXINT8) 方案 B:LLAMAFILE 后端(GGUF) KT-Kernel 参数 直接使用 Python API 高级选项 构建配置 手动安装 1. 安装系统依赖 2. 配置构建参数 3. 构建并安装 错误排查 找不到 CUDA 找不到 hwloc 权重量化 提交前必读 安装 先决条件 快速安装(推荐) 手动配置(进阶) 与 SGLang 集成 安装步骤 1. 安装 SGLang 2. 准备权重 3. 启动 SGLang Server 完整示例:Qwen3-30B-A3B 方案 A:AMX 后端(AMXINT8) 方案 B:LLAMAFILE 后端(GGUF) KT-Kernel 参数 安装步骤 1. 安装 SGLang 2. 准备权重 3. 启动 SGLang Server 3. 启动 SGLang Server 完整示例:Qwen3-30B-A3B 方案 A:AMX 后端(AMXINT8) 方案 B:LLAMAFILE 后端(GGUF) 方案 A:AMX 后端(AMXINT8) 方案 B:LLAMAFILE 后端(GGUF) 直接使用 Python API 高级选项 构建配置 手动安装 1. 安装系统依赖 2. 配置构建参数 3. 构建并安装 手动安装 1. 安装系统依赖 2. 配置构建参数 3. 构建并安装 错误排查 找不到 CUDA 找不到 hwloc ✅ 带 AMX 的 Intel CPU :已支持(基于转换为 INT4/INT8 格式的权重) ✅ 通用 CPU(llamafile 后端) :已支持(基于 GGUF 格式的权重) ✅ 带 BLIS 的 AMD CPU :已支持(int8 的 prefill 和 decode) ✅ Kimi-K2 原生 INT4(RAWINT4) :支持 AVX512 CPU(CPU-GPU 共享 INT4 权重)- 使用指南 CPU 友好的 MoE 内核 :针对指令集优化的高吞吐 MoE 专家内核。 AMX INT4/INT8 后端 :面向支持 AMX 的服务器提供 INT4 / INT8 量化专家推理后端。 Llamafile CPU 后端 :基于 Llamafile 的 AVX2/AVX512 MoE 后端,适用于通用 CPU 部署。 NUMA 感知执行 :为多路 / 多 NUMA 机器设计的线程池和内存布局。 从源码安装(本机使用或自定义构建) 适用于本地安装,或需要 AMD (BLIS)、ARM (KML) 或自定义 CUDA 版本的场景。 首先初始化子模块并创建 conda 环境: 只需运行安装脚本,它会自动检测 CPU 并优化性能: 自动检测 CPU 能力(AMX、AVX512_VNNI、AVX512_BF16) 安装系统依赖( cmake 、 libhwloc-dev 、 pkg-config ) 为 你的 CPU 构建优化二进制(使用 -march=native ) 软件回退机制 :为不支持 VNNI/BF16 的 CPU 自动启用 软件回退支持(AVX512 后端): ✅ VNNI 回退:使用 AVX512BW 指令 ✅ BF16 回退:使用 AVX512F 指令 ✅ 老的 AVX512 CPU(Skylake-X、Cascade Lake)可以运行 RAWINT4(使用回退) ⚠️ 可移植性说明: 默认构建针对你的特定 CPU 优化,可能无法在不同/更老的 CPU 上运行。如需打包分发或跨机器部署,请参见下方的 手动配置 。 ⚠️ AMD BLIS 后端用户: 请参见 安装指南 了解 AMD 专用配置。 KT-Kernel 可以单独通过 Python API 使用,也可以集成到 SGLang 中用于生产部署。 本节描述如何与 SGLang 集成,实现 CPU-GPU 混合(异构)推理:将“热” experts 放在 GPU 上,“冷” experts 放在 CPU 上,以达到资源利用和性价比的平衡。 安装 kvcache-ai 分支的 SGLang(kt-kernel 需要此分支): 重要: 请使用 sglang-kt (kvcache-ai 分支),而非官方 sglang 包。如已安装官方版本,请先卸载: pip uninstall sglang -y 要进行异构推理,需要同时准备 GPU 权重和 CPU 侧 experts 对应的权重,具体格式取决于后端类型: GPU 权重: 使用 SGLang 所需的模型权重(例如 Hugging Face 上的原始模型目录或已量化好的 GPU 权重)。 CPU 权重(AMX 后端: AMXINT4 / AMXINT8 ): 通过提供的脚本将权重量化为适配 AMX 的 INT4/INT8 格式: --input-path :GPU 侧原始权重路径 --input-type :取决于 GPU 侧权重类型( fp8 、 fp16 或 bf16 ) 在 SGLang 集成中, --kt-weight-path 应指向该转换后的 CPU 权重目录。 支持的输入格式: FP8、FP16、BF16 → INT4/INT8。 CPU 权重(LLAMAFILE 后端: LLAMAFILE ): LLAMAFILE 在 CPU 侧直接使用预量化的 GGUF 权重,无需运行 convert_cpu_weights.py 。你需要: 直接从互联网上下载 GGUF 模型(例如 Hugging Face / Modelscope 上的 GGUF 仓库); 在 SGLang 集成中,将该 GGUF 目录作为 --kt-weight-path 。 KT-Kernel 支持多种 GGUF 量化格式,例如 Q4_KM 、 Q4_K 、 Q5_K 等,可根据延迟和效果需求选择。 3. 启动 SGLang Server 在通常的 SGLang 启动参数基础上,增加如下 KT-Kernel 相关参数,以启用 CPU-GPU 异构推理: 需要增加的 KT-Kernel 参数: --kt-method :后端类型(AMXINT4、AMXINT8、或 LLAMAFILE) --kt-weight-path :转换后的 CPU 权重路径 --kt-cpuinfer :CPU 推理线程数(建议设为物理核数) --kt-threadpool-count :线程池数量(建议设为 NUMA 节点个数) --kt-num-gpu-experts :留在 GPU 上的 experts 数量 --kt-max-deferred-experts-per-token :每个 token 延迟到 CPU 的 experts 数量,用于流水线执行 更多调优建议见 KT-Kernel 参数 一节。 完整示例:Qwen3-30B-A3B 该示例展示从下载权重到启动服务的完整流程,分别演示 AMX 后端 和 LLAMAFILE 后端 两种方案。 GPU :NVIDIA RTX 4090 24GB CPU :2x Intel Xeon Gold 6454S(共 64 个物理核,128 线程,2 个 NUMA 节点) 模型 : Qwen3-30B-A3B --kt-cpuinfer 64 :设为物理核数(64),而不是 128 线程
📥 下载地址(文章中间)
装机神器,可安装一切系统,纯净版,英文版,繁体版 ,精简版,原版等等等
--kt-threadpool-count 2 :检测到 2 个 NUMA 节点(双路系统) --kt-num-gpu-experts 32 :在 24GB 显存下,对该模型可以大约放 32 个 experts 在 GPU 上(具体取决于模型结构和实际内存占用) --kt-max-deferred-experts-per-token 2 :启用流水线执行;允许 CPU 处理下一批 token 的同时,GPU 完成当前批次 方案 A:AMX 后端(AMXINT8) 适用于支持 AMX 指令集的 Intel CPU。 步骤 2:转换为 CPU 权重(AMXINT8) 步骤 3:启动 SGLang 服务 方案 B:LLAMAFILE 后端(GGUF) 适用于通用 CPU(无需 AMX 支持),直接使用预量化的 GGUF 权重。 步骤 1:下载 GPU 权重(原始模型) 步骤 2:下载 CPU 权重(GGUF 格式) 步骤 3:启动 SGLang 服务 kt-method :根据 CPU 能力和权重格式选择: AMXINT4 :在 AMX CPU 上 INT4 量化时具有最佳性能(但可能对某些模型有较大精度影响,例如 Qwen3-30B-A3B) AMXINT8 :在 AMX CPU 上提供更高精度的 INT8 量化方案 RAWINT4 :CPU 和 GPU 共享原生 INT4 权重(仅限 AMX 后端,目前仅支持 Kimi-K2-Thinking 模型)。详见 Kimi-K2-Thinking 原生推理教程 。 LLAMAFILE :基于 AVX2/AVX512 的通用 CPU 后端,性能较 AMX 略低,但适用范围更广 kt-method :根据 CPU 能力和权重格式选择: AMXINT4 :在 AMX CPU 上 INT4 量化时具有最佳性能(但可能对某些模型有较大精度影响,例如 Qwen3-30B-A3B) AMXINT8 :在 AMX CPU 上提供更高精度的 INT8 量化方案 RAWINT4 :CPU 和 GPU 共享原生 INT4 权重(仅限 AMX 后端,目前仅支持 Kimi-K2-Thinking 模型)。详见 Kimi-K2-Thinking 原生推理教程 。 LLAMAFILE :基于 AVX2/AVX512 的通用 CPU 后端,性能较 AMX 略低,但适用范围更广 kt-cpuinfer :设置为 物理核数 (不是线程数)。 查看物理核数: lscpu | grep -E "^CPU\(s\)|Thread\(s\) per core" 计算方式:物理核数 = CPU(s) / Thread(s) per core 例:若 CPU(s)=128 且 Thread(s) per core=2,则物理核数=64 重要 :不要设置为超线程总数,否则会降低性能 kt-cpuinfer :设置为 物理核数 (不是线程数)。 查看物理核数: lscpu | grep -E "^CPU\(s\)|Thread\(s\) per core" 计算方式:物理核数 = CPU(s) / Thread(s) per core 例:若 CPU(s)=128 且 Thread(s) per core=2,则物理核数=64 重要 :不要设置为超线程总数,否则会降低性能 kt-threadpool-count :设置为 NUMA 节点数 。 查看 NUMA 数: lscpu | grep "NUMA node(s)" 或: numactl --hardware | grep "available" 注意 :NUMA 节点数不等同于物理 CPU 数量: 它表示内存域,可能在单颗 CPU 内被拆分,也可能跨多颗 CPU。 请以 lscpu 输出的 NUMA 节点数为准。 常见配置:单路 1–2,双路 2–4 正确设置有助于充分利用跨 NUMA 域的内存带宽。 kt-threadpool-count :设置为 NUMA 节点数 。 查看 NUMA 数: lscpu | grep "NUMA node(s)" 或: numactl --hardware | grep "available" 注意 :NUMA 节点数不等同于物理 CPU 数量: 它表示内存域,可能在单颗 CPU 内被拆分,也可能跨多颗 CPU。 请以 lscpu 输出的 NUMA 节点数为准。 它表示内存域,可能在单颗 CPU 内被拆分,也可能跨多颗 CPU。 请以 lscpu 输出的 NUMA 节点数为准。 常见配置:单路 1–2,双路 2–4 正确设置有助于充分利用跨 NUMA 域的内存带宽。 kt-num-gpu-experts :根据 GPU 显存和实际性能测试决定: GPU 上的 experts 越多 → 延迟越低,但显存占用越高(可能 OOM) kt-num-gpu-experts :根据 GPU 显存和实际性能测试决定: GPU 上的 experts 越多 → 延迟越低,但显存占用越高(可能 OOM) kt-max-deferred-experts-per-token :用于开启 CPU-GPU 流水线: 0 :完全同步执行(简单但延迟较高) 1–4 :推荐范围,一部分 experts 延迟到 CPU,在延迟和质量之间取得较好平衡(需要按模型调参) 5–7 :可以获得更低延迟,但存在明显精度下降风险,请谨慎使用 kt-max-deferred-experts-per-token :用于开启 CPU-GPU 流水线: 0 :完全同步执行(简单但延迟较高) 1–4 :推荐范围,一部分 experts 延迟到 CPU,在延迟和质量之间取得较好平衡(需要按模型调参) 5–7 :可以获得更低延迟,但存在明显精度下降风险,请谨慎使用 kt-gpu-prefill-token-threshold (仅 RAWINT4):控制原生 INT4 推理的 prefill 策略: ≤ 阈值 :使用 CPU+GPU 混合 prefill。无需额外显存,但随着 token 数量增加性能会缓慢下降。 > 阈值 :使用分层 GPU prefill。长序列性能更好,但需要约 9GB+ 额外显存。 仅在使用 --kt-method RAWINT4 时生效。目前仅支持 Kimi-K2-Thinking 模型。 kt-gpu-prefill-token-threshold (仅 RAWINT4):控制原生 INT4 推理的 prefill 策略: ≤ 阈值 :使用 CPU+GPU 混合 prefill。无需额外显存,但随着 token 数量增加性能会缓慢下降。 > 阈值 :使用分层 GPU prefill。长序列性能更好,但需要约 9GB+ 额外显存。 仅在使用 --kt-method RAWINT4 时生效。目前仅支持 Kimi-K2-Thinking 模型。 直接使用 Python API 如果不集成 SGLang,也可以直接通过 Python API 单独使用 KT-Kernel: 如需打包分发、跨机器部署或构建可移植二进制,需要手动指定目标指令集: 可选:覆盖 VNNI/BF16 检测 运行 ./install.sh --help 查看所有可用选项。 手动安装(不使用 install.sh) 如果你不想使用 install.sh 脚本: cmake (推荐: conda install -y cmake ) libhwloc-dev 和 pkg-config 请确认已安装 CUDA Toolkit 且 nvcc 在系统 PATH 中。 在 Debian 系发行版上可以直接: 或从源码构建: https://www.open-mpi.org/projects/hwloc/ 对于 AMX 后端( AMXINT4 / AMXINT8 ),CPU 侧 experts 需要通过提供的脚本转换为适配 AMX 的 INT4/INT8 格式: 支持的格式: FP8、FP16、BF16 → INT4/INT8 对于 LLAMAFILE 后端( LLAMAFILE ),CPU 侧 experts 直接从 GGUF 权重中加载。 你 不需要 运行 AMX 转换脚本;只需从互联网上下载 GGUF 模型(例如 Hugging Face 上的 GGUF 仓库),并在 weight_path 或 SGLang 的 --kt-weight-path / --model 中指向该 GGUF 目录即可。KT-Kernel 支持多种 GGUF 量化格式,如 Q4_KM 、 Q4_K 、 Q5_K 等。 更多详细文档、高级参数和低显存模式,请参见 scripts/README.md 。 提交信息应符合 Conventional Commits 规范: https://www.conventionalcommits.org/ 在提交前请先格式化代码: 你可能需要一个较新的 clang-format(至少 18),在 conda 环境中可以: 并且建议安装 black 用于 Python 代码格式化:
📥 下载地址(文章结尾)
装机神器,可安装一切系统,纯净版,英文版,繁体版 ,精简版,原版等等等