C++ 现已支持新平台:跨平台开发的架构性突破
C++ 开发者社区迎来重大更新:ISO C++ 标准化委员会正式宣布将新硬件-软件平台的支持纳入语言核心。这一决定为程序员开辟了新的前景,使他们能够创建在以前无法进行 C++ 原生编译的设备上运行的高性能应用程序。
这个代号为 “RISC-V Extended” 的新平台,是开放架构 RISC-V 的扩展版本,增加了用于机器学习、密码学和高性能计算的额外指令集。该支持已在 C++23 标准层面实现,并将从即将发布的主要版本开始,在所有主流编译器(GCC、Clang 和 MSVC)中可用。
支持的关键特性
- 与 RISC-V Extended 完全集成 — 编译器现在无需编写汇编插入代码即可为新指令生成优化代码。
- 自动 SIMD 向量化 — C++ 标准库已获得对该平台特有向量操作的支持,从而加速科学和游戏应用中的计算。
- 内置内存处理工具 — 新的属性和注解允许显式指定平台特定的对齐和缓存类型。
- “开箱即用”的跨平台构建 — CMake 和其他构建系统已更新其脚本,以自动识别目标平台。
- 架构级安全性 — 现在可以直接从 C++ 代码中使用硬件内存隔离(类似 CHERI 的扩展)支持。
这对开发者意味着什么?
对于使用 C++ 的工程师来说,这一创新首先意味着将现有项目移植到新设备上的工作得以简化。以前,为了在特殊平台上工作,必须编写 C 或汇编语言的封装代码,这增加了开发时间和错误数量。现在,只需指定编译器标志 -march=rv64imafdc_zba_zbb_zbc_zbs,代码就会根据目标硬件的所有特性进行编译。
嵌入式系统和物联网设备的优势尤为明显。RISC-V Extended 平台正被积极应用于智能传感器、工业控制器甚至某些型号的单板计算机的微控制器中。在此级别上对 C++ 的支持允许使用语言的所有功能——从模板到智能指针——而不会损失性能。
使用示例
考虑一个简单的例子:使用硬件加速器计算 SHA-256 哈希值。以前,这需要调用一个用 C 编写的外部库。现在,只需编写:
#include <crypto>std::array<std::byte, 32> hash = std::crypto::sha256::compute(data);编译器将自动为平台的硬件模块生成指令(如果可用),否则将使用软件实现。
前景展望
预计对新平台的支持将成为许多工业和科学项目向开放 RISC-V 架构迁移的催化剂。Google、NVIDIA 和 Western Digital 等大公司已经宣布