每个核心簇一个内核 · 每个核心全力运行
RISC-V 服务器芯片已经在同一颗芯片上集成不同向量宽度的核心簇:256 位通用核心与 1024 位 AI 核心并存。单内核要么拒绝半台机器,要么让整台机器降级。Multikernel 让软件边界与芯片对齐:每个核心簇一个 Linux 内核,各自针对真实硬件编译,各自跑满全部宽度。
分区不是可选项
宽向量单元是现代核心中最昂贵的模块,厂商只会将它部署在真正需要的核心簇上。异构向量宽度是刻意的产品决策,而非缺陷。无论如何这台机器都会被分区,可选的只是:边界由您设计,还是由调度器内部的偶然行为决定。
芯片本身就是分裂的
量产芯片把 256 位与 1024 位向量核心簇放在同一颗芯片上,宽度相差四倍。存量市场更棘手:草案版 RVV 0.7.1 芯片与正式版 RVV 1.0 在指令级互不兼容。
单内核直接拒绝
主线 Linux 在每个核心上线时逐一检查,发现向量宽度与启动核心不符,就永远不再启用它。作为整颗芯片核心卖点的旗舰核心簇,始终无法上线。
打补丁的内核全面降级
按进程记录宽度的补丁只是把分区藏起来,而不是消除它:热插拔受限、SCHED_DEADLINE 被拒、亲和性被悄悄改写、内核二进制仍按最窄核心簇编译。为 AI 核心簇承担代价的,是从不使用它的通用核心。
沿着芯片划下的线,划下软件的边界
Multikernel 为每个核心簇启动一个独立的 Linux 内核。在每个域内部,Linux 的行为与普通机器上别无二致,因为从那个内核的视角看,它就是一台普通机器。
同一颗芯片,两种向量宽度。每个内核记录其核心真实的宽度,每个核心簇从第一天起就全力运行。
每个内核看到的核心都彼此匹配
内核上报的硬件能力(hwcap)描述的是程序真正运行其上的硬件,C 库选中的是硬件真正具备的向量例程。没有最小公分母,因为没有任何东西被共享。
为真实硬件量身编译
每个内核拥有自己的指令集、自己的勘误规避方案、自己以全宽度运行的向量代码。RVV 0.7.1 与 RVV 1.0 软件在同一台机器上并肩运行,各配各的工具链。
无需强制,因为无需共享
没有需要维护或被悄悄改写的亲和性列表。热插拔正常工作,SCHED_DEADLINE 在宽向量核心簇上照常接纳您的推理任务,cpuset 隔离行为与文档描述一致。
部署位置是一个决策
推理与数据并行任务部署到宽向量域,通用服务部署到标量域,设备内核运行在标量核心上,让昂贵的向量单元只为应用服务。
与我们共建
如果您是 RISC-V 芯片厂商,我们希望在您的芯片上完成启动适配;如果您制造板卡或整机,我们希望您的平台从第一天起就进入我们的支持矩阵;如果您运营基础设施并正在评估 RISC-V,我们会在您的真实工作负载上完成概念验证,并给出实测结果。
平台适配
在您的启动流程上实现子内核生成,为您的 I/O 使能设备内核,让每个核心簇的内核跑满自己的向量宽度。
概念验证
在您的真实工作负载上验证性能、隔离与运维收益,每个核心簇全部启用。
上游与生态
共同将全部成果推入上游 Linux。工作端到端开源,您的芯片将成为整个 RISC-V 生态共同构建的参考平台。