BLIS 2.0-rc1发布:高性能计算库的重大升级
BLIS(BLAS-like Library Instantiation Software)是一个开源的高性能计算库,专门为线性代数运算提供优化实现。作为BLAS(Basic Linear Algebra Subprograms)的替代品,BLIS通过模块化设计和高度优化的内核,在各种硬件平台上实现了卓越的性能。最新发布的BLIS 2.0-rc1版本带来了多项重大改进和新功能,标志着该项目的一个重要里程碑。
核心框架的重大革新
BLIS 2.0-rc1引入了"插件"系统,这是本次更新的最显著特性之一。这个创新设计允许用户在BLIS源代码树之外创建插件,即使使用的是二进制分发的BLIS版本。通过插件机制,用户可以注册自定义的内核函数,这些内核将由BLIS构建系统为所有配置的架构进行编译。更令人兴奋的是,用户提供的内核可以参与基于实际硬件的运行时内核选择过程。
另一个重要改进是新增的API,它允许用户修改默认的"控制树"数据结构。控制树定义了实现BLAS level-3操作(如gemm或syrk)的具体算法步骤。用户可以从预定义的控制树开始,修改它以创建自定义操作,包括更改打包和计算的内核、关联的块大小,以及提供额外的参数或数据。
混合精度计算的全面支持
BLIS 2.0-rc1在所有level-3 BLAS操作(除trsm外)中实现了全面的混合精度和混合域计算支持。A、B和C矩阵,以及alpha和beta标量,可以以任何支持的数据类型(当前为单/双精度和实数/复数域)提供。此外,通过C矩阵的obj_t结构可以设置计算精度,控制内部计算的实际执行方式。
底层架构的优化与改进
新版本引入了"level-0"宏后端,为实现参考内核和正确的混合类型计算提供了基础语言支持。这个后端特别支持全数据类型灵活性,包括"计算"数据类型(例如输入/输出使用双精度,计算使用单精度),以及完全正确的混合域计算和操作(如scal2v)的安全就地使用。
在兼容性方面,BLIS 2.0-rc1增加了ScaLAPACK兼容模式,解决了某些冲突的BLAS定义问题。同时修复了Python脚本中的字符串转义问题,提高了与Python 3.12+的兼容性。还新增了用户定义宏BLIS_ENABLE_STD_COMPLEX,在C++代码中使用std::complex类型定义。
内核层面的重要修复与增强
本次更新修复了haswell架构gemmsup内核中的越界读取错误,以及piledriver架构复数域gemm内核的问题。内核、块大小和偏好查找函数现在使用siz_t而非特定枚举类型。打包微内核和计算微内核(gemm和gemmtrsm)现在接收全局矩阵的偏移量,后者通过auxinfo_t结构传递。
特别值得注意的是,单独的"MRxk"和"NRxk"打包内核已合并为一个通用打包内核。新的打包内核可以打包任何大小的微面板,但可以针对特定形状进行优化。还增加了针对矩阵对角线部分的显式打包内核,以及某些混合域/1m情况的处理。
构建与测试系统的改进
构建系统方面,cblas.h文件现在在blis.h之后立即"扁平化"(如果启用),而不是在构建过程的后期。配置脚本经过全面改进,现在支持在CC/CXX中使用空格。同时增强了对BLIS或插件中C++源文件的支持。
测试系统现在允许使用"默认"诱导方法,而不是强制使用原生或1m操作。测试套件在请求时会测试所有可能的类型组合。改进了make check-blis及相关目标中问题的检测能力。CI测试基础设施已迁移至CircleCI。
文档完善与知识传递
新版本增加了关于插件系统和通过修改BLIS控制树创建自定义操作的文档。更新了README.md中的BLIS下载说明和RELEASING中的维护者指南。加宽了代码示例中的打印格式,以避免结果误解。
BLIS 2.0-rc1的这些改进不仅提升了库的功能性和灵活性,也为高性能计算社区提供了更强大的工具。通过插件系统和控制树API,研究人员和开发者可以更轻松地实现和测试新的算法优化,而全面的混合精度支持则为各种数值计算场景提供了更大的灵活性。这些进步共同推动BLIS向着成为更通用、更高效的高性能计算库迈进。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0153- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0112