cuda和显卡驱动对应版本关系

NVIDIA CUDA 工具包发行说明

CUDA 工具包的发行说明。

1.CUDA 12.4 发行说明

NVIDIA® CUDA® 工具包的发行说明可在线找到:1. CUDA 12.4 Release Notes — Release Notes 12.4 documentation。

笔记

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

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

CUDA组件

从 CUDA 11 开始,工具包中的各个组件均独立进行版本控制。

对于 CUDA 12.4,下表列出了版本:

Component Name

Version Information

Supported Architectures

Supported Platforms

CUDA C++ Core Compute Libraries

Thrust

2.3.1

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows

CUB

2.3.1

libcu++

2.3.1

Cooperative Groups

12.3.x

CUDA Compatibility

12.4.35475792

aarch64-jetson

Linux

CUDA Runtime (cudart)

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

cuobjdump

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows

CUPTI

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA cuxxfilt (demangler)

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows

CUDA Demo Suite

12.4.99

x86_64

Linux, Windows

CUDA GDB

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, WSL

CUDA Nsight Eclipse Plugin

12.4.99

x86_64, POWER

Linux

CUDA NVCC

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA nvdisasm

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows

CUDA NVML Headers

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA nvprof

12.4.99

x86_64, POWER

Linux, Windows

CUDA nvprune

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA NVRTC

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

NVTX

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA NVVP

12.4.99

x86_64, POWER

Linux, Windows

CUDA OpenCL

12.4.99

x86_64

Linux, Windows

CUDA Profiler API

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA Compute Sanitizer API

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA cuBLAS

12.4.2.65

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

cuDLA

12.4.99

aarch64-jetson

Linux

CUDA cuFFT

11.2.0.44

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA cuFile

1.9.0.20

x86_64, arm64-sbsa, aarch64-jetson

Linux

CUDA cuRAND

10.3.5.119

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA cuSOLVER

11.6.0.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA cuSPARSE

12.3.0.142

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA NPP

12.2.5.2

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA nvFatbin

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA nvJitLink

12.4.99

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

CUDA nvJPEG

12.3.1.89

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL

Nsight Compute

2024.1.0.13

x86_64, arm64-sbsa, POWER, aarch64-jetson

Linux, Windows, WSL (Windows 11)

Nsight Systems

2023.4.4.54

x86_64, arm64-sbsa, POWER

Linux, Windows, WSL

Nsight Visual Studio Edition (VSE)

2024.1.0.23349

x86_64 (Windows)

Windows

nvidia_fs1

2.19.6

x86_64, arm64-sbsa, aarch64-jetson

Linux

Visual Studio Integration

12.4.99

x86_64 (Windows)

Windows

NVIDIA Linux Driver

550.54.14

x86_64, arm64-sbsa, POWER

Linux

NVIDIA Windows Driver

551.61

x86_64 (Windows)

Windows, WSL


运行 CUDA 应用程序需要系统至少配备一个支持 CUDA 的 GPU 以及与 CUDA 工具包兼容的驱动程序。参见表3。有关支持 CUDA 的各种 GPU 产品的更多信息,请访问1。

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

有关兼容性的更多信息,请访问CUDA C++ Best Practices Guide。

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

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

表 2 CUDA 工具包和 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 驱动程序版本如下所示。

CUDA Toolkit

Toolkit Driver Version

Linux x86_64 Driver Version

Windows x86_64 Driver Version

CUDA 12.4 GA

>=550.54.14

>=551.61

CUDA 12.3 Update 1

>=545.23.08

>=546.12

CUDA 12.3 GA

>=545.23.06

>=545.84

CUDA 12.2 Update 2

>=535.104.05

>=537.13

CUDA 12.2 Update 1

>=535.86.09

>=536.67

CUDA 12.2 GA

>=535.54.03

>=536.25

CUDA 12.1 Update 1

>=530.30.02

>=531.14

CUDA 12.1 GA

>=530.30.02

>=531.14

CUDA 12.0 Update 1

>=525.85.12

>=528.33

CUDA 12.0 GA

>=525.60.13

>=527.41

CUDA 11.8 GA

>=520.61.05

>=520.06

CUDA 11.7 Update 1

>=515.48.07

>=516.31

CUDA 11.7 GA

>=515.43.04

>=516.01

CUDA 11.6 Update 2

>=510.47.03

>=511.65

CUDA 11.6 Update 1

>=510.47.03

>=511.65

CUDA 11.6 GA

>=510.39.01

>=511.23

CUDA 11.5 Update 2

>=495.29.05

>=496.13

CUDA 11.5 Update 1

>=495.29.05

>=496.13

CUDA 11.5 GA

>=495.29.05

>=496.04

CUDA 11.4 Update 4

>=470.82.01

>=472.50

CUDA 11.4 Update 3

>=470.82.01

>=472.50

CUDA 11.4 Update 2

>=470.57.02

>=471.41

CUDA 11.4 Update 1

>=470.57.02

>=471.41

CUDA 11.4.0 GA

>=470.42.01

>=471.11

CUDA 11.3.1 Update 1

>=465.19.01

>=465.89

CUDA 11.3.0 GA

>=465.19.01

>=465.89

CUDA 11.2.2 Update 2

>=460.32.03

>=461.33

CUDA 11.2.1 Update 1

>=460.32.03

>=461.09

CUDA 11.2.0 GA

>=460.27.03

>=460.82

CUDA 11.1.1 Update 1

>=455.32

>=456.81

CUDA 11.1 GA

>=455.23

>=456.38

CUDA 11.0.3 Update 1

>= 450.51.06

>= 451.82

CUDA 11.0.2 GA

>= 450.51.05

>= 451.48

CUDA 11.0.1 RC

>= 450.36.06

>= 451.22

CUDA 10.2.89

>= 440.33

>= 441.22

CUDA 10.1 (10.1.105 general release, and updates)

>= 418.39

>= 418.96

CUDA 10.0.130

>= 410.48

>= 411.31

CUDA 9.2 (9.2.148 Update 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 安装的一部分进行安装。请注意,此驱动程序用于开发目的,不建议在使用 Tesla GPU 的生产中使用。

要在生产环境中使用 Tesla GPU 运行 CUDA 应用程序,建议从 NVIDIA 驱动程序下载网站Official Drivers | NVIDIA下载 Tesla GPU 的最新驱动程序。

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

有关在 Windows 上自定义安装过程的更多信息,请参阅CUDA Installation Guide for Microsoft Windows。

有关 Linux 上的元包,请参阅1. Introduction — Installation Guide for Linux 12.4 documentation。

1.2. 新功能

本节列出了新的常规 CUDA 和 CUDA 编译器功能。

1.2.1. 通用CUDA

  • 绿色上下文是传统上下文的轻量级替代方案,能够传递一组应用于初始化的资源。这使得开发人员能够表示 GPU 的不同空间分区,为它们提供资源,并通过 CUDA 公开的相同编程模型(流、内核启动等)来定位它们。详细信息请参考CUDA Driver API :: CUDA Toolkit Documentation。

  • Grace Hopper 系统基于访问计数器的内存迁移现在默认启用。由于这是启用该功能的第一个版本,开发人员可能会发现,针对早期内存迁移算法进行优化的应用程序如果针对早期行为进行优化,可能会出现性能下降。如果发生这种情况,我们会引入一个受支持但临时的标志来选择退出此行为。您可以通过卸载和重新加载 NVIDIA UVM 驱动程序来控制此功能的启用,如下所示:

    # modprobe -r nvidia_uvm# modprobe nvidia_uvm uvm_perf_access_counter_mimc_migration_enable=0
    
  • 此版本引入了对 CUDA 图中以下新功能的支持:

    • 图条件节点(从 12.3 增强)

    • 设备图的设备端节点参数更新

    • 无需重新编译即可更新图节点优先级

  • 通过 NVML 和 nvidia-smi 增强监控功能:

    • NVJPG 和 NVOFA 使用百分比

    • PCIe 类别和子类别报告

    • dmon 报告现在提供 CSV 格式

    • 从 NVML 返回更多描述性错误代码

    • dmon 现在报告 MIG 的 gpm 指标(即在 MIG 模式下运行)nvidia-smi dmon --gpm-metrics

    • 在某些情况下,针对旧驱动程序运行的 NVML 会报告FUNCTION_NOT_FOUND,如果 NVML 比驱动程序新,则会正常失败

    • 用于查询 Hopper 机密计算的受保护内存信息的 NVML API

  • 此版本引入了 nvFatbin,这是一个用于在运行时创建 CUDA fat 二进制文件的新库。欲了解更多详情,请访问nvFatbin。

1.2.2. 机密计算一般访问

  • 从 12.4 R550.54.14 开始,Hopper 的机密计算将转向通用访问以用于离散 GPU 使用。

  • 此版本之前的所有 EA RIM 证书将在发布 30 天后被撤销,状态为 PrivilegeWithdrawn。

  • 欲了解更多详细信息,请访问NVIDIA Trusted Computing Solutions - NVIDIA Docs。

1.2.3. CUDA 编译器

  • 有关 PTX 的更改,请参阅PTX ISA 8.4。

  • 添加了__maxnreg__内核函数限定符,允许用户直接指定在 CUDA C++ 中线程块中分配给单个线程的最大寄存器数量。

  • 添加了一个新标志-fdevice-syntax-only,用于在前端语法检查后结束设备编译。此选项可以提供源代码更改的快速反馈(警告和错误),因为它不会调用优化器。注意:此选项不会生成有效的目标代码。

  • -minimal为 NVRTC 编译添加新标志。该-minimal标志省略了某些语言功能以减少小程序的编译时间。特别是,省略了以下内容:

    • 纹理和表面函数以及关联类型(例如cudaTextureObject_t)。

    • cudadevrt 设备代码库提供的 CUDA 运行时函数,通常以前缀“cuda”命名,例如cudaMalloc.

    • 从设备代码启动内核。

    • 与 CUDA 运行时和驱动程序 API 关联的类型和宏,由 提供cuda/tools/cudart/driver_types.h,通常以前缀“cuda”命名,例如cudaError_t

  • 从 CUDA 12.4 开始,-pic当编译模式为整个程序编译时,PTXAS 默认启用位置无关代码 ( )。-pic=false用户可以通过指定PTXAS 选项来选择退出。默认情况下,调试编译和单独编译继续禁用位置无关代码。将来,位置无关的代码将允许 CUDA 驱动程序跨上下文共享文本部分的单个副本,并减少驻留内存的使用。

1.2.4. CUDA 开发者工具

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

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

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

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

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

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

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

1.3. 已解决的问题

1.3.1. 通用CUDA

  • 修复了在初始化之前使用 MMA 指令输入时可能发生的编译器崩溃问题。

1.3.2. CUDA 编译器

  • 在某些情况下,dp4a或者dp2a指令会在 ptx 中生成,并由于整数溢出而导致不正确的行为。此问题已在 CUDA 12.4 中修复。

1.4. 已弃用或删除的功能

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

1.4.1. 已弃用的架构

CUDA Toolkit 12.4 不再支持 NVIDIA CUDA 对 PowerPC 架构的支持。对此架构的支持已被视为已弃用,并将在即将发布的版本中删除。

1.4.2. 已弃用的操作系统

CUDA Toolkit 12.4 不再支持 Red Hat Enterprise Linux 7 和 CentOS 7。即将发布的版本中将删除对这些操作系统的支持。

1.4.3. 已弃用的工具链

CUDA Toolkit 12.4 不再支持以下主机编译器:

  • 微软 Visual C/C++ (MSVC) 2017

  • GCC 7.3 之前的所有 GCC 版本

1.4.4. CUDA工具

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

2.CUDA库

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

  • CUDA Math Libraries 工具链使用 C++11 功能,并且主机上需要 C++11 兼容的标准库 (libstdc++ >= 20150422)。

  • 所有库都删除了对以下计算功能的支持:

    • sm_35(开普勒)

    • sm_37(开普勒)

2.1. cuBLAS 库

2.1.1. cuBLAS:版本 12.4

  • 新功能

    • cuBLAS 添加了实验性 API,以支持单精度和双精度的分组批量 GEMM。单精度还支持数学模式,CUBLAS_TF32_TENSOR_OP_MATH. 分组批处理模式允许您同时求解不同维度(m、n、k)、主维度(lda、ldb、ldc)、转置(transa、transb)和缩放因子(alpha、beta)的 GEMM。请参阅cublas<t>gemmGroupedBatched <https://docs.nvidia.com/cuda/cublas/index.html#cublas-t-gemmgroupedbatched>__了解更多详细信息。

  • 已知的问题

    • 当使用 创建当前上下文时cuGreenCtxCreate(),cuBLAS 无法正确检测可用 SM 的数量。用户可以使用 API(例如 )向 cuBLAS 提供校正后的 SM 计数cublasSetSmCountTarget()

    • 当 alpha 为零且指针模式设置为 时,BLAS 级别 2 和 3 函数可能不会以 BLAS 兼容方式处理 alpha CUBLAS_POINTER_MODE_DEVICE。这与 cuBLAS 12.3 Update 1 中记录的已知问题相同。

    • cublasLtMatmulK 等于 1,尾声CUBLASLT_EPILOGUE_D{RELU,GELU}_BGRAD可以越界访问工作区。该问题自 cuBLAS 11.3 Update 1 起就存在。

2.1.2. cuBLAS:版本 12.3 更新 1

  • 新功能

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

  • 已知的问题

    • 当 alpha 为零且指针模式设置为 时,BLAS 级别 2 和 3 函数可能不会以 BLAS 兼容方式处理 alpha CUBLAS_POINTER_MODE_DEVICE。预期的行为是跳过相应的计算。您可能会遇到以下问题: (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.

  • 已解决的问题

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

    • 当使用 CUDA Toolkit 12.2 update 1 或更早版本中的 cuBLASLt 编译的应用程序使用 CUDA Toolkit 12.2 update 2 或 CUDA Toolkit 12.3 中的 cuBLASLt 运行时,使用 初始化的矩阵乘法描述符有时cublasLtMatmulDescInit()不考虑使用cublasLtMatmulDescSetAttribute().

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

    • cublasLtMatmul当 K 等于 1 时,尾声CUBLASLT_EPILOGUE_BGRAD{A,B}可能会返回错误的偏差梯度结果。

    • cublasLtMatmulK 等于 1,CUBLASLT_EPILOGUE_D{RELU,GELU}如果没有提供工作空间,尾声可能会产生非法内存访问。该问题自 cuBLAS 11.6 起就存在。

    • cublasLtMatmul使用 A 和 B 类型 equal CUDA_R_8I、scale 和 C 类型 equalCUDA_R_32I以及计算类型 equalsCUBLAS_COMPUTE_32I{,_PEDANTIC}可能会错误地将结果转换为浮点数据类型,然后返回整数,从而导致精度损失(对于大于 2^24 的输出)。该问题自 cuBLAS 11.0 起就存在。

    • 当在 CUDA Graph 流捕获中捕获时,cuBLAS 例程可以通过使用流排序分配 APIcudaMallocAsynccudaFreeAsync. 但是,由于当前不支持子图或从设备启动的图中的内存节点,因此在这种情况下尝试捕获 cuBLAS 例程可能会失败。为了避免此问题,请使用该cublasSetWorkspace()函数来提供用户拥有的工作区内存。

2.1.3. cuBLAS:版本 12.3

  • 新功能

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

  • 已知的问题

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

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

2.1.4. cuBLAS:版本 12.2 更新 2

  • 新功能

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

  • 已知的问题

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

2.1.5。cuBLAS:版本 12.2

  • 已知的问题

    • 当 MPS 设置CUDA_MPS_ACTIVE_THREAD_PERCENTAGE为小于 100% 的值时,cuBLAS 初始化在 Hopper 架构 GPU 上失败。目前没有针对此问题的解决方法。

    • CUBLASLT_EPILOGUE_RELU_BIAS某些 Hopper 内核对于带有orCUBLASLT_EPILOGUE_GELU_BIAS和非零的批处理 matmuls 会产生错误的结果CUBLASLT_MATMUL_DESC_BIAS_BATCH_STRIDE。内核将第一批的偏差向量应用于所有批次。这将在未来版本中修复。

2.1.6。cuBLAS:版本 12.1 更新 1

  • 新功能

    • 支持 NVIDIA Ada GPU 上的 FP8。

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

    • 引入了一个 API,指示 cuBLASLt 库不要使用某些 CPU 指令。这在极少数情况下非常有用,在这种情况下,cuBLASLt 启发式使用的某些 CPU 指令会对 CPU 性能产生负面影响。请参阅cuBLAS。

  • 已知的问题

    • 使用该函数创建矩阵布局时cublasLtMatrixLayoutCreate(),所指向的对象cublasLtMatrixLayout_t小于cublasLtMatrixLayoutOpaque_t(但足以容纳内部结构)。因此,不应显式取消引用或复制该对象,因为这可能会导致越界访问。如果需要序列化布局或复制它,建议手动分配一个 sizesizeof(cublasLtMatrixLayoutOpaque_t)字节的对象,并使用cublasLtMatrixLayoutInit()函数初始化它。这同样适用于cublasLtMatmulDesc_tcublasLtMatrixTransformDesc_t。该问题将在未来版本中通过确保cublasLtMatrixLayoutCreate()分配至少sizeof(cublasLtMatrixLayoutOpaque_t)字节来解决。

2.1.7. cuBLAS:版本 12.0 更新 1

  • 新功能

    • 改进了 NVIDIA H100 SXM 和 NVIDIA H100 PCIe GPU 的性能。

  • 已知的问题

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

  • 已解决的问题

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

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

2.1.8. cuBLAS:版本 12.0

  • 新功能

    • cublasLtMatmul现在支持非零 beta 的 FP8。

    • 添加了int64API 以支持更大的问题规模;参考64位整数接口。

    • cublasLtMatmul为尾声添加了更多 Hopper 特定的内核:

      • CUBLASLT_EPILOGUE_BGRAD{A,B}

      • CUBLASLT_EPILOGUE_{RELU,GELU}_AUX

      • CUBLASLT_EPILOGUE_D{RELU,GELU}

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

  • 已知的问题

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

  • 已解决的问题

    • 修复了 NVIDIA Ampere 架构和较新 GPU 上的问题,其中cublasLtMatmul使用尾声CUBLASLT_EPILOGUE_BGRAD{A,B}和非平凡的缩减方案(即,不是CUBLASLT_REDUCTION_SCHEME_NONE)可能会返回错误的偏差梯度结果。

    • cublasLtMatmul对于类似 gemv 的情况(即 m 或 n 等于 1),可能会忽略CUBLASLT_EPILOGUE_RELU_BIASCUBLASLT_EPILOGUE_BIAS尾声的偏差。

    弃用

    • 禁止在同一翻译单元中包含cublas.h和。cublas_v2.h

    • 删除:

      • CUBLAS_MATMUL_STAGES_16x80CUBLAS_MATMUL_STAGES_64x80cublasLtMatmulStages_t. 没有内核再利用这些阶段。

      • cublasLt3mMode_tCUBLASLT_MATMUL_PREF_MATH_MODE_MASK、 和CUBLASLT_MATMUL_PREF_GAUSSIAN_MODE_MASK来自cublasLtMatmulPreferenceAttributes_t。相反,使用 中的相应标志cublasLtNumericalImplFlags_t

      • CUBLASLT_MATMUL_PREF_POINTER_MODE_MASKCUBLASLT_MATMUL_PREF_EPILOGUE_MASK、 和CUBLASLT_MATMUL_PREF_SM_COUNT_TARGET来自cublasLtMatmulPreferenceAttributes_t。相应的参数直接取自cublasLtMatmulDesc_t.

      • CUBLASLT_POINTER_MODE_MASK_NO_FILTERINGcublasLtPointerModeMask_t。该面具仅适用于CUBLASLT_MATMUL_PREF_MATH_MODE_MASK被移除的人。

2.2. cuFFT 库

2.2.1. cuFFT:版本 12.4

  • 新功能

    • 添加了即时链接时间优化 (JIT LTO) 内核,以提高具有 64 位索引的 FFT 性能。

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

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

  • 已知的问题

    • cuFFT LTO EA 库中的例程被错误地添加到 cuFFT Advanced API 标头 ( cufftXt.h)。cuFFT 不支持此例程,并将在未来版本中从标头中删除。

  • 已解决的问题

    • 修复了使用用户指定的输出步长(即使用高级数据布局 APIostride的组件)执行异位实数到复数 (R2C) 转换时可能导致用户数据被覆盖的问题。

    • 修复了当和均为 时libcufftw和FFTW之间不一致的行为。从现在开始,就像在 FFTW 中一样,作为参数传递相当于传递 n,即该维度的逻辑大小。inembedonembednullptr / NULLnullptr / NULLinembed/onembed

2.2.2. cuFFT:版本 12.3 更新 1

  • 已知的问题

    • 在与用于创建计划的环境不同的上下文中执行实数到复杂 (R2C) 或复杂到实数 (C2R) 计划可能会导致未定义的行为。此问题将在即将发布的 cuFFT 版本中得到解决。

  • 已解决的问题

    • cufftExec现在,如果在内核启动期间出现错误(例如由于缺少 CUDA 上下文),复杂到复杂 (C2C) 执行函数(及类似函数)可以正确地错误输出。

2.2.3. cuFFT:版本 12.3

  • 新功能

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

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

    • 略微改进了某些 FFT 大小的规划时间。

2.2.4. cuFFT:版本 12.2

  • 新功能

    • cufftSetStream可以在多 GPU 计划中使用来自任何 GPU 上下文的流,而不是来自 中列出的第一个 GPU 的主要上下文cufftXtSetGPUs

    • 改进了 1000 多个大小范围为 62 到 16380 的 FFT 的性能。改进的性能涵盖数百个具有连续数据布局的 FFT 的单精度和双精度情况,通过 PTX JIT 跨多个 GPU 架构(从 Maxwell 到 Hopper GPU)。

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

  • 已解决的问题

    • 当线程同时创建和访问活动计划超过 1023 个的计划时,cuFFT 不再出现竞争状况。

    • 当多个线程同时调用时,cuFFT 不再表现出竞争条件cufftXtSetGPUs

2.2.5。cuFFT:版本 12.1 更新 1

  • 已知的问题

    • cufftCreate当一个线程调用( 或cufftDestroy) 而另一个线程调用任何 API(除了cufftCreatecufftDestroy),并且当活动计划总数超过 1023 时,cuFFT 会出现竞争状况。

    • 当多个线程同时调用不同的计划时,cuFFT 会出现竞争情况cufftXtSetGPUs

2.2.6。cuFFT:版本 12.1

  • 新功能

    • 改进了 Hopper GPU 上数百个大小范围从 14 到 28800 的 FFT 的性能。改进的性能涵盖超过 542 个具有连续数据布局的单精度和双精度 FFT 案例。

  • 已知的问题

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

  • 已解决的问题

    • 如果计划创建时使用的 CUDA 上下文在程序退出之前被销毁,则 cuFFT 在程序退出时不再产生计算清理程序错误。

2.2.7. cuFFT:版本 12.0 更新 1

  • 已解决的问题

    • 多 GPU、单批次、1D FFT 的暂存空间要求有所降低。

2.2.8. cuFFT:版本 12.0

  • 新功能

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

  • 已知的问题

    • 由于 PTX JIT 编译,cuFFT 计划生成时间增加。请参阅计划初始化时间。

  • 已解决的问题

    • cuFFT 计划的每个计划都会无意中产生少量内存开销(几 kB)。这已解决。

2.3. cuSOLVER 库

2.3.1. cuSOLVER:版本 12.4

  • 新功能

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

  • 已知的问题

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

2.3.2. cuSOLVER:版本 12.2 更新 2

  • 已解决的问题

    • cusolverDn<t>gesvd()修复了、cusolverDnGesvd()和 的问题,如果或不等于 ' ' cusolverDnXgesvd(),则可能会导致大于 18918 的矩阵出现错误结果。jobujobvtN

2.3.3. cuSOLVER:版本 12.2

  • 新功能

    • 新的 API 可确保确定性结果或允许非确定性结果以提高性能。参见cusolverDnSetDeterministicMode()cusolverDnGetDeterministicMode()。受影响的函数有:cusolverDn<t>geqrf()cusolverDn<t>syevd()cusolverDn<t>syevdx()cusolverDn<t>gesvdj()cusolverDnXgeqrf()cusolverDnXsyevd()cusolverDnXsyevdx()cusolverDnXgesvdr()、 和cusolverDnXgesvdp()

  • 已知的问题

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

2.4. cuSPARSE库

2.4.1. cuSPARSE:版本 12.4

  • 新功能

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

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

    • 添加了一个新的 API,cusparseSpSM_updateMatrix()用于在 的分析和求解阶段之间更新稀疏矩阵cusparseSpSM()

  • 已知的问题

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

  • 已解决的问题

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

2.4.2. cuSPARSE:版本 12.3 更新 1

  • 新功能

    • 在 BSR SDMM 中添加了对 64 和 128 块大小的支持。

    • 为 BSR SDMM 添加了预处理步骤,有助于提高主计算阶段的性能。

2.4.3. cuSPARSE:版本 12.3

  • 新功能

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

    • 和例程现在接受带有 NULL 值指针cusparseSpSM_bufferSize()cusparseSpSM_analysis()密集矩阵描述符。

  • 已知的问题

    • cusparseSpSV_analysis()和例程cusparseSpSM_analysis()是阻塞调用/不是异步的。

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

  • 已解决的问题

    • cusparseSpMV()现在支持具有最小对齐的输出向量。

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

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

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

2.4.4. cuSPARSE:版本 12.2 更新 1

  • 新功能

    • 该库现在提供了在创建描述符期间将稀疏矩阵转储到文件以进行调试的机会。请参阅日志记录 API 1. Introduction — cuSPARSE 12.4 documentation。

  • 已解决的问题

    • 删除了CUSPARSE_SPMM_CSR_ALG3后备以避免算法选择过程中的混乱。

    • 澄清了支持的操作cusparseSDDMM()

    • cusparseCreateConstSlicedEll()现在使用const指针。

    • cusparseCsr2CscEx2()修复了使用基数 1 索引的罕见边缘情况下的错误结果。

    • cusparseSpSM_bufferSize()可以要求比需要的内存稍少的内存。

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

  • 弃用

    • 一些旧版 API 已被正式弃用。所有这些都添加了编译时警告。

2.4.5。cuSPARSE:版本 12.1 更新 1

  • 新功能

    • 为通用 API 引入了块稀疏行 (BSR) 稀疏矩阵存储,并支持 SDMMM 例程 ( cusparseSDDMM)。

    • 为通用 API 引入了 Sliced Ellpack (SELL) 稀疏矩阵存储格式,支持稀疏矩阵向量乘法 ( cusparseSpMV) 和具有单个右侧的三角求解器 ( cusparseSpSV)。

    • 添加了新的 API 调用 ( cusparseSpSV_updateMatrix),以在分析步骤后使用单个右侧更新稀疏三角求解器中的矩阵值和/或矩阵对角线。

2.4.6。cuSPARSE:版本 12.0 更新 1

  • 新功能

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

    • 改进了cusparseSpMM()NVIDIA Ampere 架构 GPU 上某些矩阵的 alg2 混合精度性能。

    • cusparseSpMV()通过新的负载平衡算法提高了性能。

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

  • 已解决的问题

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

2.4.7. cuSPARSE:版本 12.0

  • 新功能

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

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

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

    • 添加了对、和 的int8_t支持。cusparseGather()cusparseScatter()cusparseCsr2cscEx2()

    • 提高了cusparseSpSV()分析和求解阶段的性能。

    • 提高了cusparseSpSM()分析和求解阶段的性能。

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

    • 提高cusparseCsr2cscEx2()性能。

  • 已解决的问题

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

    • cusparseDnMatGetStridedBatch()不接受。batchStride == 0

  • 弃用

    • 删除了已弃用的 CUDA 11.x API、枚举器和描述符。

2.5. 数学库

2.5.1. CUDA 数学:版本 12.4

  • 已解决的问题

    • 标头中的主机特定代码cuda_fp16/bf16现在不受类型双关的影响,并且在存在基于严格别名规则的优化的情况下可以正常工作。

2.5.2. CUDA 数学:版本 12.3

  • 新功能

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

  • 已解决的问题

    • 由于底层 nvcc 编译器问题(在版本 12.3 中已解决),如果使用编译器选项进行编译,来自和标头的__hisinf()数学 API会默默地产生错误结果。cuda_fp16.hcuda_bf16.h-std=c++20

  • 已知的问题

    • cuda_fp16.h建议和头文件的用户cuda_bf16.h禁用主机编译器基于严格别名规则的优化(例如传递给主机 GCC 编译器),因为这些可能会干扰、、、类型实现-fno-strict-aliasing中使用的类型双关惯用法,并使用户程序暴露于未定义的行为。请注意,标头通过以下方式抑制 GCC 诊断:#pragma GCC 诊断被忽略。此行为可能会在标头的未来版本中得到改进。__half__half2__nv_bfloat16__nv_bfloat162-Wstrict-aliasing

2.5.3. CUDA 数学:版本 12.2

  • 新功能

    • CUDA Math API__half__nv_bfloat16类型获得了可用性改进,包括主机端对许多算术运算和转换的<emulated> 支持。

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

      • __CUDA_FP16_DISABLE_IMPLICIT_INTEGER_CONVERTS_FOR_HOST_COMPILERS__

      • __CUDA_BF16_DISABLE_IMPLICIT_INTEGER_CONVERTS_FOR_HOST_COMPILERS__

  • 已解决的问题

    • 在正在进行的测试中,NVIDIA 发现由于算法错误,默认舍入到最近偶数模式下的 64 位浮点除法结果可能会产生无穷大的虚假溢出。NVIDIA 建议所有需要严格 IEEE754 合规性的开发人员更新到 CUDA Toolkit 12.2 或更高版本。受影响的算法存在于离线编译和即时 (JIT) 编译中。由于 JIT 编译由驱动程序处理,因此当需要 IEEE754 合规性以及使用 JIT 时,NVIDIA 建议更新到大于或等于 R535(Windows 上为 R536)的驱动程序版本。这是软件算法修复,与特定硬件无关。

    • __expf()更新了单精度固有函数和双__exp10f()精度函数观察到的最坏情况误差范围asinh()acosh()

2.5.4. CUDA 数学:版本 12.1

  • 新功能

    • atanfacosfasinfsinpifcospifpowferff和中的性能和准确性改进tgammaf

2.5.5。CUDA 数学:版本 12.0

  • 新功能

    • 引入了新的整数/fp16/bf16 CUDA 数学 API,以帮助展示新 DPX 指令的性能优势。请参阅CUDA Math API :: CUDA Toolkit Documentation。

  • 已知的问题

    • 导致双精度除法算法在默认“舍入到最接近的偶数模式”下的双精度输入会产生虚假溢出:在预期的位置传递无限结果。受影响的 CUDA 数学 API:. 受影响的CUDA语言操作:双精度/设备代码中的操作。DBL_MAX 0x7FEF_FFFF_FFFF_FFFF__ddiv_rn()

  • 弃用

    • 所有以前弃用的未记录的 API 均已从 CUDA 12.0 中删除。

2.6。NVIDIA 性能基元 (NPP)

2.6.1. NPP:版本 12.4

  • 新功能

    • 增强了大文件支持size_t

2.6.2. NPP:版本 12.0

  • 弃用

    • 从下一版本开始弃用非 CTX API 支持。

  • 已解决的问题

    • NPP ResizeSqrPixelAPI 的性能问题现已修复,并且性能得到改善。

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

  • 新功能

    • nvjpegBufferPinnedResize新API:nvjpegBufferDeviceResize可用于在使用固定缓冲区和设备缓冲区之前调整其大小。

2.7.3. nvJPEG:版本 12.2

  • 新功能

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

    • L4T 现在支持 nvJPEG。

2.7.4. nvJPEG:版本 12.0

  • 新功能

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

  • 已解决的问题

    • nvJPEGDecMultipleInstances解决了使用大量线程进行测试时导致运行时失败的问题。

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

  • 已知的问题

    • 后端NVJPEG_BACKEND_GPU_HYBRID- 无法处理具有额外扫描长度的比特流。

  • 弃用

    • Encoder中哈夫曼表的复用(nvjpegEncoderParamsCopyHuffmanTables)。

1

仅适用于选定的 Linux 发行版

3、注意事项

3.1. 注意

本文档仅供参考,不应被视为对产品特定功能、状况或质量的保证。NVIDIA Corporation(“NVIDIA”)对本文档中包含的信息的准确性或完整性不做任何明示或暗示的陈述或保证,并且对本文中包含的任何错误不承担任何责任。NVIDIA 对此类信息的后果或使用或因使用此类信息而可能导致的任何专利或第三方其他权利的侵犯不承担任何责任。本文档不承诺开发、发布或交付任何材料(定义如下)、代码或功能。

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

客户应在下订单前获取最新的相关信息,并应验证该等信息是最新且完整的。

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

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

NVIDIA 不声明或保证基于本文档的产品适合任何指定用途。每个产品的所有参数的测试不一定由 NVIDIA 进行。客户全权负责评估和确定本文档中包含的任何信息的适用性,确保产品适合并适合客户计划的应用,并对应用程序执行必要的测试,以避免应用程序出现故障或产品。客户产品设计中的缺陷可能会影响 NVIDIA 产品的质量和可靠性,并可能导致超出本文档中包含的条件和/或要求的其他或不同的条件和/或要求。NVIDIA 不承担与任何违约、损坏、费用、

本文档中的任何 NVIDIA 专利权、版权或其他 NVIDIA 知识产权均未授予任何明示或暗示的许可。NVIDIA 发布的有关第三方产品或服务的信息并不构成 NVIDIA 使用此类产品或服务的许可,也不构成其保证或认可。使用此类信息可能需要第三方根据其专利或其他知识产权获得许可,或者根据 NVIDIA 的专利或其他知识产权获得 NVIDIA 许可。

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

本文档以及所有 NVIDIA 设计规范、参考板、文件、图纸、诊断、列表和其他文档(统称或单独称为“材料”)均按“原样”提供。NVIDIA 不对这些材料做出任何明示、暗示、法定或其他形式的保证,并明确否认对非侵权、适销性和特定用途适用性的所有默示保证。在法律不禁止的范围内,在任何情况下,NVIDIA 均不对任何损害承担责任,包括但不限于任何直接、间接、特殊、附带、惩罚性或后果性损害,无论其原因如何,也无论责任理论如何,对本文档的任何使用,即使 NVIDIA 已被告知可能会造成此类损害。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/781562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ES6 学习(二)-- 字符串/数组/对象/函数扩展

文章目录 1. 模板字符串1.1 ${} 使用1.2 字符串扩展(1) ! includes() / startsWith() / endsWith()(2) repeat() 2. 数值扩展2.1 二进制 八进制写法2.2 ! Number.isFinite() / Number.isNaN()2.3 inInteger()2.4 ! 极小常量值Number.EPSILON2.5 Math.trunc()2.6 Math.sign() 3.…

仓库规划(plan)

明天就要考试了&#xff0c;但是我正处于一点都不想学的状态 高考前我也是这样的 逆天 代码如下&#xff1a; #include<vector> #include<cstdio> using namespace std; int n, m; struct Node{int id;vector<int> d;bool operator<(const Node &t…

平台介绍-搭建赛事运营平台(8)

平台介绍-搭建赛事运营平台&#xff08;5&#xff09;提到了字典是分级的&#xff0c;本篇具体介绍实现。 平台级别的代码是存储在核心库中&#xff0c;品牌级别的代码是存储在品牌库中&#xff08;注意代码类是一样的&#xff09;。这部分底层功能封装为jar包&#xff0c;然后…

matlab BP神经网络回归预测(套用任何数据不改代码,最后一列是标签)

部分代码&#xff1a; %% BP神经网络 % 清空环境变量 关闭打开过的图表 clear all;clc;close all %% 导入数据 dataxlsread(data1.xlsx); %% 设置训练集数量 num_rowsize(data,1) %数据集行数 n_trainsfloor(num_row*0.8) %按比例求训练集数目 % n_trains150 …

JDK和IntelliJ IDEA下载和安装及环境配置教程

一、JDK下载&#xff08;点击下方官网链接&#xff09; Java Downloads | Oracle 选择对应自己电脑系统往下拉找到自己想要下载的JDK版本进行下载&#xff0c;我下的是jdk 11&#xff0c;JDK有安装版和解压版&#xff0c;我就直接下安装版的了。 .exe和.zip的区别&#xff1a…

通过MobaXterm工具可视化服务器桌面

一、MobaXterm工具 MobaXterm是一款功能强大的远程连接工具&#xff0c;可以连接到各种类型的服务器&#xff0c;包括Linux、Windows和MacOS。支持多种协议&#xff0c;包括SSH、RDP、VNC和Telnet MobaXterm可以通过X11转发功能可视化服务器桌面。 二、MobaXterm工具可视化服务…

011——人体感应模块驱动开发(SR501)

目录 一、 模块简介 二、 工作原理 三、 软件及验证 一、 模块简介 人体都有恒定的体温&#xff0c;一般在 37 度&#xff0c;所以会发出特定波长 10uM 左右的红外线&#xff0c;被动式红外探头就是靠探测人体发射的 10uM 左右的红外线而进行工作的。 人体发射的 10…

高等代数复习:矩阵秩的基本公式

文章目录 矩阵秩的基本公式初等变换方法线性方程组方法 本篇文章适合个人复习翻阅&#xff0c;不建议新手入门使用 矩阵秩的基本公式 均记矩阵 A A A 的秩为 r ( A ) r(A) r(A) 初等变换方法 结论1&#xff1a; r ( k A ) r ( A ) , ∀ k ≠ 0 r(kA)r(A),\forall k\neq …

架构师之路--Docker的技术学习路径

Docker 的技术学习路径 一、引言 Docker 是一个开源的应用容器引擎&#xff0c;它可以让开发者将应用程序及其依赖包打包成一个可移植的容器&#xff0c;然后在任何支持 Docker 的操作系统上运行。Docker 具有轻量级、快速部署、可移植性强等优点&#xff0c;因此在现代软件开…

Hides for Mac:应用程序隐藏工具

Hides for Mac是一款功能强大的应用程序隐藏工具&#xff0c;专为Mac用户设计。它能够帮助用户快速隐藏当前正在运行的应用程序窗口&#xff0c;保护用户的隐私和工作内容&#xff0c;避免不必要的干扰。 软件下载&#xff1a;Hides for Mac下载 Hides for Mac的使用非常简单直…

python处理字典之表格-城市排行榜

# 中国城市排行榜 import xlrd bookxlrd.open_workbook(city_data.xls) sheetbook.sheet_by_index(0) main_data_list[] for row in range(3,sheet.nrows):temp_dict{}# print(sheet.row_values(row))temp_dict["城市"]sheet.row_values(row)[0]temp_dict["2019…

电脑换屏总结——关于我把电脑砸了这件事!

大家好&#xff0c;我是工程师看海&#xff0c;很高兴和各位一起分享我的原创文章&#xff0c;喜欢和支持我的工程师&#xff0c;一定记得给我点赞、收藏、分享哟。 加微信[chunhou0820]与作者进群沟通交流。 【淘宝】https://m.tb.cn/h.5PAjLi7?tkvmMLW43KO7q CZ3457 「运放秘…

vite+vue3使用模块化批量发布Mockjs接口

在Vue3项目中使用Mock.js可以模拟后端接口数据&#xff0c;方便前端开发和调试。下面是使用vitevue3使用模块化批量发布Mockjs接口的步骤&#xff1a; 1. 安装Mock.js 在Vue3项目的根目录下&#xff0c;使用以下命令安装Mock.js&#xff1a; npm install mockjs --save-dev …

项目亮点—动态线程池管理工具

问题 你是否在项目中使用线程池遇到过以下问题&#xff1f; 1.创建线程池核心参数不好评估&#xff0c;随着业务流量的波动&#xff0c;极有可能出现生产故障。 2.不支持优雅关闭&#xff0c;当项目关闭时&#xff0c;大量正在运行的线程池任务被丢弃。 3.不支持运行时监控…

Linux安装wine

#教程 一直以来&#xff0c;我运行双系统&#xff0c;有两个软件必须在window下运行&#xff0c;一个是wind金融终端&#xff0c;一个是通达信金融终端&#xff0c;现已解决这两个软件在linux&#xff08;debian系&#xff09;环境下运行问题&#xff0c;记录如下&#xff1a;…

WebGIS开发

1.准备工作 高德开发API注册账号&#xff0c;创建项目拿到key和密钥 高德key 2.通过JS API引入高德API <html><head><meta charset"utf-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><metaname&quo…

【3D-GS】Gaussian Splatting SLAM——基于3D Gaussian Splatting的全网最详细的解析

【3D-GS】Gaussian Splatting SLAM——基于3D Gaussian Splatting的定SLAM 3D-GS 与 Nerf 和 Gaussian Splatting1. 开山之作 Nerf2. 扛鼎之作 3D Gaussian Splatting2.1 什么是3D高斯?高斯由1D推广到3D的数学推导2.2 什么是光栅化?2.3 什么是Splatting?2.4 什么是交叉优化?…

AWS EC2 学习之: 使用 PuTTY 从 Windows 连接到 Linux 实例

启动您的实例之后&#xff0c;您可以连接到该实例&#xff0c;然后像使用您面前的计算机一样来使用它。 注意 启动实例后&#xff0c;需要几分钟准备好实例&#xff0c;以便您能连接到实例。检查您的实例是否通过了状态检查。您可以在 Instances 页上的 Status Checks 列中查…

什么是防火墙,部署防火墙有什么好处?

与我们的房屋没有围墙或界限墙一样&#xff0c;没有防护措施的计算机和网络将容易受到黑客的入侵&#xff0c;这将使我们的网络处于巨大的风险之中。因此&#xff0c;就像围墙保护我们的房屋一样&#xff0c;虚拟墙也可以保护和安全我们的设备&#xff0c;使入侵者无法轻易进入…

如何处理网络编程中的并发连接?

如何处理网络编程中的并发连接&#xff1f; 在网络编程中&#xff0c;处理并发连接是一个至关重要的问题。随着网络应用的普及和用户量的增长&#xff0c;服务器需要同时处理来自多个客户端的请求&#xff0c;因此必须有效地管理并发连接。下面将详细讨论如何处理网络编程中的…