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 之间已经存在差异,尽管其中一些在标准中得到了修正。
- 数组 API 函数
abs()acos()acosh()add()all()any()arange()argmax()argmin()argsort()asarray()asin()asinh()atan()atan2()atanh()bitwise_and()bitwise_invert()bitwise_left_shift()bitwise_or()bitwise_right_shift()bitwise_xor()broadcast_arrays()broadcast_to()can_cast()ceil()concat()cos()cosh()divide()empty()empty_like()equal()exp()expand_dims()expm1()eye()finfo()flip()floor()floor_divide()from_dlpack()full()full_like()greater()greater_equal()iinfo()isfinite()isinf()isnan()less()less_equal()linspace()log()log10()log1p()log2()logaddexp()logical_and()logical_not()logical_or()logical_xor()matmul()meshgrid()multiply()negative()nonzero()not_equal()ones()ones_like()permute_dims()positive()pow()remainder()reshape()result_type()roll()round()sign()sin()sinh()sort()sqrt()square()squeeze()stack()subtract()take()tan()tanh()tril()triu()trunc()unique_all()unique_inverse()unique_values()where()zeros()zeros_like()
- 符合数组 API 的对象