nvmath-python 发行说明#

nvmath-python v0.2.1#

Beta2 更新 1,改进了诊断、测试增强功能和错误修复。

  • 针对批量后记的新测试以及用于高级矩阵乘法 API 的带后记的自动调优。

  • 为主机 API 添加了更多基于假设的测试。

  • 改进了检测某些切片张量的重叠内存操作数的算法,从而支持 FFT 的此类布局。

  • 为 CTK 版本 12.5 和 12.6 中引入的新 API 添加了绑定。

  • 进一步的代码风格修复,以符合 PEP8 建议。

  • 在文档中澄清了矩阵乘法后记的批量语义。

  • API 文档字符串中的代码片段现在已通过测试。

错误修复#

  • C2R FFT 在切片张量上可能因“非法内存访问”而失败。

  • 改进了诊断,以检测矩阵乘法中缩放和计算类型的不兼容组合,这些组合以前可能导致不正确的结果。

  • 当操作数 A 是向量(维度数=1)时,矩阵乘法提供了不正确的结果。

API 变更#

  • nvmath.fft.FFTOptions 中的 last_axis_size 选项已被弃用,取而代之的是 last_axis_parity,以更好地反映其语义。

注意

弃用的 API 将在下一个版本中删除。

nvmath-python v0.2.0#

Beta2 版本发布。

  • 符合 FFTW3 API 的 FFT 库(例如 MKL、NVPL)的 CPU 执行空间支持。

  • 支持 FFT 的序言和后记回调,用 Python 编写。

  • 用于随机数生成的新设备 API。

  • 用于说明高级矩阵乘法 API 用法的 Notebook。

  • 为主机 API 引入了基于假设的测试。

  • 减少了 execute 方法中的 Python 开销。

错误修复#

  • 对于带有 DRELU 和 DGELU 后记的 K=1,矩阵乘法可能因“非法内存访问”而失败。

打包#

  • 增加了对 NumPy 2 的支持。

  • 移除对 Python 3.9 的支持。

  • 补丁更改和 pynvjitlink 版本。

已知问题#

  • nvmath.linalg.advanced.Matmulcompute_type 参数设置为 COMPUTE_16F 时,会选择与 scale_type 不兼容的默认值,导致 CTK 12.6 之前的版本结果不正确,而 CTK 12.6 及更新版本则会出错。作为一种解决方法,我们建议根据 supported data types table 以兼容的方式设置 compute_typescale_type

nvmath-python v0.1.0#

初始 Beta 版本发布,仅支持单 GPU。

  • 基于 cuFFT 的 FFT API。

  • 基于 cuBLASLt 的专用矩阵乘法 API。

  • 基于 MathDx 库的 FFT 和矩阵乘法的设备 API。

所需和可选的依赖项在 速查表 中进行了总结。

局限性

  • 许多矩阵乘法后记需要 CTK 11.5+,少数需要 CTK 11.8+。有关更多详细信息,请参阅 cuBLAS 发行说明

免责声明#

nvmath-python 处于 Beta 状态。Beta 产品可能尚未完全发挥功能,可能包含错误或设计缺陷,并且可能随时更改,恕不另行通知。我们感谢您的反馈,以改进和迭代我们的 Beta 产品。