← 返回信息流
AI 资讯Hacker News·2 小时前

面向K与Q的新运行时发布

原标题:A new runtime for k and q: l

速览

该运行时专门为K和Q设计,旨在提升相关任务的运行效率。其发布可能对依赖K和Q的应用场景产生积极影响,具体性能改进有待进一步验证。

AI 深度解读

背景

k 和 q 是 kx Systems 公司开发的高性能编程语言及其数据库查询语言,广泛应用于金融、物联网等领域的时序数据处理。k 作为底层向量语言,q 是上层 SQL 风格查询语言,基于 k4 引擎和 qSQL 语法。多年来,这套技术栈以极致的内存效率和列式存储著称,但面对现代硬件(多核、SIMD、GPU、压缩内存)的潜力,原有运行时的向量执行模型尚未完全释放这些能力。日前,一个名为 l 的新运行时项目在 Hacker News 上公布,旨在为 k 家族语言提供一条直接通向现代高性能计算的路径。

核心内容

l 是一个专为 k4、q 和 qSQL 设计的新运行时,它完全兼容现有语法和代码,但底层引擎针对现代内存架构进行了重写:核心思想是压缩向量即执行单元——原始操作直接作用于编码后的字节,不再重建完整的数组。这意味着数据在存储、内存和传输中始终保持压缩状态,运行时自动选择执行路径(标量、SIMD、多线程或硬件卸载),用户无需任何注解。

兼容性

  • 完全运行现有的 k4、q、qSQL 语法、惯用法和代码,无需重写。
  • 表、字典、时间序列等数据结构保持不变。
  • 提供优化的列式表支持。

压缩

  • 数据在驻留(磁盘)、内存和传输全程保持压缩。
  • 原语直接对压缩向量执行,无需解码,因此移动的数据量更少。
  • 每层统一使用压缩字节,优化缓存容量。

透明执行

运行时自动选择执行路径:标量、SIMD、多线程或硬件卸载。例如 sum x 这样的表达式,l 会根据向量大小和硬件自动分解:

  • 小向量:SIMD reduction 直接计算。
  • 大向量:多线程分片求和,再汇总。
  • 支持 NEON(Apple Silicon)、AVX-512(x86)、GPU/NPU 卸载。
  • 所有目标共享同一二进制文件,无需额外标记。

性能基准

公布的三组基准测试结果(均为几何平均,对比参考实现):

| 基准集 | 加速倍数 | |--------|----------| | TSBS(时序基准套件)geomean vs reference | 2.35× | | master-suite overall geomean | 3.57× | | db-benchmark 总查询加速 | 3.16× | | db-benchmark 每查询 geomean | 3.08× |

细分查询中,lastpoint 加速达 49.18×,single-groupby-1-8-1 为 6.40×。

实例

  • qSQL 在压缩列上执行:用一个 8658.5 万行的 AN_pageView 表,单 CPU 执行 select sum isBot, count i, avg isBot by date.month from AN_pageView,无需解码即可直接计算,结果与 q 一致。
  • 同一原语的不同执行路径avg 1 2 3 4 5 6 触发 SIMD reduction;avg 1 2 3 ... 999999 则自动分发给多个 worker 线程求和再平均;远程执行也可通过 hopen 连接实现。

匿名邮件组

项目采用经典技术邮件列表风格,仅凭邮箱加入,无个人资料、无目录,用于发布笔记、基准、设计问题和版本日志。

关键要点

  • 完全兼容:l 运行时直接运行现有的 k4、q、qSQL 代码,无需任何修改,保持列式表、字典、时间序列的工作方式。
  • 压缩贯穿始终:数据在磁盘、内存和传输中保持压缩状态,原语直接在压缩向量上执行,避免解码开销,减少内存带宽消耗。
  • 透明自动并行:运行时根据数据规模和硬件自动选择最佳执行路径(标量/SIMD/多线程/GPU/NPU),用户只需写标准 q/k 代码。
  • 显著性能提升:在 TSBS、master-suite、db-benchmark 三个标准基准套件上,几何平均加速达 2.35× ~ 3.57×,部分查询(如 lastpoint)加速近 50×。
  • 跨平台统一二进制:支持 Apple Silicon 的 NEON、x86 的 AVX-512、GPU 和 NPU 卸载,所有目标使用同一编译产物。
  • 远程执行内置:通过 hopen 支持远程连接,与现有 q 远程调用协议兼容。
  • 社区形式复古:采用匿名邮件列表而非现代论坛,专注技术讨论。

意义与影响

l 运行时标志着 k/q 生态在底层执行层面的一次重要进化。它没有改变语言本身——这正是其价值所在:用户现有的所有代码、惯用法和知识依然有效,但运行速度获得数量级提升。对于金融机构、物联网平台等依赖 kdb+(基于 k4/q)处理万亿条时序数据的场景,l 意味着可以在不重构系统的情况下直接获得数倍性能提升,尤其适合内存带宽受限的现代环境——现代硬件的瓶颈往往不在计算,而在数据搬运,而 l 通过压缩向量直接执行彻底减少了数据移动。

从技术趋势看,l 体现了“语言不变,引擎换新”的思路:保留 k/q 极简、高效的抽象,但在底层利用 SIMD、多线程、GPU 等能力。这与 Snowflake 等云数仓对 SQL 的透明加速理念相似,但 l 更激进地让压缩成为第一等执行单元。若能成功推广,可能吸引更多开发者重新审视 k/q 在超低延迟、高吞吐数据处理中的地位,甚至推动 kx Systems 官方将类似特性纳入下一代 kdb+。

此外,项目未提及公司与组织背景,以匿名邮件列表形式发布,颇有早期 Unix/C 技术社区的风格。这种“小而精”的发布方式本身也呼应了 k 语言“极致简洁”的传统。未来如果 l 开源或提供商业许可,将在高性能计算社区引发更广泛关注。

查看原文 →lv1.sh