← 查看全部版本更新版本发布 · v0.15.2

CalcKernel 0.15.2

WebAssembly 性能与正确性更新,保持严格浮点语义和现有公共 ABI。

CalcKernel v0.15.2 是一次 WebAssembly 性能与正确性更新。它改进符合条件的数值内核代码生成,同时保持严格浮点语义和现有公共 WebAssembly ABI。

WebAssembly 性能与正确性#

本次优化面向矩阵乘法、模板处理及其他经过测量的热点数值负载。向量化候选仍须满足编译器能够证明的合法性条件;条件不成立时,编译器保留标量实现。本次更新不会暗中启用 Relaxed SIMD、FMA 收缩、浮点重结合或线程,从而改变严格比较所依据的语义。

WebAssembly 调用方提供内存的 ABI,以及现有 CK 语法和 CLI 契约保持不变。Baseline 与 SIMD128 仍是分开的目标 profile;宿主运行时必须支持所选 profile 声明的特性。

WebAssembly 热调用实测#

当前完整的严格对照属于开发候选证据,不是 v0.15.2 正式发布二进制的基准结果。测试使用固定的十一项负载、六条实现路线和七轮测试(11×6×7),运行于 Node.js/V8;Baseline 与 SIMD128 分别报告。两次测试均使用同一个 ckc 0.15.1 开发候选二进制(二进制 SHA-256:5db7c4db4146dda00020941f1047a1ade794741374e9446af4b2669de8979e3b)。报告声明源码 checkout 干净,提交为 08292f18b6374f9636bae5ab07fbfcb8e9e30091;二进制与源码的对应关系无法独立验证,因此以精确的二进制哈希为准。

这些数值是热态重复调用吞吐率,相对于同一 profile 中较快且兼容的 Clang 或 Rust WASM 路线。两份报告分别保留,没有合并样本。详见第一次原始报告、复测报告及详细方法与源码包。

正式发布产物验证#

公开发布的 v0.15.2 Darwin ARM64 归档(SHA-256:91951b5af7291e4a2112c05264d6a972befccc6f7d62b4ee598044beb448485c)包含完整 Native 功能的 ckc 0.15.2 二进制(SHA-256:f7bc1c70b272678814313c1e55440a9a4f318b6751c45f2bf7f6bb9bddc6b611),对应 tag 提交 8c2596e0403c4b08af8797a8dd2be4f3ac1b2985。它为冻结套件生成的 Baseline 模块 SHA-256 为 7e0baa440af31d251445228c6ae179f7e577bf4d9b2c7769daef839eac8e417b,SIMD128 模块为 e4574b4b532531016c84944f7614053be0f4f673ccc363838ee4022e3e1d5e9e。模块字节和所选特性声明均与两份开发报告一致。重新运行的十一项负载、六条路线烟测通过 66/66 正确性检查和 66/66 精确输出哈希检查。

这确认了正式编译器在冻结套件上的模块生成与正确性关联。上面的热态吞吐率仍是开发候选 ckc 0.15.1 二进制的测量结果,原测试并未计时正式发布二进制。

已知的冷调用和模块体积差距#

热调用成绩不包含模块编译、实例化和各工作负载的首次调用。在同一开发候选报告中,CK Baseline 综合套件模块为 28,325 字节(Clang 4,683;Rust 592,509);CK SIMD128 模块为 34,941 字节(Clang 4,821;Rust 595,342)。这些数值只对应基准产物,不代表一般性的模块体积保证。

矩阵乘法 Baseline 首次调用耗时:CK 43.954 毫秒、Clang 13.376 毫秒、Rust 30.574 毫秒。SIMD128 下分别为 CK 20.578 毫秒、Clang 8.850 毫秒、Rust 9.485 毫秒。冷启动和模块体积仍是后续工作,未计入热调用几何平均。

下载#

请从 v0.15.2 GitHub 发布页下载 CalcKernel 及各归档的 SHA-256 校验文件,或查看公开编译器仓库。六个公开归档的校验值均已独立核验。此前版本仍可查看保留的 v0.15.1 发布介绍。

↵ 打开 · esc 关闭