资讯 RISC-V 现在正式被 CPython 支持:Tier 3 平台的里程碑

2026-09-06 04:12:43

RISC-V 现在正式被 CPython 支持:Tier 3 平台的里程碑

Python 团队宣布,RISC-V 架构现在正式被 CPython 支持为 Tier 3 平台。这是 Python 支持新架构的一个重要里程碑,也是 RISC-V 生态系统成熟的体现。本文详细介绍这个消息的背景、技术细节以及对开发者的影响。

背景:什么是 RISC-V

RISC-V 简介

RISC-V 是一个开源的指令集架构(Instruction Set Architecture,ISA),诞生于加州大学伯克利分校。它的特点:

  1. 开源免费:RISC-V 是完全开源的,任何人都可以免费使用,不需要支付授权费
  2. 模块化设计:RISC-V 采用模块化设计,基础指令集很小,可以根据需要扩展
  3. 简洁优雅:RISC-V 的指令集设计简洁,易于学习和实现
  4. 社区驱动:RISC-V 由国际开源社区维护,有大量的公司和组织参与
  5. 无历史包袱:RISC-V 是全新设计的,没有 x86、ARM 等架构的历史包袱

RISC-V 的发展现状

近年来,RISC-V 发展迅速:

  • 硬件:越来越多的公司推出 RISC-V 处理器,包括微控制器、嵌入式处理器、桌面处理器、服务器处理器等
  • 软件:操作系统(Linux、FreeBSD 等)、编译器(GCC、LLVM)、解释器等越来越多地支持 RISC-V
  • 生态:RISC-V 国际基金会成员超过 3000 家,包括 Google、微软、华为、阿里、英伟达等大公司
  • 应用:RISC-V 被用于物联网、嵌入式系统、存储、网络、人工智能、超级计算等领域
  • 中国市场:中国公司在 RISC-V 上投入很大,推出了多款 RISC-V 处理器

为什么 Python 需要支持 RISC-V

Python 作为最流行的编程语言之一,支持 RISC-V 有重要意义:

  1. 生态完整性:Python 支持 RISC-V 是 RISC-V 软件生态完整的重要标志
  2. 开发者需求:越来越多的开发者在 RISC-V 上开发,需要 Python
  3. 嵌入式和物联网:RISC-V 在嵌入式和物联网领域应用广泛,Python 是这些领域的常用语言
  4. AI 和数据科学:RISC-V 在 AI 领域的应用越来越多,Python 是 AI 和数据科学的首选语言
  5. 教育和研究:RISC-V 在教育和研究领域很受欢迎,Python 也是教学常用语言

CPython 的平台支持层级

Tier 系统介绍

CPython 对不同平台的支持分为多个层级(Tier),每个层级有不同的支持程度和要求:

Tier 1(最高支持)

Tier 1 平台是 CPython 核心团队正式支持的平台,有最高的保证:

  • CI 测试:每次提交都在这些平台上运行完整的测试套件
  • 构建保证:保证可以在这些平台上构建
  • Bug 修复:这些平台上的 bug 会被优先修复
  • 发布保证:每个版本都会在这些平台上发布二进制安装包
  • 平台:通常包括 Windows、macOS、Linux(x86_64)等主流平台

Tier 2(良好支持)

Tier 2 平台有较好的支持,但保证程度低于 Tier 1:

  • CI 测试:有 CI 测试,但可能不是每次提交都运行
  • 构建保证:通常可以构建,但偶尔可能有问题
  • Bug 修复:bug 会被修复,但优先级低于 Tier 1
  • 发布:可能发布二进制安装包,也可能只提供源码
  • 平台:包括一些较新的或市场份额较小的平台

Tier 3(最佳努力支持)

Tier 3 平台是"最佳努力"支持的平台:

  • 社区支持:主要由社区贡献者支持,核心团队不保证
  • CI 测试:可能有 CI 测试,也可能没有
  • 构建:可能可以构建,但不保证
  • Bug 修复:bug 修复依赖社区贡献
  • 发布:通常只提供源码,不提供二进制安装包
  • 平台:包括新支持的平台、小众平台、实验性平台

RISC-V 现在被支持为 Tier 3 平台,这是正式支持的第一步。未来如果 RISC-V 的市场份额和社区活跃度增加,可能升级为 Tier 2 甚至 Tier 1。

技术实现细节

支持工作的内容

根据文章,CPython 对 RISC-V 的支持工作包括:

  1. 构建系统适配:修改 configure 脚本和 Makefile,支持 RISC-V 架构的检测和构建
  2. 平台特定代码:添加或修改 RISC-V 特定的代码,如原子操作、内存屏障、线程本地存储等
  3. 汇编代码:如果有手写汇编代码(如某些性能关键路径),需要添加 RISC-V 版本
  4. 测试适配:确保测试套件在 RISC-V 上可以运行,修复平台特定的测试失败
  5. CI 集成:在 CI 系统中添加 RISC-V 的构建和测试(可能使用模拟器或真实硬件)
  6. 文档更新:更新文档,说明 RISC-V 的支持状态和构建方法

挑战和解决方案

在支持 RISC-V 的过程中,可能遇到的挑战和解决方案:

1. 原子操作

不同架构的原子操作指令不同:

  • x86 使用 lock 前缀
  • ARM 使用 ldrex/strexldar/stlr
  • RISC-V 使用 lr/sc(load-reserved/store-conditional)或 amo(atomic memory operation)

CPython 的原子操作抽象层需要支持 RISC-V 的指令。

2. 内存屏障

内存屏障(memory barrier)的语义在不同架构上有差异:

  • RISC-V 有 fence 指令,支持多种内存排序语义
  • 需要确保 CPython 的内存屏障抽象在 RISC-V 上正确实现

3. 线程本地存储(TLS)

线程本地存储的实现方式在不同架构上不同:

  • RISC-V 使用 tp(thread pointer)寄存器指向 TLS 区域
  • 需要确保 CPython 的 TLS 实现在 RISC-V 上正确工作

4. 调用约定

不同架构的函数调用约定不同:

  • 参数传递的寄存器和顺序
  • 返回值的寄存器
  • 栈对齐要求
  • 被调用者保存 vs 调用者保存的寄存器

CPython 的 C 代码和 FFI(如 ctypes、cffi)需要遵循 RISC-V 的调用约定。

5. 字节序和对齐

  • RISC-V 通常是小端序(little-endian),但也支持大端序
  • 数据对齐要求可能与其他架构不同
  • 需要确保 CPython 的序列化/反序列化代码在 RISC-V 上正确

测试和验证

支持 RISC-V 需要充分的测试和验证:

  1. 构建测试:确保 CPython 可以在 RISC-V 上成功构建
  2. 完整测试套件:运行完整的 Python 测试套件(python -m test),确保所有测试通过
  3. 性能测试:运行性能基准测试,确保没有严重的性能回归
  4. 长期运行测试:长时间运行测试,检测内存泄漏和稳定性问题
  5. 真实硬件测试:在真实的 RISC-V 硬件上测试,而不仅仅是模拟器
  6. 社区测试:鼓励社区用户在各种 RISC-V 硬件上测试并报告问题

对开发者的影响

1. 在 RISC-V 上使用 Python

现在,开发者可以在 RISC-V 硬件上使用 Python:

  • 嵌入式开发:在 RISC-V 微控制器上运行 MicroPython 或 CPython
  • 服务器开发:在 RISC-V 服务器上运行 Python Web 应用
  • AI 开发:在 RISC-V AI 加速器上运行 Python AI 框架
  • 桌面开发:在 RISC-V 桌面电脑上运行 Python 桌面应用
  • 教育和研究:在 RISC-V 教学平台上使用 Python

虽然目前是 Tier 3 支持,但基本功能应该可以正常工作。

2. 构建和安装

在 RISC-V 上安装 Python:

从源码构建

# 下载源码
wget https://www.python.org/ftp/python/3.15.0/Python-3.15.0.tgz
tar xzf Python-3.15.0.tgz
cd Python-3.15.0

# 配置
./configure --enable-optimizations

# 构建
make -j$(nproc)

# 安装
sudo make altinstall

使用包管理器

一些 RISC-V Linux 发行版可能已经打包了 Python:

# Debian/Ubuntu
sudo apt install python3

# Fedora
sudo dnf install python3

# Arch Linux
sudo pacman -S python

3. 注意事项

在 RISC-V 上使用 Python 时,需要注意:

  1. C 扩展兼容性:一些包含 C 扩展的 Python 包可能还不支持 RISC-V,需要从源码编译
  2. 性能:RISC-V 处理器的性能可能与 x86/ARM 有差异,某些操作可能更慢或更快
  3. 平台特定 bug:作为 Tier 3 平台,可能存在一些平台特定的 bug
  4. 社区支持:遇到问题时,可能需要自己解决或向社区求助
  5. 二进制包:PyPI 上可能没有 RISC-V 的预编译 wheel 包,需要从源码编译

4. 为 RISC-V 做贡献

如果你在 RISC-V 上使用 Python 时遇到问题,可以为支持工作做贡献:

  1. 报告 bug:在 Python 的 bug 追踪系统(bugs.python.org)上报告 RISC-V 特定的 bug
  2. 提交补丁:修复 bug 并提交补丁
  3. 测试:在不同的 RISC-V 硬件上测试,报告测试结果
  4. 文档:改进 RISC-V 相关的文档
  5. CI:帮助设置和维护 RISC-V 的 CI 系统
  6. 推广:在社区中推广 Python on RISC-V,吸引更多贡献者

RISC-V 与 Python 的未来

短期展望

在短期内(1-2 年),Python on RISC-V 的发展可能包括:

  1. 稳定性提升:随着更多用户测试和反馈,RISC-V 支持的稳定性会不断提升
  2. 更多包支持:越来越多的 Python 包会支持 RISC-V,提供预编译的 wheel
  3. 性能优化:针对 RISC-V 架构的性能优化,如利用 RISC-V 的特定指令
  4. CI 改进:更完善的 RISC-V CI 系统,确保每次提交都在 RISC-V 上测试
  5. 可能升级为 Tier 2:如果 RISC-V 的市场份额和社区活跃度增加,可能升级为 Tier 2

长期展望

在长期(3-5 年),Python on RISC-V 的发展可能包括:

  1. Tier 1 支持:如果 RISC-V 成为主流架构,Python 可能将其升级为 Tier 1
  2. 深度优化:针对 RISC-V 架构的深度优化,包括 JIT 编译器、向量扩展支持等
  3. RISC-V 特定功能:利用 RISC-V 的独特功能,如自定义扩展、向量处理等
  4. 嵌入式 Python:更轻量级的 Python 实现,适合资源受限的 RISC-V 嵌入式设备
  5. AI 加速:与 RISC-V AI 扩展的集成,加速 Python AI 工作负载

对整个生态的影响

Python 支持 RISC-V 对整个生态的影响:

  1. RISC-V 软件生态:Python 的支持是 RISC-V 软件生态成熟的重要标志,会吸引更多开发者和公司
  2. Python 社区:Python 社区会更加关注 RISC-V,吸引更多贡献者
  3. 硬件厂商:RISC-V 硬件厂商会更加重视 Python 支持,优化硬件和驱动
  4. 教育和研究:RISC-V + Python 会成为教育和研究的重要平台
  5. 行业应用:在物联网、嵌入式、AI、服务器等领域,RISC-V + Python 的组合会得到更多应用

总结

RISC-V 正式被 CPython 支持为 Tier 3 平台,是一个重要的里程碑。

核心要点:

  1. 背景:RISC-V 是开源指令集架构,发展迅速,在嵌入式、物联网、AI 等领域应用广泛
  2. 支持层级:CPython 的平台支持分为 Tier 1(最高支持)、Tier 2(良好支持)、Tier 3(最佳努力支持),RISC-V 现在是 Tier 3
  3. 技术实现:包括构建系统适配、平台特定代码、汇编代码、测试适配、CI 集成、文档更新等
  4. 挑战:原子操作、内存屏障、线程本地存储、调用约定、字节序和对齐等架构差异
  5. 对开发者的影响:可以在 RISC-V 上使用 Python,但需要注意 C 扩展兼容性、性能、平台特定 bug 等
  6. 未来展望:短期稳定性提升和更多包支持,长期可能升级为 Tier 1 并进行深度优化
  7. 生态影响:Python 支持 RISC-V 对 RISC-V 软件生态、Python 社区、硬件厂商、教育研究、行业应用都有积极影响

Python 支持 RISC-V 不仅是技术上的成就,更是开源社区协作的典范。Python 社区和 RISC-V 社区的结合,将推动两个生态的共同发展。

对于开发者来说,现在是了解和尝试 Python on RISC-V 的好时机。无论是在嵌入式设备、开发板还是服务器上,Python + RISC-V 的组合都值得探索和期待。

正如文章作者所说,这是一个令人兴奋的里程碑。RISC-V 的未来是光明的,Python 在其中将扮演重要角色。

原文链接:https://blog.python.org/2026/08/riscv-now-officially-supported/

推荐文章

程序员茄子在线接单