NVIDIA CUDA工具包发行说明

CUDA工具包的发行说明。

1CUDA 12.6 Update 1发行说明

NVIDIA®CUDA®工具包的发行说明可以在以下网站上找到:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html.

注释

发行说明已重新组织为两个主要部分:通用CUDA发行说明和CUDA库发行说明,包括12.x版本的历史信息。

1.1.CUDA工具包主要组件版本

CUDA组件

从CUDA 11开始,工具包中的各个组件都是独立版本的。

对于CUDA 12.6更新1,下表显示了版本:

表1CUDA 12.6更新1组件版本

组件名称

版本信息

支持的体系结构

支持的平台

CUDA C++核心计算库

推力

2.5.0

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows

幼兽

2.5.0

利比亚银行++

2.5.0

合作团体

12.6.68

CUDA兼容性

12.6.36890662

aarch64-jetson公司

Linux操作系统

CUDA运行时(cudart)

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

cuobjdump公司

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows

CUPTI公司

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

CUDA cuxxfilt(需求者)

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows

CUDA演示套件

12.6.68

x86_64码

Linux、Windows

CUDA GDB公司

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、WSL

CUDA Nsight Eclipse插件

12.6.68

x86_64码

Linux操作系统

库达NVCC

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

CUDA无意识

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows

CUDA NVML标头

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

CUDA nvprof公司

12.6.68

x86_64码

Linux、Windows

CUDA nvprune公司

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

CUDA NVRTC公司

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

NVTX公司

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

CUDA NVVP公司

12.6.68

x86_64码

Linux、Windows

CUDA OpenCL公司

12.6.68

x86_64码

Linux、Windows

CUDA探查器API

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

CUDA电脑消毒剂API

12.6.68

x86_64、arm64 sbsa、aarch64 jetson

Linux、Windows、WSL

CUDA cuBLAS公司

12.6.1.4

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

古巴

12.6.68

aarch64-jetson公司

Linux操作系统

CUDA袖口

11.2.6.59

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

CUDA cuFile(CUDA cu文件)

1.11.1.6

x86_64、arm64-sbsa、aarch64-jetson

Linux操作系统

CUDA cuRAND公司

10.3.7.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

CUDA cuSOLVER公司

11.6.4.69

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

CUDA cuSPARSE公司

12.5.3.3

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

CUDA核电站

12.3.1.54

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

CUDA nvFatbin公司

12.6.68

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

CUDA nvJitLink公司

12.6.68

x86_64、arm64 sbsa、aarch64 jetson

Linux、Windows、WSL

CUDA nvJPEG

12.3.3.54

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL

Nsight计算

2024.3.1.2

x86_64、arm64-sbsa、aarch64-jetson

Linux、Windows、WSL(Windows 11)

Nsight系统

2024.4.2.133

x86_64,arm64-sbsa

Linux、Windows、WSL

Nsight Visual Studio Edition(VSE)

2024.3.0.24164

x86_64(Windows)

窗户

nvidia_fs公司1

2.22.3

x86_64、arm64-sbsa、aarch64-jetson

Linux操作系统

Visual Studio集成

12.6.68

x86_64(Windows)

窗户

NVIDIA Linux驱动程序

560.35.03

x86_64,arm64-sbsa

Linux操作系统

NVIDIA Windows驱动程序

560.94

x86_64(Windows)

Windows、WSL

CUDA驱动程序

运行CUDA应用程序需要系统至少具有一个支持CUDA的GPU和与CUDA Toolkit兼容的驱动程序。请参见表3。有关支持CUDA的各种GPU产品的更多信息,请访问https://developer.nvidia.com/cuda-gpus网站.

CUDA Toolkit的每个版本都需要CUDA驱动程序的最低版本。CUDA驱动程序是向后兼容的,这意味着根据CUDA的特定版本编译的应用程序将继续在后续(更高)的驱动程序版本上运行。

有关兼容性的更多信息,请访问https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html#cuda-兼容性和升级.

注释:从CUDA 11.0开始,对工具包组件进行单独的版本控制,并对工具包本身进行版本控制,如下表所示。

CUDA次要版本兼容性所需的最低驱动程序版本如下所示。CUDA次要版本兼容性在中详细描述https://docs.nvidia.com/deploy/cuda-compatibility/index.html

表2CUDA工具包和CUDA次要版本兼容性所需的最低驱动程序版本

CUDA工具包

CUDA次要版本兼容性所需的最低驱动程序版本*

Linux x86_64驱动程序版本

Windows x86_64驱动程序版本

CUDA 12.x公司

>=525.60.13

>=528.33

CUDA 11.8.x公司CUDA 11.7.x公司CUDA 11.6.x公司CUDA 11.5.x公司CUDA 11.4.x公司CUDA 11.3.x版CUDA 11.2.x公司CUDA 11.1.x公司

>=450.80.02

>=452.39

CUDA 11.0(11.0.3)

>=450.36.06**

>=451.22**

*使用最低要求版本不同的在兼容模式下可以使用Toolkit驱动程序版本中的-有关详细信息,请阅读CUDA兼容性指南。

**CUDA 11.0发布时带有早期的驱动程序版本,但通过升级到Tesla推荐的驱动程序450.80.02(Linux)/452.39(Windows),可以在CUDA 11.x系列工具包中兼容次要版本。

每个CUDA工具包版本中打包的NVIDIA GPU驱动程序开发版本如下所示。

表3CUDA工具包和相应的驱动程序版本

CUDA工具包

Toolkit驱动程序版本

Linux x86_64驱动程序版本

Windows x86_64驱动程序版本

CUDA 12.6更新1

>=560.35.03

>=560.94

库达12.6加仑

>=560.28.03

>=560.76

CUDA 12.5更新1

>=555.42.06

>=555.85

CUDA 12.5线规

>=555.42.02

>=555.85

CUDA 12.4更新1

>=550.54.15

>=551.78

加利福尼亚大学12.4 GA

>=550.54.14

>=551.61

CUDA 12.3更新1

>=545.23.08

>=546.12

加利福尼亚大学12.3 GA

>=545.23.06

>=545.84

CUDA 12.2更新2

>=535.104.05

>=537.13

CUDA 12.2更新1

>=535.86.09

>=536.67

加利福尼亚大学12.2 GA

>=535.54.03

>=536.25

CUDA 12.1更新1

>=530.30.02

>=531.14

美国加利福尼亚大学12.1

>=530.30.02

>=531.14

CUDA 12.0更新1

>=525.85.12

>=528.33

库达12.0加仑

>=525.60.13

>=527.41

加利福尼亚大学11.8 GA

>=520.61.05

>=520.06

CUDA 11.7更新1

>=515.48.07

>=516.31

加利福尼亚大学11.7 GA

>=515.43.04

>=516.01

CUDA 11.6更新2

>=510.47.03

>=511.65

CUDA 11.6更新1

>=510.47.03

>=511.65

CUDA 11.6佐治亚州

>=510.39.01

>=511.23

CUDA 11.5更新2

>=495.29.05

>=496.13

CUDA 11.5更新1

>=495.29.05

>=496.13

古巴11.5 GA

>=495.29.05

>=496.04

CUDA 11.4更新4

>=470.82.01

>=472.50

CUDA 11.4更新3

>=470.82.01

>=472.50

CUDA 11.4更新2

>=470.57.02

>=471.41

CUDA 11.4更新1

>=470.57.02

>=471.41

加利福尼亚大学11.4.0 GA

>=470.42.01

>=471.11

CUDA 11.3.1更新1

>=465.19.01

>=465.89

加利福尼亚大学11.3.0 GA

>=465.19.01

>=465.89

CUDA 11.2.2更新2

>=460.32.03

>=461.33

CUDA 11.2.1更新1

>=460.32.03

>=461.09

加利福尼亚大学11.2.0 GA

>=460.27.03

>=460.82

CUDA 11.1.1更新1

>=455.32

>=456.81

佐治亚大学11.1

>=455.23

>=456.38

CUDA 11.0.3更新1

>= 450.51.06

>= 451.82

CUDA 11.0.2线规

>= 450.51.05

>= 451.48

CUDA 11.0.1钢筋混凝土

>= 450.36.06

>= 451.22

库达10.2.89

>= 440.33

>= 441.22

CUDA 10.1(10.1.105通用版本和更新)

>= 418.39

>= 418.96

CUDA 10.0.130号

>= 410.48

>= 411.31

CUDA 9.2(9.2.148更新1)

>= 396.37

>= 398.26

CUDA 9.2(9.2.88)

>= 396.26

>= 397.44

CUDA 9.1(9.1.85)

>= 390.46

>= 391.29

CUDA 9.0(9.0.76)

>= 384.81

>= 385.54

CUDA 8.0(8.0.61 GA2)

>= 375.26

>= 376.51

CUDA 8.0(8.0.44)

>= 367.48

>= 369.30

CUDA 7.5(7.5.16)

>= 352.31

>= 353.66

CUDA 7.0(7.0.28)

>= 346.46

>= 347.62

为了方便起见,NVIDIA驱动程序是作为CUDA Toolkit安装的一部分安装的。请注意,此驱动程序用于开发目的,不建议与特斯拉GPU一起用于生产。

对于使用特斯拉GPU在生产中运行CUDA应用程序,建议从NVIDIA驱动程序下载站点下载特斯拉GPUs的最新驱动程序,网址为https://www.nvidia.com/drivers网址.

在CUDA Toolkit的安装过程中,可以在Windows(使用交互式或静默安装时)或Linux(使用元包)上跳过NVIDIA驱动程序的安装。

有关在Windows上自定义安装过程的详细信息,请参阅https://docs.nvidia.com/cuda/cuda安装指南microsoftwindows/index.html#install-cuda-软件.

有关Linux上的元包,请参阅https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#包-管理器-元.

1.2.新功能

本节列出了新的通用CUDA和CUDA编译器功能。

1.2.1.通用CUDA

1.2.2.CUDA编译器

  • 有关PTX的更改,请参阅https://docs.nvidia.com/cuda/parallel-thread-execution/#ptx-isa-版本-8-5.

  • 最新的主机编译器Clang-18支持。

  • 支持设备代码中的Stack Canaries。CUDA编译器现在可以在设备代码中插入堆栈金丝雀。NVCC标志--device-stack-protector=真启用此功能。堆栈金丝雀使得利用涉及堆栈局部变量的某些类型的内存安全漏洞变得更加困难。编译器使用启发式方法评估每个函数中此类错误的风险。只有那些被视为高风险的功能才使用堆栈金丝雀。

  • 添加了一个新的编译器选项-正向闪烁-前缀-opts(仅限Windows)。

    如果指定了此标志,则将未知选项转发到宿主工具链已启用(-前向未知选择-将未知转发到主机链接器-转发未知主机编译器),然后从命令行参数开始带有“/”的被转发到宿主工具链。例如:

    无船承运人 -正向闪烁-前缀-opts -转发未知opts /T型 食品.cu

    将转发旗帜/T型到主机编译器和链接器。如果未指定此标志,则以开头的命令行参数/被视为输入文件。例如,无船承运人 /T型 食品.cu将治疗/T型作为输入文件,以及Windows API函数获取完整路径名()用于确定完整路径名。

    注意:此标志仅在Windows上受支持。

    有关更多详细信息,请参阅nvcc帮助.

  • 环境变量NVCC_CBIN公司为NVCC引入:用户可以设置NVCC_CBIN公司指定主机编译器,但其优先级低于命令行选项-中央控制室.如果NVCC_CBIN公司-中央控制室都已设置,NVCC使用指定的主机编译器-中央控制室.

1.2.3.CUDA开发人员工具

  • 有关对nvprof和Visual Profiler的更改,请参阅变更日志.

  • 有关Nsight Systems中的新功能、改进和错误修复,请参阅变更日志.

  • 有关Nsight Visual Studio Edition中的新功能、改进和错误修复,请参阅变更日志.

  • 有关CUPTI中的新功能、改进和错误修复,请参阅变更日志.

  • 有关Nsight Compute中的新功能、改进和错误修复,请参阅变更日志.

  • 有关Compute Sanitizer中的新功能、改进和错误修复,请参阅变更日志.

  • 有关CUDA-GDB中的新功能、改进和错误修复,请参阅变更日志.

1.3.已解决的问题

1.3.1.CUDA编译器

  • 补充NVCC_CBIN公司允许系统管理员全局指定主机编译器的环境变量。

    如果NVCC_CBIN公司由系统管理员设置,并且-中央控制室由用户设置,无船承运人将选择由指定的主机编译器-中央控制室.如果NVCC_CBIN公司已设置并且-中央控制室未设置,无船承运人将选择由指定的主机编译器NVCC_CBIN公司。如果两者都未设置,无船承运人将使用默认编译器。

    有关更多详细信息,请参阅nvcc帮助.

1.4.已知问题和限制

  • 从图形启动中调用CUDA动态并行(CDP)尾部启动时,可能会发生挂起。[4718251]

  • 要使用升级库达元包:[4752050]

    • 在Ubuntu 20.04上,首先切换到打开内核模块:

      $ 苏多 恰当的-得到 安装 -V(V) 英维迪亚-内核-来源-打开
      $ 苏多 恰当的-得到 安装 英维迪亚-打开
      

      在基于dnf的发行版上,必须禁用模块流:

      $ 回声 “module_hotfixes=1” | 球座 - //百胜.回购.d日/库达*.回购
      $ 苏多 dnf公司 安装 --允许 英维迪亚-打开
      $ 苏多 dnf公司 模块 重置 英维迪亚-司机
      
  • 在Azure Linux上,要加载NVIDIA内核模块内核_锁定必须通过删除来禁用引导参数锁定=完整性来自GRUB引导加载程序条目。[4721469]

  • 在SLES 15.6上安装Arm SBSA驱动程序时,为了正确完成安装,必须立即重新启动系统。这将允许modprobe为设置权限/开发/nvidia*设备节点正确。[4775942]

    • 如果不这样做,并且nvidia-smi以root身份运行,则可能会使用不正确的权限创建设备节点。如果发生这种情况,可以使用以下方法进行修复:

      $sudo chown-R:视频/dev/nvidia*
  • 用户可能会遇到生成失败并出现错误LNK2001: 未解决 外部的 符号 警卫检查呼叫$fo$使用最新发布的Windows SDK 10.0.26100(2024年5月)时。此问题影响使用Visual Studio 2019和工具集v142构建的项目(包括CUDA示例)。在Microsoft提供正式解决方案之前,用户可以通过以下解决方案解决此问题。

    解决方法:

    • 使用Visual Studio 2022和工具集v143;

    • 使用Visual Studio 2019和工具集v142构建时,请选择以前的Windows SDK版本。

1.5.弃用或删除的功能

CUDA软件当前版本中弃用的功能在当前版本中仍然有效,但其文档可能已被删除,并且在未来版本中将正式不受支持。我们建议开发人员在其软件中使用这些功能的替代解决方案。

1.5.1.弃用或丢弃的操作系统

  • 对Microsoft Windows 10 21H2的支持在12.6中取消。

  • 不支持Microsoft Windows 10 21H2(SV1)。

  • 不支持Debian 11.9。

1.5.2.弃用的工具链

CUDA Toolkit 12.6已弃用对以下主机编译器的支持:

  • Microsoft Visual C/C++(MSVC)2017

  • GCC 7.3之前的所有GCC版本

1.5.3.CUDA工具

  • 不支持CUDA-GDB的macOS主机客户端。它将在即将发布的版本中删除。

2CUDA图书馆

本节介绍了12.x版本的CUDA Libraries发行说明。

  • CUDA数学库工具链使用C++11功能,主机上需要一个与C++11兼容的标准库(libstdc++>=20150422)。

2.1.cuBLAS库

2.1.1.cuBLAS:12.6版更新1

  • 已知问题

    • 立方体LtMatmul可以忽略用户指定的偏差或辅助数据类型(CUBLASLT_MATMUL_DESC_BIAS_DATA_类型立方体体积_体积_体积_体积_体积_数据类型)对于FP8 matmul操作,如果这些数据类型与记录的不匹配中的限制立方体LtMatmulDescAttributes_t. [4750343]

    • 设置CUDA_模块_加载爱格由于以下原因,可能导致料斗GPU上的库加载时间更长PTX内核的JIT编译。可以通过将此环境变量设置为LAZY公司. [4720601]

    • 立方体LtMatmul对于INT8输入,INT32累加、INT8输出和FP32比例因数可能会产生分裂使用缩减。要解决此问题,可以使用cublasLtMatmulAlgoConfigSet属性将缩减方案设置为无,并将分裂值设置为1。[4751576]

2.1.2.cuBLAS:12.6版

  • 已知问题

    • 使用INT8输入、INT8输出和FP32计算矩阵乘法和尾声当使用第二个内核进行计算时,比例因子可能会有数值错误结语。这是因为第一个GEMM内核转换中间结果从FP32到INT8,并将其存储以供后续尾声内核使用。如果值为在结束语和结束语将其带入INT8范围内,将出现数值错误。该问题在CUDA 12之前就已经存在而且没有已知的解决方法。[古巴比索-6831]

    • 立方体LtMatmul可以忽略用户指定的偏差或辅助数据类型(CUBLASLT_MATMUL_DESC_BIAS_DATA_类型立方体体积_体积_体积_体积_体积_数据类型)对于FP8 matmul操作,如果这些数据类型与记录的限制不匹配在里面立方体LtMatmulDescAttributes_t. [4750343]

  • 已解决的问题

    • 立方体LtMatmul当矩阵的数据类型为A类B类是不同的FP8(例如,A类古巴_R_8F_E4M3B类古巴_R_8F_E5M2)和矩阵布局是CUBLASLT_ORDER_ROW按钮. [4640468]

    • 立方体Lt在某些情况下,当A类,B类、和C类属于类型古巴_R_8I计算类型为CUBLAS_COMPUTE_32I计算机. [4381102]

    • cuBLAS在使用K(K)等于0。[4614629]

2.1.3.cuBLAS:12.5版更新1

  • 新功能

    • 针对大型语言模型的矩阵乘法性能改进,特别是针对Hopper GPU上的小批量大小。

  • 已知问题

    • 对于跨越批次的情况,料斗GPU可能不支持偏差尾声(没有ReLU或GeLU)。解决方法是手动执行批处理。这将在未来的版本中修复。

    • cublasGemm成批分组Ex立方<t>gemmGroupedBatchedCPU开销大。这将在即将发布的版本中解决。

  • 已解决的问题

    • 在极少数情况下,在Hopper GPU上与GEMM同时执行SYMM/HEMM可能会导致主机代码中出现争用情况,从而导致非法内存访问CUDA错误。[4403010]

    • 立方体LtMatmul在以下条件下,可能会在Pascal GPU上产生非法指令CUDA错误:批处理大于1,beta不等于0,并且计算不正确(C!=D)。[4566993]

2.1.4.cuBLAS:12.5版

  • 新功能

    • cuBLAS添加了一个实验API,以支持混合精度分组批处理GEMM。这样可以使用FP16或BF16输入/输出和FP32计算类型的成组批处理GEMM。请参阅立方体宝石分组批量Ex了解更多详细信息。

  • 已知问题

    • 立方体LtMatmul忽略的输入CUBLASLT_MATMUL_DESC_D_SCALE_POINTER按钮CUBLASLT_MATMUL_DESC_EPILOGUE_AUX_刻度指针如果相应矩阵的元素不是FP8类型。

  • 已解决的问题

    • 立方体LtMatmul忽略了所提供的比例类型和文档隐含的比例类型之间的不匹配,假设是后者。例如,不支持的配置立方体LtMatmul如果缩放类型为FP32,所有其他类型为FP16,则运行时会隐式假设缩放类型是FP16,并产生错误的结果。

    • cuBLAS SYMV因大n维失败:ssymv为131072及以上,csymv和dsymv为92673及以上,zsymv为65536及以上。

2.1.5.cuBLAS:12.4版更新1

  • 已知问题

    • 将cuBLAS句柄流设置为cudaStreamPerThread每线程并通过设置工作区cubrasSet工作区将导致任何后续cubrasSet工作区呼叫失败。这将在即将发布的版本中修复。

    • 立方体LtMatmul忽略所提供的缩放类型和文档中隐含的缩放类型之间的不匹配,并假定是后者。例如,不支持的配置立方体LtMatmul如果缩放类型为FP32,所有其他类型为FP16,则运行时会隐式假设缩放类型是FP16,这可能会产生错误的结果。这将在即将发布的版本中修复。

  • 已解决的问题

    • 立方体LtMatmul忽略了CUBLASLT_MATMUL_DESC_AMAX_D_POINTER(CUBLASLT _ MATMUL _ DESC_AMAX_D_指针)而不是返回错误。特别是,当输出数据类型也是FP8时,当前仅支持FP8 Matmul计算D的绝对最大值(古巴_R_8F_E4M3古巴_R_8F_E5M2).

    • 减少了一些cuBLASLt API的主机端开销:立方体LtMatmul(),cublasLtMatmulAlgoCheck()、和cublasLtMatmulAlgoGetHeuristic()该问题在CUDA工具包12.4中介绍。

    • cublasLtMatmul()cublasLtMatmulAlgoGetHeuristic()可能导致一些基于Hopper的GPU(包括多实例GPU(MIG))出现浮点异常(FPE)。该问题在cuBLAS 11.8中介绍。

2.1.6.cuBLAS:12.4版

  • 新功能

    • cuBLAS添加了实验性API,以支持分组批处理GEMM的单精度和双精度。单精度也支持数学模式,CUBLAS_TF32_传感器_ OP_MATH分组批处理模式允许您同时求解不同维度(m、n、k)、领先维度(lda、ldb、ldc)、换位(transa、transb)和缩放因子(alpha、beta)的GEMM。请参阅成批的gemmGrouped了解更多详细信息。

  • 已知问题

    • 使用创建当前上下文时cuGreenCtx创建(),cuBLAS无法正确检测可用SMs的数量。用户可以使用API(例如cublasSetSmCountTarget().

    • 当alpha为零且指针模式设置为CUBLAS_POINTER_MODE_DEVICE(CUBLAS_指针_模式_偏差)这与cuBLAS 12.3更新1中记录的已知问题相同。

    • 立方体LtMatmulK等于1,结束语CUBLASLT_EPILOGUE_D{释放,GELU}_BGRAD可以在外访问工作区。自cuBLAS 11.3更新1以来,该问题一直存在。

    • 立方体LtMatmul其中K等于1并且结束语CUBLASLT_EPILOGUE_D(RELU,GELU)如果没有提供工作区,可能会产生非法内存访问。该问题自cuBLAS 11.6以来一直存在。

    • 当在CUDA图形流捕获中捕获时,cuBLAS例程可以创建内存节点通过使用流顺序分配API,cudaMalloc异步cudaFreeAsync(库达自由异步)。但是,由于中当前不支持内存节点子图或启动的图形从设备,在这种情况下,尝试捕获cuBLAS例程可能会失败。要避免此问题,请使用cublasSetWorkspace()函数提供用户拥有的工作区内存。

2.1.7.cuBLAS:12.3版更新1

  • 新功能

    • 改进了具有高逐出率的工作负载的启发式缓存的性能。

  • 已知问题

    • 当alpha为零且指针模式设置为CUBLAS_POINTER_MODE_DEVICE(CUBLAS_指针_模式_偏差)。预期的行为是跳过相应的计算。您可能会遇到以下问题:(1)HER{,2,X,K,2K}可能会将输出矩阵对角元素上的虚部归零;和(2)HER{,2,X,K,2K},SYR{、2,X、K,2K}和其他人可能会因对矩阵A和B进行计算而产生NaN,否则会跳过。如果需要严格遵守BLAS,用户可以在调用函数或切换到之前手动检查alpha值CUBLAS_POINTER_MODE_HOST(CUBLAS_指针_模式_主机).

  • 已解决的问题

    • 在以下条件下,cuBLASLt matmul运算可能会错误计算输出:矩阵A和B的数据类型为FP8,矩阵C和D的数据类型是FP32、FP16或BF16,β值为1.0,C和D矩阵相同,尾声包含GELU激活函数。

    • 当使用CUDA Toolkit 12.2 update 1或更早版本中的cuBLASLt编译的应用程序使用CUDA工具箱12.2 uplate 2或CUDA Toolkit 12.3中的cuPLASlt运行时,矩阵乘法描述符使用cublasLtMatmulDescInit()有时不尊重使用cublasLtMatmulDescSetAttribute().

    • 修复了在多进程服务(MPS)下料斗GPU上创建cuBLAS或cuBLASLt句柄的问题。

    • 立方体LtMatmulK等于1,结束语CUBLASLT_EPILOGUE_BGRAD{A、B}可能返回了错误的偏差梯度结果。

2.1.8.cuBLAS:版本12.3

  • 新功能

    • 改进了NVIDIA L40S Ada GPU的性能。

  • 已知问题

    • cuBLASLt matmul运算在以下情况下可能会计算错误输出:矩阵A和B的数据类型为FP8,矩阵C和D的数据类型是FP32、FP16或BF16,β值为1.0,C和D矩阵相同,尾声包含GELU激活函数。

    • 当使用CUDA Toolkit 12.2 update 1或更早版本中的cuBLASLt编译的应用程序使用CUDA工具箱12.2 upport 2或更高版本中的cuBLASLt运行时,使用cublasLtMatmulDescInit()可能不考虑使用的属性更改cublasLtMatmulDescSetAttribute()。要解决此问题,请使用创建矩阵乘法描述符立方体LtMatmulDescCreate()而不是cublasLtMatmulDescInit()。这将在即将发布的版本中修复。

2.1.9.cuBLAS:12.2版更新2

  • 新功能

    • cuBLASLt现在将尝试分解单个gemm内核无法运行的问题。它通过将问题划分为较小的块并多次执行gemm内核来实现这一点。这提高了非常大的m、n或批次大小案例的功能覆盖率,并使从cuBLAS API到cuBLASLt API的转换更加可靠。

  • 已知问题

    • cuBLASLt matmul运算在以下情况下可能会计算错误输出:矩阵A和B的数据类型为FP8,矩阵C和D的数据类型是FP32、FP16或BF16,β值为1.0,C和D矩阵相同,尾声包含GELU激活函数。

2.1.10.cuBLAS:12.2版

  • 已知问题

    • 当MPS与一起使用时,料斗架构GPU上的cuBLAS初始化失败CUDA_MPS_ACTIVE_THREAD_PERCENTAGE系列设置为小于100%的值。目前没有解决此问题的解决方案。

    • 一些料斗内核对具有CUBLASLT_EPILOGUE_RELU_BIAS按钮CUBLASLT_EPILOGUE_GELU_BIAS公司和一个非零CUBLASLT_MATMUL_DESC_BIAS_BATCH_STRIDE(CUBLASLT _ MATMUL_DESC_BIAS_巴奇_斯特里德)。内核将第一批的偏差向量应用于所有批次。这将在未来的版本中修复。

2.1.11.cuBLAS:12.1版更新1

  • 新功能

    • 支持NVIDIA Ada GPU上的FP8。

    • 提高了NVIDIA L4 Ada GPU的性能。

    • 引入了一个API,用于指示cuBLASLt库不使用某些CPU指令。这在cuBLASLt启发式使用的某些CPU指令对CPU性能产生负面影响的一些罕见情况下非常有用。请参阅https://docs.nvidia.com/cuda/cublas/index.html#禁用-cpu指令.

  • 已知问题

    • 使用立方体矩阵布局创建()函数,指向的对象cublasLtMatrix布局_t小于cublasLtMatrix布局不透明_t(但足以支撑内部结构)。因此,不应取消引用或显式复制对象,因为这可能会导致越界访问。如果需要序列化布局或复制布局,建议手动分配大小为的对象尺寸(立方体Lt矩阵布局Opaque_t)字节,并使用初始化cublasLtMatrix布局初始()功能。这同样适用于立方LtMatmulDesc_tcublasLtMatrix转换描述_t。通过确保cublasLtMatrix布局创建()至少分配大小(cublasLtMatrixLayoutOpaque_t)字节。

2.1.12.cuBLAS:12.0版更新1

  • 新功能

    • 提高了NVIDIA H100 SXM和NVIDIA H100 PCIe GPU的性能。

  • 已知问题

    • 为了在NVIDIA Hopper体系结构上实现最佳性能,cuBLAS需要分配比以前体系结构(8 MiB)更大的内部工作空间(64 MiB)。在当前和以前的版本中,cuBLAS分配了256 MiB。这将在未来的版本中解决。一个可能的解决方法是设置CUBLAS_WORKSPACE_CONFIG(CUBLAS_工作空间_配置)在NVIDIA Hopper体系结构上运行cuBLAS时,环境变量设置为:32768:2。

  • 已解决的问题

    • 减少了不使用cublasLt启发式缓存导致的cuBLAS主机端开销。这始于CUDA Toolkit 12.0版本。

    • 增加了向前兼容的单精度复合GEMM,不需要工作空间。

2.1.13.cuBLAS:12.0版

  • 新功能

    • 立方体LtMatmul现在支持非零beta的FP8。

    • 补充整数64支持更大问题规模的API;参考64位整数接口.

    • 为添加更多特定于Hopper的内核立方体LtMatmul带有尾语:

      • CUBLASLT_EPILOGUE_BGRAD{A、B}

      • CUBLASLT_EPILOGUE公司_{RELU、GELU}_AUX

      • CUBLASLT_EPILOGUE_D{RELU、GELU}

    • 通过添加以前仅在Windows和Linux的x86_64体系结构上支持的Hopper内核,改进了arm64-sbsa上的Hoppe性能。

  • 已知问题

    • 对于不需要工作空间的单精度复杂gemm,没有向前兼容的内核。支持将在以后的版本中添加。

  • 已解决的问题

    • 修复了NVIDIA安培架构和更新GPU的问题,其中立方体LtMatmul结尾CUBLASLT_EPILOGUE_BGRAD{A、B}和一个非平凡的约简方案(也就是说,不是CUBLASLT_REDULCTION_SCHEME_NONE(CUBLASLT _还原_化学_无))可能会返回错误的偏差梯度结果。

    • 立方体LtMatmul对于gemv-like情况(即m或n等于1),可以忽略CUBLASLT_EPILOGUE_RELU_BIAS按钮CUBLASLT_EPILOGUE_BIAS公司结语。

    折旧

    • 不允许包含古巴。小时立方v2.h在同一个翻译单元中。

    • 远离的:

      • CUBLAS_MATMUL_阶段_16x80CUBLAS_MATMUL_阶段_64x80cublasLtMatmulStages_t。没有内核再利用这些阶段。

      • 立方体Lt3mMode_t,CUBLASLT_MATMUL_PREF_MATH_MODE_任务、和CUBLASLT_MATMUL_PREF_GAUSSIAN_MODE_任务cublasLtMatmulPreferenceAttribute属性_t。相反,请使用中相应的标志cublasLt数字隐含标志_t.

      • CUBLASLT_MATMUL_PREF_POINTER_MODE_任务,立方体体积、和立方体体积_体积_参考_体积_目标cublasLtMatmulPreferenceAttribute属性_t。相应的参数直接取自立方LtMatmulDesc_t.

      • CUBLASLT_POINTER_MODE_MASK_NO_过滤cublasLtPointer模式任务_t。此面罩仅适用于立方体体积_体积_参考_体积_模型_掩码已删除。

2.2.袖珍咖啡馆

2.2.1.袖口:释放12.6

  • 已知问题

    • 大小为1的FFTistride/鸵鸟 > 1FP16当前不支持。在CTK 12.1或更早版本中,此用例存在已知的内存问题。A类袖口_无效_尺寸CTK 12.2或更高版本中抛出错误。[4662222]

2.2.2.袖口:释放12.5

2.2.3.cuFFT:12.4版更新1

  • 已解决的问题

    • 来自cuFFT LTO EA库错误地添加到cuFFT Advanced API标题(袖口Xt。小时)在CUDA 12.4中。此例程现在已从收割台中删除。

2.2.4.袖口:12.4版

  • 新功能

    • 补充实时链接时间优化(JIT LTO)内核以提高具有64位索引的FFT的性能。

    • 补充按计划属性到袖口API。可以利用这些新的例程让用户更好地控制cuFFT的行为。目前,它们可以用于为64位FFT启用JIT LTO内核。

    • 提高了某些单精度(fp32)FFT情况的精确度,尤其是涉及较大尺寸的FFT。

  • 已知问题

    • 错误地将cuFFT LTO EA库中的例程添加到cuFFT Advanced API头(袖口Xt。小时). cuFFT不支持此例程,在将来的版本中将从标头中删除。

  • 已解决的问题

    • 修复了在使用用户特定的输出步幅(即使用鸵鸟的组件高级数据布局API).

    • 修复了之间的不一致行为利布克夫特FFTW公司当两者内嵌的onembed公司空指针 / 无效的从现在开始,就像FFTW一样空指针 / 无效的作为inembed/onembed参数相当于传递n,即该维度的逻辑大小。

2.2.5.袖口:12.3版更新1

  • 已知问题

    • 在与创建计划不同的上下文中执行实际到复杂(R2C)或复杂到实际(C2R)计划可能会导致未定义的行为。这个问题将在即将发布的cuFFT中修复。

  • 已解决的问题

    • 复杂到复杂(C2C)执行功能(袖口Exec和类似的)现在可以在内核启动期间发生错误时正确地出错,例如由于缺少CUDA上下文。

2.2.6.袖口:12.3版

  • 新功能

    • 回调内核在资源使用方面更加宽松,并且将使用更少的寄存器。

    • 提高了因子大于127的双精度素数和复合FFT大小的精度。

    • 对于某些FFT大小,计划时间略有改进。

2.2.7.袖口:12.2版

  • 新功能

    • 袖口SetStream可以在多GPU计划中使用来自任何GPU上下文的流,而不是来自中列出的第一个GPU的主上下文袖口XtSetGPU.

    • 改进了1000+个尺寸从62到16380的FFT的性能。性能的改进跨越了数百种具有连续数据布局的FFT的单精度和双精度情况,通过PTX JIT跨越了多个GPU架构(从Maxwell到Hopper GPU)。

    • 与12.1版本中的cuFFT相比,减少了静态库的大小。

  • 已解决的问题

    • 当线程同时创建和访问有1023个以上活动计划的计划时,cuFFT不再显示竞争条件。

    • 当多线程调用时,cuFFT不再显示竞争条件袖口XtSetGPU同时。

2.2.8.cuFFT:12.1版更新1

  • 已知问题

    • 当一个线程调用时,cuFFT显示竞争条件袖口创建(或袖口摧毁)另一个线程调用任何API(除了袖口创建袖口摧毁),并且当活动计划的总数超过1023个时。

    • 当多线程调用时,cuFFT显示竞争条件袖口XtSetGPU同时执行不同的计划。

2.2.9.袖口:12.1版

  • 新功能

    • 数百个大小从14到28800不等的FFT在料斗GPU上的性能得到了改进。对于具有连续数据布局的FFT,改进的性能跨越了542个单精度和双精度案例。

  • 已知问题

    • 从CUDA 11.8开始,CUDA Graphs不再支持以非常规模式转换加载数据的回调例程。即将发布的版本将更新cuFFT回调实现,消除此限制。基于cuFFT 11.4中单独编译的设备代码,cuFFT已弃用回调功能。

  • 已解决的问题

    • 如果在创建计划时使用的CUDA上下文在程序退出之前被破坏,则cuFFT不再在程序退出时使用计算机消毒剂产生错误。

2.2.10.袖口:12.0版更新1

  • 已解决的问题

    • 减少了多GPU、单批次、1D FFT的划痕空间要求。

2.2.11.袖口:12.0版

  • 新功能

    • PTX JIT内核编译允许为Maxwell、Pascal、Volta和Turing架构添加许多新的加速案例。

  • 已知问题

  • 已解决的问题

    • cuFFT计划的每个计划都有一个无意的小内存开销(几kB)。此问题已解决。

2.3.cuSOLVER库

2.3.1.cuSOLVER:12.6版

  • 新功能

    • 的性能改进cusolverDnXgesvdp().

2.3.2.cuSOLVER:12.5版更新1

  • 已解决的问题

    • 上的潜在出站访问设备上的缓冲区通过调用cusolverDnXlarft公司已解决。

2.3.3.cuSOLVER:12.5版

  • 新功能

    • 的性能改进cusolverDnXgesvd公司cusolverDn<t>gesvd如果乔布 != “否”工作 != “否”.

    • 的性能改进cusolverDnXgesvdp公司如果jobz公司 = CUSOLVER_EIG_MODE_NOVECTOR(缓冲_EIG_MODE_NOVECTOR).

    • 更低的工作空间要求cusolverDnXgesvdp公司对于高瘦矩阵。

  • 已知问题

    • 使用CUDA工具包12.4更新1,值低密度晶体管 > k在的呼叫中cusolverDnXlarft公司可能导致对的出站内存访问设备上的缓冲区。作为一种解决方法,可以分配一个较大的设备工作区缓冲区workspaceInBytesOnDevice=ALIGN_32((ldt*k + n*k)*数据类型大小(数据类型T),使用

      汽车 对准32=[](整数64_t val值) {
         返回 ((val值 + 31)/32)*32;
      };
      

      汽车 数据类型大小=[](cuda数据类型 日期) {
         如果 (日期 == 古巴_R_32F) 返回 大小(浮动);
         如果 (日期 == 古巴_R_64F) 返回 大小(双重的);
         如果 (日期 == 古巴_C_32F) 返回 大小(cu复合物);
         如果 (日期 == CUDA_C_64F) 返回 大小(cuDouble复合物);
      };
      

2.3.4.cuSOLVER:12.4版更新1

  • 新功能

    • 的性能cusolverDnXlarft公司已得到改进。对于大型矩阵,加速比可能超过100倍。H100上的性能始终优于A100。中的变化cusolverDnXlarft公司也导致了适度的加速cusolverDn<t>ormqr,cusolverDn<t>ormtr、和cusolverDnXsyevd公司.

    • 的性能cusolverDnXgesvd公司当寻找奇异向量时已经得到了改进。计算左右奇异向量的作业配置速度快1.5倍。

  • 已解决的问题

    • cusolverDnXtrtri_bufferSize现在返回正确的工作空间大小(以字节为单位)。

  • 折旧

    • 使用长期弃用cusolverDnCtrl,cusolverDnPolrs(库索尔弗德波尔茨),库索尔文DnGeqrf,cusolverDnGetrf公司,cusolverDnGetrs公司,cusolverDnSyevd公司,cusolverDnSyevdx公司,cusolverDnGesvd公司,及其随行人员缓冲区大小函数将导致弃用警告。可以使用关闭警告-DDISABLE_CUSOLVER_DEPRECATED(DDISABLE _通用_升级)编译时标记;然而,用户应该使用cusolverDnXportf公司,cusolverDnXports公司,库索尔文DnXgeqrf,cusolverDenX获取rf,cusolverDnXgetrs公司,cusolverDnXsyevd公司,cusolverDnXsyevdx公司,cusolverDnXgesvd公司,以及相应的缓冲区大小而不是函数。

2.3.5.cuSOLVER:12.4版

  • 新功能

    • cusolverDnXlarft公司cusolverDnXlarft_bufferSize引入了API。cusolverDnXlarft公司形成真实块反射器的三角形因子,而cusolverDnXlarft_bufferSize返回其所需的工作区大小(以字节为单位)。

  • 已知问题

    • cusolverDnXtrtri_bufferSize`返回不正确的所需设备工作区大小。作为一种解决方法,可以将返回的大小乘以数据类型的大小(例如,如果矩阵a是double类型,则为8字节),以获得正确的工作空间大小。

2.3.6.cuSOLVER:12.2版更新2

  • 已解决的问题

    • 修复了一个问题cusolverDn<t>gesvd(),cusolverDnGesvd()、和cusolverDnXgesvd(),对于大于18918的矩阵,如果乔布工作不等于'N个’.

2.3.7.cuSOLVER:12.2版

  • 新功能

    • 一种新的API,用于确保确定性结果或允许非确定性结果以提高性能。请参见cusolverDnSetDeterministicMode()cusolverDnGetDeterministicMode()。受影响的功能包括:cusolverDn<t>geqrf(),cusolverDn<t>syevd(),cusolverDn<t>syevdx(),cusolverDen<t>gesvdj(),cusolverDnXgeqrf(),cusolverDnXsyevd(),cusolverDnXsyevdx(),cusolverDnXgesvdr()、和cusolverDnXgesvdp().

  • 已知问题

    • 并发执行cusolverDn<t>getrf()cusolverDnXgetrf()在同一设备上的不同非阻塞CUDA流中可能会导致死锁。

2.4.cuSPARSE库

2.4.1.cuSPARSE:版本12.6

  • 已知问题

    • cusparseSpMV_preprocess()如果对同一矩阵调用两次或多次,则运行SpMV计算[海关-1897]

    • cusparseSpMV_preprocess()在以下情况下不会运行cusparseSpMM_preprocess()在同一矩阵上执行,反之亦然。[海关-1897]

    • 必须将相同的external_buffer用于所有cusparseSpMV公司电话。[海关-1897]

2.4.2.cuSPARSE:12.5版更新1

  • 新功能

    • 在中添加了对BSR格式的支持cusparseSpMM标准.

  • 已解决的问题

    • cusparseSpMM()有时会得到错误的结果α=0,数量_批次>1,批量运输指示批之间存在填充。

    • cusparseSpMM_bufferSize()当稀疏矩阵为Blocked Ellpack且密集矩阵只有一列(n=1)时,将返回错误的大小。

    • cusparseSpMM标准返回错误的结果k=0(例如,当A有零列时)。正确的行为是C类 \*= 贝塔。错误行为没有修改C类完全。

    • cusparse创建切片Ell当切片大小大于矩阵行数时,将返回错误。

    • 切片ELLPACKcusparseSpSV公司对角线矩阵产生了错误的结果。

    • 切片ELLPACKcusparseSpSV_analysis()由于某些矩阵和某些切片大小的资源不足,失败。

2.4.3.cuSPARSE:12.5版

  • 新功能

    • 增加了对SpMV中混合输入类型的支持:单精度输入矩阵、双精度输入向量、双精度输出向量。

  • 已解决的问题

    • cusparseSpMV()当输出向量未对齐到16字节时,会引入无效的内存访问。

2.4.4.cuSPARSE:12.4版

  • 新功能

    • 增加了稀疏矩阵向量乘法的预处理步骤cusparseSpMV_preprocess().

    • 添加了对混合实数类型和复杂类型的支持cusparseSpMM().

    • 添加了新APIcusparseSpSM_updateMatrix()在分析和求解阶段更新稀疏矩阵cusparseSpSM().

  • 已知问题

    • cusparseSpMV()当输出向量未对齐到16字节时,会引入无效的内存访问。

  • 已解决的问题

    • cusparseSpVV()当稀疏向量有许多非零时,提供了错误的结果。

2.4.5.cuSPARSE:12.3版更新1

  • 新功能

    • 增加了对64和128英寸块大小的支持cusparseSDDMM().

    • 添加了预处理步骤cusparseSDDMM_reprocess()对于BSRcusparseSDDMM()这有助于提高主计算阶段的性能。

2.4.6.cuSPARSE:12.3版

  • 新功能

    • 这个cusparseSpSV_bufferSize()cusparseSpSV_analysis()例程现在接受密集向量的NULL指针。

    • 这个cusparseSpSM_bufferSize()cusparseSpSM_analysis()例程现在接受值为NULL指针的密集矩阵描述符。

  • 已知问题

    • 这个cusparseSpSV_analysis()cusparseSpSM_analysis()例程阻止调用/不异步。

    • 可能会出现错误的结果cusparseSpSV()在矩阵A上使用切片ELLPACK格式和转置/转置共轭运算。

  • 已解决的问题

    • cusparseSpSV()在某些情况下提供了不确定的结果。

    • 修复了导致cusparseSpSV_analysis()有时在多线程环境中挂起。

    • 修复了一个问题cusparseSpSV()cusparseSpSV()当输出向量/矩阵或输入矩阵包含NaN时,有时会产生错误的输出。

2.4.7.cuSPARSE:12.2版更新1

  • 新功能

  • 已解决的问题

    • 远离的海关_SPMM_CSR_ALG3回退以避免算法选择过程中的混淆。

    • 阐明支持的操作cusparseSDDMM().

    • cusparseCreateConstSlicedEll()现在使用常数指针。

    • 修复了罕见边缘情况下的错误结果cusparseCsr2CscEx2()以1为基数分度。

    • cusparseSpSM_bufferSize()可能要求的内存比需要的略少。

    • cusparseSpMV()现在只在严格需要时检查缓冲区指针的有效性。

  • 折旧

    • 一些遗留API已被正式弃用。编译时警告已添加到所有警告中。

2.4.8.cuSPARSE:12.1版更新1

  • 新功能

    • 为支持SDDMM例程的通用API引入了块稀疏行(BSR)稀疏矩阵存储(cusparseSDDMM系统).

    • 为支持稀疏矩阵向量乘法的通用API引入了切片Ellpack(SELL)稀疏矩阵存储格式(cusparseSpMV公司)和具有单个右手边的三角形解算器(cusparseSpSV公司).

    • 添加了新的API调用(cusparseSpSV_更新矩阵)在分析步骤后,用一个右手边更新稀疏三角形解算器中的矩阵值和/或矩阵对角线。

2.4.9.cuSPARSE:12.0版更新1

  • 新功能

    • cusparseSDDMM()现在支持混合精度计算。

    • 改进cusparseSpMM()NVIDIA安培架构GPU上一些矩阵的alg2混合精度性能。

    • 改进cusparseSpMV()性能与新的负载平衡算法。

    • cusparseSpSV()cusparse.SpSM()现在支持就地计算,即输出和输入向量/矩阵具有相同的内存地址。

  • 已解决的问题

    • cusparseSpSM()如果RHS矩阵的前导维数(ld)大于列/行数,则可能会产生错误的结果。

2.4.10.cuSPARSE:12.0版

  • 新功能

    • JIT LTO功能(cusparseSpMMOp())从驱动程序切换到nvJitLt到库。从CUDA 12.0开始,用户需要链接到libnvJit有限公司,请参阅cuSPARSE文档JIT LTO性能也得到了改进cusparseSpMMOpPlan().

    • 例如,为通用API引入了常量描述符,cusparseConstSpVecGet()现在,Generic API接口清楚地声明了cuSPARSE函数何时修改描述符及其数据。

    • 向添加了两个新算法cusparseSpGEMM()内存利用率较低。第一种算法计算中间产物数量的严格界限,而第二种算法允许将计算分为块。

    • 补充整数8_t支持cusparseGather(),cusparseScatter()、和cusparseCsr2cscEx2().

    • 改进cusparseSpSV()分析和求解阶段的性能。

    • 改进cusparseSpSM()分析和求解阶段的性能。

    • 改进cusparseSDDMM()性能并增加了对批处理计算的支持。

    • 改进cusparseCsr2cscEx2()性能。

  • 已解决的问题

    • cusparseSpSV()cusparseSpSM()可能会产生错误的结果。

    • cusparsedDnMatGetStridedBatch()不接受批次Stride == 0.

  • 折旧

    • 删除了不推荐使用的CUDA 11.x API、枚举器和描述符。

2.5.数学库

2.5.1.CUDA数学:12.6版更新1

  • 已解决的问题

    • 解决了12.6版中的问题4731352。

2.5.2.CUDA数学:12.6版

  • 已知问题

    • 作为正在进行的兼容性测试的结果,NVIDIA发现许多CUDA数学整数SIMD API处于静默状态如果在用MSVC 17.10编译的程序中的CPU上使用,则会产生错误的结果。根本原因是编码在缩小整数转换期间暴露于未定义行为的API的基于头的实现中出错对GPU功能进行基于主机的仿真时。该问题将在CUDA的未来版本中修复。受影响的应用程序是那些呼叫__vimax3_s16x2,__vimin3_s16x2,__振动最大值_s16x2、和__vibmin_s16x2在CPU上,而不是在CUDA内核中。[4731352]

2.5.3.CUDA数学:12.5版

  • 已知问题

    • 作为正在进行的测试的结果,我们更新了两倍精度的区间界限lgamma()功能可能会经历大于记录的4ulp精度损失。新间隔应为(-23.0001;-2.2637)。该发现适用于CUDA 12.5和所有早期版本。[4662420]

2.5.4.CUDA数学:12.4版

  • 已解决的问题

    • 中的主机特定代码cuda_fp16/bf16标头现在不需要进行类型运行,并且在基于严格关联规则的优化情况下可以正常工作。[4311216]

2.5.5.CUDA数学:12.3版

  • 新功能

    • SIMD整数CUDA数学API的性能得到了改进。

  • 已解决的问题

    • 这个__hisinf()数学API来自古巴_fp16.hcuda_bf16.h如果使用-标准=c++20编译器选项,因为存在基础nvcc编译器问题,已在12.3版中解决。

  • 已知问题

    • 的用户库达_fp16.hcuda_bf16.h建议标头禁用主机编译器严格的基于别名规则的优化(例如pass-fno-严格连接宿主GCC编译器),因为这些可能会干扰__一半,__二分之一,__nv _浮点16,__nv _浮点162类型实现并将用户程序暴露给未定义的行为。注意,标头通过#pragma GCC diagnostic ignored禁止GCC诊断-Wstrict-aliasing公司。此行为可能会在将来版本的标头中得到改进。

2.5.6.CUDA数学:12.2版

  • 新功能

    • CUDA数学API__一半__nv _浮点16类型得到了可用性改进,包括主机端对许多算术运算和转换的支持。

    • __一半__nv _浮点16类型具有与整型之间的隐式转换,默认情况下,整型现在可用于主机编译器。由于不明确的重载解决方案,这些可能会导致生成问题。建议用户更新代码以选择适当的重载。要选择退出,用户可能需要定义以下宏(这些宏将在未来的CUDA版本中删除):

      • __CUDA_FP16_DISABLE_IMPLICIT_INTEGER_CONVERTS_FOR_HOST_COMPILERS卡__

      • __CUDA_BF16_DISABLE_IMPLICIT_INTEGER_CONVERTS_FOR_HOST_COMPILERS系统__

  • 已解决的问题

    • 在正在进行的测试中,NVIDIA发现,由于算法错误,在默认的“四舍五入”模式下64位浮点除法的结果可能会产生无穷大的虚假溢出。NVIDIA建议所有需要严格遵守IEEE754标准的开发人员更新CUDA工具包12.2或更新版本。受影响的算法既存在于离线编译中,也存在于实时(JIT)编译中。由于JIT编译由驱动程序处理,NVIDIA建议在需要符合IEEE754的情况下以及在使用JIT时更新到大于或等于R535(在Windows上为R536)的驱动程序版本。这是一个软件算法修复程序,与特定硬件无关。

    • 更新了单精度内在函数的观测到的最坏情况误差界__expf(),__exp10f()和双精度功能asinh(),acosh().

2.5.7.CUDA数学:12.1版

  • 新功能

    • 性能和准确性的改进阿塔纳夫,acosf公司,美国国家科学基金会,辛皮夫,科斯皮夫,功率,电流变液、和特加马夫.

2.5.8.CUDA数学:12.0版

  • 新功能

  • 已知问题

    • 在默认的“舍入到最近的偶数模式”中,导致双精度除法算法的双精度输入会产生虚假溢出:在DBL_MAX(最大) 0x7FEF_FFFF_FFFF应为。受影响的CUDA数学API:__ddiv_rn()受影响的CUDA语言操作:设备代码中的双精度/操作。

  • 折旧

    • CUDA 12.0中删除了所有以前弃用的未文档化API。

2.6.NVIDIA性能原件(NPP)

2.6.1.核电站:12.4版

  • 新功能

    • 增强的大文件支持尺寸_t.

2.6.2.核电站:12.0版

  • 折旧

    • 正在取消下一版本的非CTX API支持。

  • 已解决的问题

    • 核电站的性能问题调整Sqr像素大小API现已修复并显示性能有所提高。

2.7.nvJPEG库

2.7.1.nvJPEG:12.4版

  • 新功能

    • 单图像CUDA解码的IDCT性能优化。

    • 零复制行为已更改:设置NVJPEG_FLAGS_REDUCED_MEMORY_DECODE_ZERO_COPY格式标志将不再启用NVJPEG_FLAGS_REDUCED_MEMORY_DECODE.

2.7.2.nvJPEG:12.3版更新1

  • 新功能

    • 新API:nvjpeg缓冲区固定大小调整nvjpeg缓冲区设备调整大小可用于在使用前调整固定缓冲区和设备缓冲区的大小。

2.7.3.nvJPEG:12.2版

  • 新功能

    • 增加了对JPEG无损解码的支持(过程14,FO预测)。

    • L4T现在支持nvJPEG。

2.7.4.nvJPEG:12.0版

  • 新功能

    • 改进了nvJPEG编解码器的GPU内存优化。

  • 已解决的问题

    • 导致运行时失败的问题nvJPEGDec多个实例已用大量线程进行测试,已解决问题。

    • CMYK四分量颜色转换的问题现已解决。

  • 已知问题

    • 后端NVJPEG_BACKEND_GPU_HYBRID格式-无法处理具有额外扫描长度的双光束。

  • 折旧

    • 编码器中哈夫曼表的重用(nvjpegEncoderParamsCopyHuffman表格).

1

仅在部分Linux发行版上可用

三。通知

3.1.通知

本文件仅供参考,不应视为对产品的某些功能、条件或质量的保证。英伟达公司(“NVIDIA”)对本文件中所含信息的准确性或完整性不作任何明示或暗示的陈述或保证,也不对本文件中的任何错误承担任何责任。NVIDIA不对此类信息的后果或使用承担任何责任,也不对使用此类信息可能导致的任何侵犯第三方专利或其他权利的行为承担任何责任。本文件不是开发、发布或交付任何材料(定义如下)、代码或功能的承诺。

NVIDIA保留随时对本文件进行更正、修改、增强、改进和任何其他更改的权利,恕不另行通知。

客户应在下单前获得最新的相关信息,并应验证这些信息是最新的和完整的。

除非NVIDIA授权代表与客户签署的单独销售协议(“销售条款”)中另有约定,否则NVIDIA产品的销售应遵守订单确认时提供的NVIDIB标准销售条款和条件。NVIDIA特此明确反对在购买本文件中提及的NVIDIA产品时适用任何客户通用条款和条件。本文件不直接或间接构成任何合同义务。

NVIDIA产品的设计、授权或保证不适用于医疗、军事、飞机、太空或生命支持设备,也不适用于NVIDIA产品的故障或失灵可能导致人身伤害、死亡或财产或环境损害的应用。NVIDIA对在此类设备或应用中包含和/或使用NVIDIA产品不承担任何责任,因此,客户自行承担此类包含和/或者使用的风险。

NVIDIA不对基于本文档的产品适用于任何指定用途做出任何声明或保证。NVIDIA不一定要对每个产品的所有参数进行测试。客户全权负责评估和确定本文件中包含的任何信息的适用性,确保产品适合客户计划的应用,并对应用程序进行必要的测试,以避免应用程序或产品出现故障。客户产品设计中的不足可能会影响NVIDIA产品的质量和可靠性,并可能导致本文件中所包含的条件和/或要求之外的其他或不同的条件和要求。NVIDIA不承担与任何违约、损坏、成本或问题相关的责任,这些违约、损坏或问题可能基于或归因于:(i)以任何违反本文件的方式使用NVIDIA产品,或(ii)客户产品设计。

本文件项下的任何NVIDIA专利权、版权或其他NVIDIA知识产权均未授予任何明示或暗示的许可。NVIDIA发布的有关第三方产品或服务的信息并不构成NVIDIA使用此类产品或服务或其担保或背书的许可。使用此类信息可能需要第三方根据第三方的专利或其他知识产权授予许可,或NVIDIA根据NVIDIA的专利或其它知识产权授予的许可。

只有在事先获得NVIDIA书面批准、无需更改且完全符合所有适用出口法律法规并附有所有相关条件、限制和通知的情况下,才允许复制本文件中的信息。

本文件和所有NVIDIA设计规范、参考板、文件、图纸、诊断、清单和其他文件(统称为“材料”或单独称为“材料”)均按“原样”提供。NVIDIA对材料不作任何明示、暗示、法定或其他保证,并明确否认对非侵权性、适销性和特定用途适用性的所有默示保证。在法律未禁止的范围内,在任何情况下,NVIDIA都不对因使用本文件而产生的任何损害承担责任,包括但不限于任何直接、间接、特殊、偶然、惩罚性或后果性损害,无论是何种原因造成的,无论责任理论如何,即使NVIDIA已被告知此类损害的可能性。尽管客户可能因任何原因遭受任何损害,但NVIDIA对本协议所述产品的累计责任应根据产品销售条款进行限制。

3.2.开放运算语言

OpenCL是Apple Inc.的商标,根据Khronos Group Inc.的许可使用。

3.3.商标

NVIDIA和NVIDIAlogo是NVIDIA Corporation在美国和其他国家的商标或注册商标。其他公司和产品名称可能是与其关联的各个公司的商标。