Python 数组 API 支持#

注意

CuPy v14 中将移除 cupy.array_api,因为它对应的 NumPy 部分 numpy.array_api 已被移除。根模块 cupy.* 现在与 NumPy v2 API 镜像,因此与数组 API 规范兼容。使用 Array API 兼容性库 来开发与各种数组库(包括 CuPy、NumPy 和 PyTorch)兼容的应用程序。

Python 数组 API 标准 旨在为社区开发的数组和张量库提供一套连贯的 API。通过提供具体的函数签名、语义和覆盖范围,这解决了社区间的 API 碎片化问题,使得可以编写后端无关的代码,从而提高可移植性。

CuPy 基于 NumPy 的 NEP-47 提供实验性支持,而 NEP-47 又基于 v2021 标准。所有功能都可以通过 cupy.array_api 命名空间访问。

NumPy 的 Array API 标准兼容性 是一个极好的起点,可以帮助更好地理解主命名空间和 array_api 命名空间下 API 之间的区别。然而,请记住 NumPy 和 CuPy 之间的关键区别在于我们是一个仅限 GPU 的库,因此 CuPy 用户应注意潜在的设备管理问题。与常规 CuPy 代码一样,要使用的 GPU 可以通过 Device 对象指定,请参见设备管理。GPU 相关的语义(例如流、异步等)也受到遵守。最后,请记住 NumPy 和 CuPy 之间已经存在差异,尽管其中一些在标准中得到了修正。