본문 바로가기

컴퓨터/노트북/인터넷

IT 컴퓨터 기기를 좋아하는 사람들의 모임방

조회 수 594 추천 수 0 댓글 0

단축키

Prev이전 문서

Next다음 문서

단축키

Prev이전 문서

Next다음 문서

Extra Form

앞으로 나올 CUDA 툴킷에서는 맥스웰, 파스칼, 볼타 같은 이전 세대 GPU를 지원하지 않습니다. 

 

 

 

 




 

1. CUDA 12.9 릴리스 노트

NVIDIA® CUDA® 툴킷에 대한 릴리스 노트는 https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html 에서 온라인으로 확인할 수 있습니다 .

메모

릴리스 노트는 두 개의 주요 섹션으로 재구성되었습니다. 일반 CUDA 릴리스 노트와 12.x 릴리스에 대한 기록 정보를 포함하는 CUDA 라이브러리 릴리스 노트입니다.

1.1. CUDA 툴킷 주요 구성 요소 버전

CUDA 구성 요소

CUDA 11부터 툴킷의 다양한 구성 요소가 독립적으로 버전이 지정됩니다.

CUDA 12.9의 경우 아래 표는 버전을 나타냅니다.

표 1 CUDA 12.9 구성 요소 버전

구성 요소 이름

버전 정보

지원되는 아키텍처

지원 플랫폼

CUDA C++ 코어 컴퓨트 라이브러리

추력

2.8.0

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우

견습생

2.8.0

libcu++

2.8.0

협동조합 그룹

12.9.27

CUDA 호환성

12.9.39767389

aarch64-jetson

리눅스

CUDA 런타임(cudart)

12.9.37

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

cuobjdump

12.9.26

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우

컵티

19년 12월 9일

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

CUDA cuxxfilt(디매글러)

19년 12월 9일

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우

CUDA 데모 스위트

19년 12월 9일

x86_64

리눅스, 윈도우

CUDA 문서

12.9.43

x86_64

리눅스, 윈도우

쿠다 GDB

19년 12월 9일

x86_64, arm64-sbsa, aarch64-jetson

리눅스, WSL

CUDA Nsight Eclipse 플러그인

19년 12월 9일

x86_64

리눅스

쿠다 NVCC

12.9.41

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

CUDA nvdisasm

19년 12월 9일

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우

CUDA NVML 헤더

12.9.40

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

CUDA nvprof

19년 12월 9일

x86_64

리눅스, 윈도우

CUDA nvprune

19년 12월 9일

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

CUDA NVRTC

12.9.41

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

엔비티엑스

19년 12월 9일

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

쿠다 NVVP

19년 12월 9일

x86_64

리눅스, 윈도우

CUDA 오픈CL

19년 12월 9일

x86_64

리눅스, 윈도우

CUDA 프로파일러 API

19년 12월 9일

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

CUDA 컴퓨트 살균 API

12.9.27

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

쿠다 쿠블라스

12.9.0.13

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

cuDLA

19년 12월 9일

aarch64-jetson

리눅스

쿠다 cuFFT

11.4.0.6

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

CUDA cuFile

1.14.0.30

x86_64, arm64-sbsa, aarch64-jetson

리눅스

쿠다 쿠란드

10.3.10.19

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

CUDA cuSOLVER

11.7.4.40

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

쿠다 쿠스파스

12.5.9.5

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

쿠다 원자력 발전소

12.4.0.27

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

CUDA nvFatbin

19년 12월 9일

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

CUDA nvJitLink

12.9.41

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

CUDA nvJPEG

12.4.0.16

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL

Nsight 컴퓨팅

2025.2.0.11

x86_64, arm64-sbsa, aarch64-jetson

리눅스, 윈도우, WSL(윈도우 11)

엔사이트 시스템즈

2025.1.3.140

x86_64, arm64-sbsa

리눅스, 윈도우, WSL

Nsight Visual Studio 에디션(VSE)

2025.2.0.25082

x86_64(윈도우)

윈도우

엔비디아_FS 1

2.25.6

x86_64, arm64-sbsa, aarch64-jetson

리눅스

Visual Studio 통합

19년 12월 9일

x86_64(윈도우)

윈도우

NVIDIA Linux 드라이버

575.51.03

x86_64, arm64-sbsa

리눅스

NVIDIA Windows 드라이버

576.02

x86_64(윈도우)

윈도우, WSL

CUDA 드라이버

CUDA 애플리케이션을 실행하려면 시스템에 최소 하나 이상의 CUDA 지원 GPU와 CUDA 툴킷과 호환되는 드라이버가 필요합니다. 표 3을 참조하십시오 . CUDA 지원 GPU 제품에 대한 자세한 내용은 https://developer.nvidia.com/cuda-gpus를 방문하십시오 .

CUDA 툴킷의 각 릴리스에는 최소 버전의 CUDA 드라이버가 필요합니다. CUDA 드라이버는 이전 버전과 호환되므로 특정 버전의 CUDA로 컴파일된 애플리케이션은 이후 드라이버 릴리스에서도 계속 작동합니다.

호환성에 대한 자세한 내용은 https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html#cuda-compatibility-and-upgrades 에서 확인할 수 있습니다 .

참고 : 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 드라이버 버전

쿠다 12.x

>=525.60.13

>=528.33

쿠다 11.8.x 쿠다 11.7.x 쿠다 11.6.x 쿠다 11.5.x 쿠다 11.4.x 쿠다 11.3.x 쿠다 11.2.x 쿠다 11.1.x

>=450.80.02

>=452.39

쿠다 11.0(11.0.3)

>=450.36.06**

>=451.22**

* 호환 모드에서는 툴킷 드라이버 버전과 다른 최소 요구 버전을 사용할 수 있습니다. 자세한 내용은 CUDA 호환성 가이드를 읽어보세요.

** CUDA 11.0은 이전 드라이버 버전과 함께 출시되었지만 Tesla Recommended Drivers 450.80.02(Linux) / 452.39(Windows)로 업그레이드하면 CUDA 11.x 툴킷 제품군 전체에서 하위 버전 호환성이 가능해집니다.

각 CUDA 툴킷 릴리스에 포함된 개발 NVIDIA GPU 드라이버의 버전은 아래와 같습니다.

표 3 CUDA 툴킷 및 해당 드라이버 버전

CUDA 툴킷

툴킷 드라이버 버전

 

Linux x86_64 드라이버 버전

Windows x86_64 드라이버 버전

쿠다 12.9 GA

>=575.51.03

>=576.02

CUDA 12.8 업데이트 1

>=570.124.06

>=572.61

쿠다 12.8 GA

>=570.26

>=570.65

CUDA 12.6 업데이트 3

>=560.35.05

>=561.17

CUDA 12.6 업데이트 2

>=560.35.03

>=560.94

CUDA 12.6 업데이트 1

>=560.35.03

>=560.94

쿠다 12.6 GA

>=560.28.03

>=560.76

CUDA 12.5 업데이트 1

>=555.42.06

>=555.85

쿠다 12.5 GA

>=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 GA

>=530.30.02

>=531.14

CUDA 12.0 업데이트 1

>=525.85.12

>=528.33

쿠다 12.0 GA

>=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

쿠다 11.6 GA

>=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 GA

>=455.23

>=456.38

CUDA 11.0.3 업데이트 1

>= 450.51.06

>= 451.82

쿠다 11.0.2 GA

>= 450.51.05

>= 451.48

쿠다 11.0.1 RC

>= 450.36.06

>= 451.22

쿠다 10.2.89

>= 440.33

>= 441.22

CUDA 10.1(10.1.105 일반 릴리스 및 업데이트)

>= 418.39

>= 418.96

쿠다 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

쿠다 8.0(8.0.44)

>= 367.48

>= 369.30

쿠다 7.5(7.5.16)

>= 352.31

>= 353.66

쿠다 7.0(7.0.28)

>= 346.46

>= 347.62

편의를 위해 NVIDIA 드라이버는 CUDA 툴킷 설치의 일부로 설치됩니다. 이 드라이버는 개발용이며 Tesla GPU를 사용하는 프로덕션 환경에서는 권장하지 않습니다.

Tesla GPU를 사용하여 프로덕션 환경에서 CUDA 애플리케이션을 실행하려면 https://www.nvidia.com/drivers 에 있는 NVIDIA 드라이버 다운로드 사이트에서 Tesla GPU용 최신 드라이버를 다운로드하는 것이 좋습니다 .

CUDA 툴킷을 설치하는 동안 Windows(대화형 또는 자동 설치 사용 시) 또는 Linux(메타 패키지 사용 시)에서는 NVIDIA 드라이버 설치를 건너뛸 수 있습니다.

Windows에서 설치 프로세스를 사용자 지정하는 방법에 대한 자세한 내용은 https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#install-cuda-software를 참조하세요 .

Linux의 메타 패키지에 대한 자세한 내용은 https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#package-manager-metas를 참조하세요 .

1.2. 새로운 기능

1.2.1. CUDA 일반

  • MPS 클라이언트 종료가 이제 Tegra 플랫폼에서 지원됩니다(L4T 사용자 - JetPack 7.0 이상부터). 자세한 내용은 여기에서 확인할 수 있습니다 .

  • CIG(그래픽의 확장 CUDA) 모드는 이제 Vulkan을 지원하여 기존의 DirectX 전용 구현을 넘어 확장되었습니다.

  • WDDM 및 MCDM 모드에서 드라이버를 사용하면 Windows에서 CPU NUMA 할당을 지원하여 cuMemCreate이전 에는 Linux에서만 가능했던 기능을 확장했습니다.cuMemAllocAsync

  • CUDA 그래프 기능이 향상되어 자식 그래프에 메모리 노드를 포함할 수 있게 되었습니다.

  • CUDA Toolkit 12.9는 SM 아키텍처 10.3( sm_103sm_103fsm_103a) 및 12.1( sm_121)에 대한 컴파일러 타겟 지원을 추가하여 각 변형에 대한 특정 최적화를 통해 최신 GPU 아키텍처에 대한 개발을 가능하게 합니다.

  • CUDA 툴킷 12.9는 새로운 대상 아키텍처 클래스인 제품군별 아키텍처에 대한 컴파일러 지원을 도입했습니다. 자세한 내용은 NVIDIA 블로그: 제품군별 아키텍처 기능에서 확인하세요.

  • NVML 및 nvidia-smi에 대한 다양한 개선 사항:

    • 다음과 같은 이유로 제한 시간에 대한 카운터(마이크로초)가 추가되었습니다.

      • nvmlClocksEventReasonGpuIdle

      • nvmlClocksEventReasonApplicationsClocksSetting

      • nvmlClocksEventReasonSwPowerCap

      • nvmlClocksThrottleReasonHwSlowdown

      • nvmlClocksEventReasonSyncBoost

      • nvmlClocksEventReasonSwThermalSlowdown

      • nvmlClocksThrottleReasonHwThermalSlowdown

      • nvmlClocksThrottleReasonHwPowerBrakeSlowdown

      • nvmlClocksEventReasonDisplayClockSetting

    • CUDA와 NVML 간 장치 식별의 일관성이 향상되었습니다.

    • NVML 칩 간(C2C) 원격 측정 API가 추가되었습니다.

    • CTXSW 메트릭 추가됨

    • GPU 평균 전력 카운터 구현

    • PCIe 바인딩/바인딩 해제 이벤트가 추가되었습니다.

1.2.2. CUDA 컴파일러

  • PTX 변경 사항에 대한 자세한 내용은 https://docs.nvidia.com/cuda/parallel-thread-execution/#ptx-isa-version-8-8을 참조하세요 .

  • --Ofast-compile=<level>nvcc, nvlink, nvrtc, ptxas에서 지원되는 새로운 컴파일러 옵션이 추가되었습니다 . 이 옵션은 다양한 수준의 최적화보다 빠른 컴파일을 우선시하여 개발 주기를 단축하는 데 도움이 됩니다. 자세한 내용은 빠른 컴파일 관련 문서를 참조하세요.

  • nvcc 및 nvrtc에서 지원되는 새로운 컴파일러 옵션이 추가되었습니다 --frandom-seed=<seed>. 사용자가 지정한 난수 시드는 심볼 이름과 변수 이름 생성에 사용되는 난수를 대체하는 데 사용됩니다. 이 옵션은 결정적으로 동일한 ptx 및 객체 파일을 생성하는 데 사용할 수 있습니다. 입력 값이 유효한 숫자(10진수, 8진수 또는 16진수)이면 난수 시드로 직접 사용됩니다. 그렇지 않으면 전달된 문자열의 CRC 값이 대신 사용됩니다. 호스트 컴파일러가 GCC 또는 Clang인 경우, NVCC는 -frandom-seed 옵션도 지원하므로 해당 옵션과 사용자가 지정한 값을 호스트 컴파일러에 전달합니다. 사용자는 파일마다 다른 시드를 할당해야 합니다.

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 컴파일러

  • 클래스 템플릿 인수로 사용된 람다 표현식이 함수 템플릿 내부에서 호출될 때 발생하는 세그먼테이션 오류가 해결되었습니다. [ 4610125 ]

  • 보호된 생성자를 상속할 때 발생하는 NVCC 내부 어설션이 해결되었습니다. [ 4840916 ]

  • 람다의 C++20 템플릿 매개변수 목록과 새로운 자동 구문으로 인해 nvcc가 실패하는 문제가 해결되었습니다. [ 4843349, 4843351 ]

  • 템플릿 람다에서 constexpr(concept) 사용과 관련된 잘못된 C++20 문제가 해결되었습니다. [ 4843720 ]

  • C++20과 함께 MSVC를 사용할 때 CUDA 12.6.1에서 발생하는 템플릿 컴파일 오류가 해결되었습니다. [ 4871089 ]

  • C++ 코드에서 잘못된 초기화로 인한 NVCC 문제가 해결되었습니다 . [ 3885996 ]std::vector of std::any

1.4. 알려진 문제

1.4.1. CUDA 컴파일러

  • 이번 릴리스에서는 유사 아키텍처 간의 호환성을 보장하는 새로운 메커니즘이 도입되었습니다( 패밀리별 명령어에 대한 자세한 내용은 CUDA 프로그래밍 가이드를 참조하십시오 ). 이 초기 릴리스에서는 일부 코드 경로에서 예상보다 긴 링크 및 로딩 시간이 발생할 수 있습니다. 이러한 오버헤드는 향후 소프트웨어 릴리스에서 줄어들 예정입니다.

  • CUDA 12.8부터 Ampere 스타일 MMA(예: mma.m16n8k16FP16)를 사용하는 커널, 특히 MMA 형태가 16x8x128인 커널에서 컴파일 오류가 발생하는 문제가 발견되었습니다. 이는 M, N, K 차원 중 어느 하나라도 16으로 나누어 떨어지지 않는 GEMM 연산을 수행할 때 fp8_e5m2, fp8_e4m3, fp16, bf16, int8 등의 정밀도에 영향을 미칩니다. 잘못 컴파일된 코드는 SM80SM90, 및 SM100아키텍처에서 "잘못된 메모리 액세스"와 같은 런타임 오류를 유발할 수 있습니다. 해결 방법: 이 문제를 방지하려면 플래그를 사용하여 컴파일하십시오 . 향후 릴리스에서 이 문제를 해결하기 위해 적극적으로 노력하고 있습니다.-Xptxas -O0

1.5. 더 이상 사용되지 않거나 삭제된 기능

1.5.1. CUDA 일반

  • NVTX v2는 이전에 지원 중단된 후 CUDA 툴킷에서 제거되었습니다. 툴킷에 포함된 코드를 에서 로 변경하여 NVTX v3으로 마이그레이션하세요 최신 NVTX 버전과 확장 기능은 여기에서 확인할 수 있습니다 .#include <nvtoolsext.h>#include "nvtx3/nvtoolsext.h"

1.5.2. 더 이상 사용되지 않는 아키텍처

  • Maxwell, Pascal, Volta 아키텍처는 이제 모든 기능을 갖추고 있으며 추가 개선 계획은 없습니다. CUDA Toolkit 12.x 시리즈는 이러한 아키텍처용 애플리케이션 빌드를 계속 지원하지만, 오프라인 컴파일 및 라이브러리 지원은 다음 주요 CUDA Toolkit 버전 릴리스에서 제거될 예정입니다. 향후 툴킷은 Maxwell, Pascal, Volta GPU를 지원하지 않으므로 사용자는 최신 아키텍처로의 마이그레이션을 계획해야 합니다.

1.5.3. 더 이상 지원되지 않거나 삭제된 운영 체제

  • CUDA Toolkit 12.9는 Ubuntu 20.04에 대한 공식 지원을 제공하는 마지막 CUDA 릴리스가 될 것입니다.

1.5.4. 더 이상 사용되지 않는 CUDA 툴체인

  • ICC 2021.7 호스트 컴파일러에 대한 지원은 릴리스 12.9에서 더 이상 제공되지 않으며 향후 릴리스에서 제거될 예정입니다.

2. CUDA 라이브러리

이 섹션에서는 12.x 릴리스에 대한 CUDA 라이브러리 릴리스 노트를 다룹니다.

  • CUDA 수학 라이브러리 툴체인은 C++11 기능을 사용하며, 호스트에는 C++11 호환 표준 라이브러리(libstdc++ >= 20150422)가 필요합니다.

2.1. cuBLAS 라이브러리

2.1.1. cuBLAS: 릴리스 12.9

  • 새로운 기능

    • cuBLASLt API 내에서 행렬 곱셈 연산에 대한 독립 배치 포인터 지원을 도입했습니다. 이전에는 cuBLAS gemmEx API에서만 제공되었던 이 기능을 통해 이제 저정밀도 데이터 유형에 대한 포인터 배열 배치 지원이 가능해졌습니다. 현재 융합 에필로그는 제한적으로 지원됩니다.

    • sm_90Hopper( )에 새로운 스케일링 모드(채널/행당 외부 벡터, 128개 요소당, 128x128 블록당)에 대한 지원이 추가되었습니다 . 현재 융합된 에필로그는 제한적으로 지원됩니다.

    • BF16x9 알고리즘을 기반으로 에뮬레이션된 FP32를 사용하여 FP32 행렬 곱셈의 연산 중심 인스턴스에서 최대 3배의 속도 향상과 에너지 효율 개선을 구현했습니다. 이 기능은 일부 Blackwell GPU에서 사용할 수 있습니다. 자세한 내용은 여기를 클릭하세요 . FP32 에뮬레이션을 활성화하려면 CUDA 라이브러리 샘플을 참조 하세요. 숫자가 아닌 값(NaN, Inf 등)은 상호 교환 가능한 오류 표시기로 처리됩니다.

  • 알려진 문제

    • cublasLtMatmul ReLU 에필로그에 대해 사용자 지정 Aux 데이터 유형을 무시하고 비트마스크를 기본적으로 사용합니다. 사용자가 ReLU 에필로그에 잘못된 Aux 데이터 유형을 지정한 경우 오류를 반환하는 것이 올바른 동작입니다. [ CUB-7984 ]

  • 사용 중단

    • 향후 릴리스에서는 cuBLAS가 작업 공간 메모리에 대해 256바이트 정렬을 적용할 예정입니다.

    • 향후 릴리스에서는 CUBLAS_STATUS_NOT_SUPPORTED다음 설명자 속성이 설정되어 있지만 해당 스케일이 지원되지 않는 경우 cuBLAS가 반환됩니다.

      • CUBLASLT_MATMUL_DESC_A_SCALE_POINTER

      • CUBLASLT_MATMUL_DESC_B_SCALE_POINTER

      • CUBLASLT_MATMUL_DESC_D_SCALE_POINTER

      • CUBLASLT_MATMUL_DESC_D_OUT_SCALE_POINTER

      • CUBLASLT_MATMUL_DESC_EPILOGUE_AUX_SCALE_POINTER

      이러한 동작은 좁은 정밀도가 아닌 matmul에 이미 적용되어 있으며, 좁은 정밀도가 아닌 텐서에 스케일이 설정된 경우 곧 좁은 정밀도 matmul에도 적용될 예정입니다.

    • NVIDIA 개발자 포럼 에 게시 하거나 다음 주소로 이메일을 보내서 예정된 지원 중단에 대한 피드백을 공유하세요 Math-Libs-Feedback@nvidia.com.

2.1.2. cuBLAS: 릴리스 12.8

  • 새로운 기능

    • NVIDIA Blackwell GPU 아키텍처에 대한 지원이 추가되었습니다.

    • 컴퓨팅 성능 10.0(Blackwell) 이상에서 마이크로 스케일 4비트 및 8비트 부동 소수점 혼합 정밀도 텐서 코어 가속 행렬 곱셈을 지원하도록 cuBLASLt API를 확장했습니다. 확장 기능은 다음과 같습니다.

      • CUDA_R_4F_E2M1: CUDA_R_UE4M3스케일 및 16개 요소 스케일링 블록과의 통합.

      • CUDA_R_8F 변형: CUDA_R_UE8스케일 및 32개 요소 스케일링 블록과의 호환성.

      • FP8 Matmul 속성 확장

        • 스칼라 대신 스케일링 인자 텐서를 사용한 블록 스케일링 사용 사례 지원.

        • 출력이 4비트 또는 8비트 부동 소수점 데이터 유형인 경우 출력 텐서에 대한 스케일링 요소를 동적으로 계산하는 기능입니다.

    • Windows x64에서 NVIDIA Ampere GPU 아키텍처 및 Blackwell GeForce급 GPU를 위한 CUDA in Graphics(CIG)에 대한 초기 지원이 도입되었습니다. 이제 CIG 컨텍스트가 자동으로 감지되며, cuBLAS는 CIG 공유 메모리 사용량 제한을 준수하는 커널을 선택합니다.

    • 정렬되지 않은 INT8 matmul에 대해 모든 Hopper GPU의 성능이 향상되었습니다.

  • 해결된 문제

    • cublasLtMatmul에필로그 와 함께 사용하면 CUBLASLT_EPILOGUE_BGRAD{A,B}출력 행렬이 CUBLASLT_ORDER_ROW레이아웃에 포함될 수 있어 바이어스 그래디언트가 잘못 계산되었습니다. 이제 CUBLASLT_EPILOGUE_BGRAD{A,B}에필로그를 사용할 때는 이 레이아웃이 허용되지 않습니다. [ 4910924 ]

  • 사용 중단

    • 출력 행렬의 행( ) 또는 열( )에 따른 원자 동기화를 위한 실험적 기능이 이제 더 이상 지원되지 않습니다. 기능 구현은 여전히 ​​사용 가능하지만 성능이 좋지 않아 향후 릴리스에서 제거될 예정입니다.CUBLASLT_MATMUL_DESC_ATOMIC_SYNC_NUM_CHUNKS_D_ROWSCUBLASLT_MATMUL_DESC_ATOMIC_SYNC_NUM_CHUNKS_D_COLS

2.1.3. cuBLAS: 릴리스 12.6 업데이트 2

  • 새로운 기능

    • 모든 Hopper GPU에서 FP8 , FP16 및 BF16 matmuls의 전반적인 성능이 향상되었습니다. 이 개선 사항 CUBLASLT_EPILOGUE_BIAS에는 다음 융합 에필로그도 포함 됩니다 .CUBLASLT_EPILOGUE_RELUCUBLASLT_EPILOGUE_RELU_BIASCUBLASLT_EPILOGUE_RELU_AUXCUBLASLT_EPILOGUE_RELU_AUX_BIASCUBLASLT_EPILOGUE_GELUCUBLASLT_EPILOGUE_GELU_BIAS

  • 알려진 문제

    • 다중 컨텍스트 시나리오에서 cuBLAS는 버전 <535.91의 R535 드라이버에서 중단될 수 있습니다. [ CUB-7024 ]

    • FP64 GEMM의 경우 Hopper GPU에서 성능이 최적화되지 않을 수 있습니다. 이 문제를 해결하는 한 가지 방법은 조건부로 스위즐링을 cublasLtMatmulAlgoGetHeuristic활성화하는 것입니다. 이를 위해 사용자는 를 통해 반환된 알고리즘을 사용하여 를 호출하여 스위즐링을 활성화할 수 있는지 쿼리 cublasLtMatmulAlgoCapGetAttribute할 수 있습니다. 스위즐링이 지원되는 경우 를 호출 하여 CUBLASLT_ALGO_CAP_CTA_SWIZZLING_SUPPORT스위즐링을 활성화할 수 있습니다 . [ 4872420 ]cublasLtMatmulAlgoConfigSetAttributeCUBLASLT_ALGO_CONFIG_CTA_SWIZZLING

  • 해결된 문제

    • cublasLtMatmul이러한 데이터 유형이 cublasLtMatmulDescAttributes_t <https://docs.nvidia.com/cuda/cublas/#cublasltmatmuldescattributes-t>__ 에 문서화된 제한 사항과 일치하지 않는 경우 FP8 matmul 작업에 대해 사용자가 지정한 Bias 또는 Aux 데이터 유형( CUBLASLT_MATMUL_DESC_BIAS_DATA_TYPE및 )을 무시할 수 있습니다 . [ 44750343, 4801528 ]CUBLASLT_MATMUL_DESC_EPILOGUE_AUX_DATA_TYPE

    • 이 환경 변수를 로 설정하면 CUDA_MODULE_LOADINGPTX EAGER커널의 JIT 컴파일로 인해 Hopper GPU에서 라이브러리 로드 시간이 길어질 수 있습니다. 이 문제는 이 환경 변수를 로 설정하면 완화할 수 있습니다 LAZY. [ 4720601 ]

    • cublasLtMatmulINT8 입력, INT32 누적, INT8 출력 및 FP32 스케일링 요인이 splitk감소를 사용했을 때 수치적 부정확성이 발생할 수 있습니다. [ 4751576 ]

2.1.4. cuBLAS: 릴리스 12.6 업데이트 1

  • 알려진 문제

    • cublasLtMatmul이러한 데이터 유형이 cublasLtMatmulDescAttributes_t 의 문서화된 제한 사항과 일치하지 않는 경우 FP8 matmul 작업에 대해 사용자가 지정한 Bias 또는 Aux 데이터 유형( CUBLASLT_MATMUL_DESC_BIAS_DATA_TYPE 및 )을 무시할 수 있습니다 . [ 4750343 ]CUBLASLT_MATMUL_DESC_EPILOGUE_AUX_DATA_TYPE

    • 이 환경 변수를 로 설정하면 CUDA_MODULE_LOADINGPTX EAGER커널의 JIT 컴파일로 인해 Hopper GPU에서 라이브러리 로드 시간이 길어질 수 있습니다. 이 문제는 이 환경 변수를 로 설정하면 완화할 수 있습니다 LAZY. [ 4720601 ]

    • cublasLtMatmulINT8 입력, INT32 누적, INT8 출력 및 FP32 스케일링 계수를 사용하는 경우 splitk감소를 사용할 때 정확도 문제가 발생할 수 있습니다. 이 문제를 해결하려면 를 사용하여 cublasLtMatmulAlgoConfigSetAttribute 감소 체계를 '없음'으로 설정하고 splitk값을 1로 설정할 수 있습니다. [ 4751576 ]

2.1.5. cuBLAS: 릴리스 12.6

  • 알려진 문제

    • INT8 입력, INT8 출력, 그리고 FP32 스케일링 인자를 사용하는 행렬 곱셈과 에필로그를 계산할 때, 두 번째 커널을 사용하여 에필로그를 계산할 경우 수치 오류가 발생할 수 있습니다. 이는 첫 번째 GEMM 커널이 FP32의 중간 결과를 INT8로 변환하여 이후 에필로그 커널이 사용할 수 있도록 저장하기 때문에 발생합니다. 에필로그 이전에 값이 INT8 범위를 벗어나고 에필로그를 통해 INT8 범위에 포함되는 경우, 수치 오류가 발생합니다. 이 문제는 CUDA 12 이전부터 존재했으며, 알려진 해결 방법은 없습니다. [ CUB-6831 ]

    • cublasLtMatmul이러한 데이터 유형이 cublasLtMatmulDescAttributes_t 의 문서화된 제한 사항과 일치하지 않는 경우 FP8 matmul 작업에 대해 사용자가 지정한 Bias 또는 Aux 데이터 유형( CUBLASLT_MATMUL_DESC_BIAS_DATA_TYPE및 )을 무시할 수 있습니다 . [ 4750343 ]CUBLASLT_MATMUL_DESC_EPILOGUE_AUX_DATA_TYPE

  • 해결된 문제

    • cublasLtMatmul행렬의 데이터 유형이 A다르고 B(예: Ais CUDA_R_8F_E4M3및 Bis CUDA_R_8F_E5M2) 행렬 D레이아웃이 FP8인 경우 잘못된 결과가 생성되었습니다 CUBLASLT_ORDER_ROW. [ 4640468 ]

    • cublasLt일부 경우 AB, 및 C가 유형 CUDA_R_8I이고 컴퓨팅 유형이 .인 경우 Hopper GPU에서 지원되지 않는 것으로 반환될 수 있습니다 CUBLAS_COMPUTE_32I. [ 4381102 ]

    • KGEMM을 0과 동일하게 실행할 때 cuBLAS가 부동 소수점 예외를 생성할 수 있습니다. [ 4614629 ]

2.1.6. cuBLAS: 릴리스 12.5 업데이트 1

  • 새로운 기능

    • 특히 Hopper GPU에서 작은 배치 크기에 맞춰 대규모 언어 모델을 대상으로 행렬 곱셈의 성능을 개선했습니다.

  • 알려진 문제

    • Hopper GPU에서 스트라이드 배치의 경우, ReLU 또는 GeLU가 없는 바이어스 에필로그가 지원되지 않을 수 있습니다. 이 문제를 해결하려면 배칭을 수동으로 구현해야 합니다. 이 문제는 향후 릴리스에서 수정될 예정입니다.

    • cublasGemmGroupedBatchedExCPU 오버헤드가 큽니다 cublas<t>gemmGroupedBatched. 이 문제는 다음 릴리스에서 해결될 예정입니다.

  • 해결된 문제

    • 드물지만 Hopper GPU에서 GEMM과 동시에 SYMM/HEMM을 실행하면 호스트 코드에서 경쟁 조건이 발생하여 불법 메모리 액세스 CUDA 오류가 발생할 수 있습니다. [ 4403010 ]

    • cublasLtMatmul다음 조건에서 Pascal GPU에서 불법 명령어 CUDA 오류가 발생할 수 있습니다. 배치가 1보다 크고 베타가 0이 아니며 계산이 제자리에 없는 경우(C != D). [ 4566993 ]

2.1.7. cuBLAS: 릴리스 12.5

  • 새로운 기능

    • cuBLAS는 혼합 정밀도 그룹화된 배치 GEMM을 지원하는 실험적 API를 추가합니다. 이를 통해 FP32 컴퓨팅 유형을 사용하는 FP16 또는 BF16 입출력을 갖는 그룹화된 배치 GEMM을 사용할 수 있습니다. 자세한 내용은 cublasGemmGroupedBatchedEx를 참조하세요.

  • 알려진 문제

    • cublasLtMatmul각 행렬의 요소가 FP8 유형이 아닌 경우 해당 행렬 에 CUBLASLT_MATMUL_DESC_D_SCALE_POINTER대한 입력을 무시합니다 .CUBLASLT_MATMUL_DESC_EPILOGUE_AUX_SCALE_POINTER

  • 해결된 문제

    • cublasLtMatmul제공된 스케일 유형과 설명서에 암시된 내용 사이의 불일치를 무시하고 후자를 가정했습니다. 예를 들어, cublasLtMatmul스케일 유형이 FP32이고 다른 모든 유형이 FP16인 지원되지 않는 구성은 스케일 유형이 FP16이라는 암묵적인 가정 하에 실행되어 잘못된 결과를 생성합니다.

    • cuBLAS SYMV는 큰 n 차원에서는 실패했습니다: ssymv의 경우 131072 이상, csymv 및 dsymv의 경우 92673 이상, zsymv의 경우 65536 이상.

2.1.8. cuBLAS: 릴리스 12.4 업데이트 1

  • 알려진 문제

    • cuBLAS 핸들 스트림을 로 설정 cudaStreamPerThread하고 작업 공간을 via로 설정하면 cublasSetWorkspace이후 모든 cublasSetWorkspace호출이 실패합니다. 이 문제는 다음 릴리스에서 수정될 예정입니다.

    • cublasLtMatmul제공된 스케일 유형과 설명서에 명시된 스케일 유형 간의 불일치를 무시하고 후자를 가정합니다. 예를 들어, cublasLtMatmul스케일 유형이 FP32이고 다른 모든 유형이 FP16인 지원되지 않는 구성은 스케일 유형이 FP16이라는 암묵적인 가정 하에 실행되어 잘못된 결과를 생성할 수 있습니다. 이 문제는 향후 릴리스에서 수정될 예정입니다.

  • 해결된 문제

    • cublasLtMatmul지원되지 않는 구성에 대해서는 오류를 반환하는 대신 무시했습니다 CUBLASLT_MATMUL_DESC_AMAX_D_POINTER. 특히, D의 절대 최댓값을 계산하는 기능은 현재 FP8 Matmul에서 출력 데이터 유형이 FP8( CUDA_R_8F_E4M3또는 CUDA_R_8F_E5M2)인 경우에만 지원됩니다.

    • 일부 cuBLASLt API( cublasLtMatmul()cublasLtMatmulAlgoCheck()cublasLtMatmulAlgoGetHeuristic())의 호스트 측 오버헤드가 감소했습니다. 이 문제는 CUDA Toolkit 12.4에서 처음 발생했습니다.

    • cublasLtMatmul()cublasLtMatmulAlgoGetHeuristic()일부 Hopper 기반 GPU(MIG(Multi-Instance GPU) 포함)에서 부동 소수점 예외(FPE)가 발생할 수 있었습니다. 이 문제는 cuBLAS 11.8에서 발생했습니다 .

2.1.9. cuBLAS: 릴리스 12.4

  • 새로운 기능

    • cuBLAS는 단정밀도 및 배정밀도에 대한 그룹화된 배치 GEMM을 지원하는 실험적 API를 추가합니다. 단정밀도는 수학 모드도 지원합니다 CUBLAS_TF32_TENSOR_OP_MATH. 그룹화된 배치 모드를 사용하면 서로 다른 차원(m, n, k), 선행 차원(lda, ldb, ldc), 전치(transa, transb), 그리고 스케일링 인자(alpha, beta)의 GEMM을 동시에 풀 수 있습니다. 자세한 내용은 gemmGroupedBatched를 참조하세요.

  • 알려진 문제

    • 현재 컨텍스트가 를 사용하여 생성된 경우 cuGreenCtxCreate(), cuBLAS는 사용 가능한 SM 수를 제대로 감지하지 못합니다. 사용자는 와 같은 API를 사용하여 수정된 SM 수를 cuBLAS에 제공할 수 있습니다 cublasSetSmCountTarget().

    • 알파가 0이고 포인터 모드가 .(으)로 설정된 경우, BLAS 레벨 2 및 3 함수가 알파를 BLAS 호환 방식으로 처리하지 못할 수 있습니다 CUBLAS_POINTER_MODE_DEVICE. 이는 cuBLAS 12.3 업데이트 1에 설명된 알려진 문제와 동일합니다.

    • cublasLtMatmulK가 1이고 에필로그가 CUBLASLT_EPILOGUE_D{RELU,GELU}_BGRAD작업 영역에 접근할 수 있는 범위를 초과할 수 있습니다. 이 문제는 cuBLAS 11.3 업데이트 1부터 발생합니다.

    • cublasLtMatmulK가 1이고 에필로그가 CUBLASLT_EPILOGUE_D{RELU,GELU}작업 공간을 제공하지 않으면 불법적인 메모리 접근을 생성할 수 있습니다. 이 문제는 cuBLAS 11.6부터 존재합니다.

    • CUDA 그래프 스트림 캡처에서 캡처된 경우, cuBLAS 루틴은 스트림 순서 할당 API를 사용하여 메모리 노드를cudaMallocAsync 생성할 수 있습니다. 그러나 현재 자식 그래프 나 장치cudaFreeAsync 에서 실행된 그래프의 메모리 노드는 지원되지 않으므로 이러한 상황에서 cuBLAS 루틴을 캡처하려는 시도는 실패할 수 있습니다. 이 문제를 방지하려면 cublasSetWorkspace() 함수를 사용하여 사용자 소유 작업 공간 메모리를 제공하십시오.

2.1.10. cuBLAS: 릴리스 12.3 업데이트 1

  • 새로운 기능

    • 높은 추방률을 갖는 작업 부하에 대한 휴리스틱 캐시의 성능이 향상되었습니다.

  • 알려진 문제

    • BLAS 레벨 2 및 3 함수는 알파가 0이고 포인터 모드가 .로 설정된 경우 BLAS 호환 방식으로 알파를 처리하지 않을 수 있습니다 CUBLAS_POINTER_MODE_DEVICE. 예상되는 동작은 해당 계산이 건너뛰어진다는 것입니다. 다음과 같은 문제가 발생할 수 있습니다. (1) HER{,2,X,K,2K}는 출력 행렬의 대각 요소의 허수부를 0으로 만들 수 있습니다. (2) HER{,2,X,K,2K}, SYR{,2,X,K,2K} 및 기타는 그렇지 않으면 건너뛰어야 할 행렬 A 및 B에 대한 계산을 수행하여 NaN을 생성할 수 있습니다. BLAS를 엄격하게 준수해야 하는 경우 사용자는 함수를 호출하기 전에 알파 값을 수동으로 확인하거나 .로 전환할 수 있습니다 CUBLAS_POINTER_MODE_HOST.

  • 해결된 문제

    • cuBLASLt matmul 연산은 다음 조건에서 출력을 잘못 계산했을 수 있습니다. 행렬 A와 B의 데이터 유형이 FP8이고, 행렬 C와 D의 데이터 유형이 FP32, FP16 또는 BF16이고, 베타 값이 1.0이고, 행렬 C와 D가 동일하고, 에필로그에 GELU 활성화 함수가 포함되어 있는 경우입니다.

    • CUDA Toolkit 12.2 업데이트 1 또는 이전 버전의 cuBLASLt로 컴파일한 애플리케이션이 CUDA Toolkit 12.2 업데이트 2 또는 CUDA Toolkit 12.3의 cuBLASLt로 실행될 때, .을 사용하여 초기화된 행렬 곱셈 설명자가 . cublasLtMatmulDescInit()을 사용하여 변경된 속성을 따르지 않는 경우가 있었습니다 cublasLtMatmulDescSetAttribute().

    • MPS(Multi-Process Service)에서 Hopper GPU에 대한 cuBLAS 또는 cuBLASLt 핸들 생성이 수정되었습니다.

    • cublasLtMatmulK가 1이고 에필로그가 CUBLASLT_EPILOGUE_BGRAD{A,B}편향 기울기에 대해 잘못된 결과를 반환했을 수 있습니다.

2.1.11. 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 업데이트 1 이하 버전의 cuBLASLt로 컴파일된 애플리케이션을 CUDA Toolkit 12.2 업데이트 2 이상의 cuBLASLt로 실행할 경우, 를 사용하여 초기화된 행렬 곱셈 설명자가 를 cublasLtMatmulDescInit()사용한 속성 변경 사항을 반영하지 않을 수 있습니다 . 이 문제를 해결하려면 를 대신 cublasLtMatmulDescSetAttribute()사용하여 행렬 곱셈 설명자를 생성하십시오 . 이 문제는 다음 릴리스에서 수정될 예정입니다.cublasLtMatmulDescCreate()cublasLtMatmulDescInit()

2.1.12. 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.13. cuBLAS: 릴리스 12.2

  • 알려진 문제

    • MPS를 100% 미만의 값으로 설정한 상태에서 사용 중이면 Hopper 아키텍처 GPU에서 cuBLAS 초기화가 실패합니다 CUDA_MPS_ACTIVE_THREAD_PERCENTAGE. 현재 이 문제에 대한 해결 방법은 없습니다.

    • CUBLASLT_EPILOGUE_RELU_BIAS일부 Hopper 커널은 or CUBLASLT_EPILOGUE_GELU_BIAS와 0이 아닌 값을 갖는 배치된 matmul에 대해 잘못된 결과를 생성합니다 CUBLASLT_MATMUL_DESC_BIAS_BATCH_STRIDE. 커널은 첫 번째 배치의 바이어스 벡터를 모든 배치에 적용합니다. 이 문제는 향후 릴리스에서 수정될 예정입니다.

2.1.14. cuBLAS: 릴리스 12.1 업데이트 1

  • 새로운 기능

    • NVIDIA Ada GPU에서 FP8 지원.

    • NVIDIA L4 Ada GPU의 성능이 향상되었습니다.

    • cuBLASLt 라이브러리가 일부 CPU 명령어를 사용하지 않도록 지시하는 API를 도입했습니다. 이 API는 cuBLASLt 휴리스틱에서 사용되는 특정 CPU 명령어가 CPU 성능에 부정적인 영향을 미치는 드문 경우에 유용합니다. https://docs.nvidia.com/cuda/cublas/index.html#disabling-cpu-instructions 를 참조하세요 .

  • 알려진 문제

    • 함수를 사용하여 행렬 레이아웃을 생성할 때 cublasLtMatrixLayoutCreate(), 가 가리키는 객체는 가 가리키는 객체 cublasLtMatrixLayout_t보다 작지만 cublasLtMatrixLayoutOpaque_t내부 구조를 유지하기에는 충분합니다. 따라서 객체를 명시적으로 역참조하거나 복사하면 경계를 벗어난 접근이 발생할 수 있으므로 이를 방지해야 합니다. 레이아웃을 직렬화하거나 복사해야 하는 경우, size sizeof(cublasLtMatrixLayoutOpaque_t)바이트 크기의 객체를 수동으로 할당하고 함수를 사용하여 초기화하는 것이 좋습니다. 및 도 cublasLtMatrixLayoutInit()마찬가지입니다 . 이 문제는 가 최소 바이트를 할당 하도록 하여 향후 릴리스에서 해결될 예정입니다 .cublasLtMatmulDesc_tcublasLtMatrixTransformDesc_tcublasLtMatrixLayoutCreate()sizeof(cublasLtMatrixLayoutOpaque_t)

2.1.15. cuBLAS: 릴리스 12.0 업데이트 1

  • 새로운 기능

    • NVIDIA H100 SXM 및 NVIDIA H100 PCIe GPU의 성능이 향상되었습니다.

  • 알려진 문제

    • NVIDIA Hopper 아키텍처에서 최적의 성능을 발휘하려면 cuBLAS가 이전 아키텍처(8MiB)보다 더 큰 내부 작업 공간(64MiB)을 할당해야 합니다. 현재 및 이전 릴리스에서 cuBLAS는 256MiB를 할당합니다. 이 문제는 향후 릴리스에서 해결될 예정입니다. 가능한 해결 방법은 CUBLAS_WORKSPACE_CONFIGNVIDIA Hopper 아키텍처에서 cuBLAS를 실행할 때 환경 변수를 :32768:2로 설정하는 것입니다.

  • 해결된 문제

    • cublasLt 휴리스틱 캐시를 사용하지 않아 발생하는 cuBLAS 호스트 측 오버헤드를 줄였습니다. 이는 CUDA Toolkit 12.0 릴리스부터 적용되었습니다.

    • 작업 공간이 필요하지 않은 전방 호환 단정밀도 복합 GEMM이 추가되었습니다.

2.1.16. cuBLAS: 릴리스 12.0

  • 새로운 기능

    • cublasLtMatmul이제 0이 아닌 베타로 FP8을 지원합니다.

    • 더 큰 규모의 문제를 처리할 수 있는 API가 추가되었습니다 . 64비트 정수 인터페이스int64 를 참조하세요 .

    • 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 성능을 개선했습니다.

  • 알려진 문제

    • 작업공간을 필요로 하지 않는 단정밀도 복소수 젬에 대한 상위 호환 커널은 없습니다. 이후 릴리스에서 지원이 추가될 예정입니다.

  • 해결된 문제

    • cublasLtMatmulNVIDIA Ampere 아키텍처와 최신 GPU에서 에필로그 CUBLASLT_EPILOGUE_BGRAD{A,B}와 비자명한 감소 방식(즉, 아님 CUBLASLT_REDUCTION_SCHEME_NONE)을 사용하면 바이어스 그래디언트에 대해 잘못된 결과가 반환되는 문제를 해결했습니다 .

    • cublasLtMatmulgemv와 유사한 경우(즉, m 또는 n이 1인 경우)에는 CUBLASLT_EPILOGUE_RELU_BIAS및 CUBLASLT_EPILOGUE_BIAS에필로그에 대한 편향을 무시할 수 있습니다.

    사용 중단

    • 동일한 번역 단위에 cublas.h및 를 포함하는 것을 허용하지 않습니다 .cublas_v2.h

    • 제거됨:

      • CUBLAS_MATMUL_STAGES_16x80그리고 . 더 이상 이러한 단계 CUBLAS_MATMUL_STAGES_64x80를 cublasLtMatmulStages_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_FILTERING에서 . 이 마스크는 제거된 경우 cublasLtPointerModeMask_t에만 적용되었습니다 .CUBLASLT_MATMUL_PREF_MATH_MODE_MASK

2.2. cuFFT 라이브러리

2.2.1. cuFFT: 릴리스 12.9

  • 사용 중단

    • cuFFT의 Maxwell, Pascal, Volta 지원은 더 이상 제공되지 않으며, 향후 CUDA 릴리스에서 제거될 예정입니다.

    • 버전이 지정된 심볼은 __cufftXtSetJITCallback_12_7더 이상 사용되지 않으며 향후 CUDA 릴리스에서 제거될 예정입니다.

    • 현재 링크 시간 최적화(LTO) cuFFT 커널은 최종화를 위해 nvJitLink를 필요로 합니다. 향후 릴리스에서는 LTO 커널 생성을 위한 추가 요구 사항으로 NVRTC가 추가될 예정입니다.

  • 해결된 문제

    • 고정된 작업 공간 계산: 작은 소수로 인수분해될 수 있는 대부분의 작은 크기에 대해 필요한 작업 공간이 이제 0입니다.

2.2.2. cuFFT: 릴리스 12.8

  • 새로운 기능

    • NVIDIA Blackwell GPU 아키텍처에 대한 지원이 추가되었습니다.

  • 사용 중단

    • 정적 라이브러리는 libcufft_static_nocallback.a더 이상 지원되지 않으며 향후 릴리스에서 삭제될 예정입니다. libcufft_static.aCUDA Toolkit 12.6 업데이트 2를 통해 cuFFT에 LTO 콜백이 도입됨에 따라 두 라이브러리 모두 동등한 기능을 제공하므로 사용자는 로 마이그레이션해야 합니다.

  • 알려진 문제

    • SM120은 레거시 콜백 커널에 대해 PTX JIT를 통해서만 지원됩니다. 따라서 LTO가 아닌 장치 콜백 코드와 연결하려면 libcufft_static.aSASS가 아닌 PTX로 컴파일해야 합니다.

    • 플래그 를 사용하지 않고 x86_64 시스템에서 정적 cuFFT 라이브러리( libcufft_static.a, ) 에 연결하는 대용량 애플리케이션(전체 바이너리 크기가 2GB 이상)은 연결 오류가 발생합니다(예: ). 이 문제는 다음 릴리스에서 수정될 예정입니다.libcufft_static_nocallback.a-mcmodel=medium.gcc_except_table relocation R_X86_64_PC32 out of range; references DW.ref._ZTI13cufftResult_t

      기존의 해결 방법은 다음과 같습니다.

      • 애플리케이션을 빌드하거나 연결-mcmodel=medium flag

      • readelf기호를 분석하는 데 사용하면 참조를 큰 데이터 섹션에서 큰 데이터 섹션이 아닌 섹션으로 libcufft_static.a이동할 수 있습니다.ref._ZTI13cufftResult_t.ldata.DW.ref._ZTI13cufftResult_t.data.DW.ref._ZTI13cufftResult_t

2.2.3. cuFFT: 릴리스 12.6 업데이트 2

  • 새로운 기능

    • 더 이상 지원되지 않는 기존 콜백을 대체하기 위해 LTO 콜백을 도입했습니다. LTO 콜백은 다음과 같은 기능을 제공합니다.

      • 추가 성능 대 레거시 콜백

      • Windows 및 동적(공유) 라이브러리에서 콜백 지원

      자세한 내용은 cuFFT 설명서 페이지를 참조하세요 .

  • 해결된 문제

    • cuFFT LTO EA 미리보기 바이너리에 존재하는 여러 가지 문제가 해결되었습니다.

  • 사용 중단

    • LTO 콜백 지원을 위한 프리뷰 바이너리인 cuFFT LTO EA는 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다.

2.2.4. cuFFT: 릴리스 12.6

  • 알려진 문제

    • 크기 1의 FFT는 현재 FP16에서 지원되지 않습니다. CTK 12.1 이하 버전에서는 이 사용 사례에 대한 알려진 메모리 문제가 있습니다. CTK 12.2 이상 버전에서는 오류가 발생합니다. [ 4662222 ]istride/ostride > 1CUFFT_INVALID_SIZE

2.2.5. cuFFT: 릴리스 12.5

2.2.6. cuFFT: 릴리스 12.4 업데이트 1

  • 해결된 문제

cuFFT LTO EA 라이브러리의 루틴이 cufftXt.hCUDA 12.4의 cuFFT Advanced API 헤더 파일( )에 실수로 포함되었습니다. 이 루틴은 이제 헤더에서 제거되었습니다.

2.2.7. cuFFT: 릴리스 12.4

  • 새로운 기능

    • 64비트 인덱싱을 사용하는 FFT의 성능을 개선하기 위해 Just-In-Time Link-Time Optimized(JIT LTO) 커널을 추가했습니다 .

    • cuFFT API에 플랜별 속성을 추가했습니다 . 이 새로운 루틴을 활용하면 사용자가 cuFFT 동작을 더욱 효과적으로 제어할 수 있습니다. 현재 이 루틴은 64비트 FFT에 JIT LTO 커널을 활성화하는 데 사용할 수 있습니다.

    • 특히 더 큰 크기의 FFT와 관련하여 특정 단정밀도(fp32) FFT 사례의 정확도가 향상되었습니다.

  • 알려진 문제

    • cuFFT LTO EA 라이브러리의 루틴이 cuFFT Advanced API 헤더( cufftXt.h)에 실수로 추가되었습니다. 이 루틴은 cuFFT에서 지원되지 않으며, 향후 릴리스에서 헤더에서 제거될 예정입니다.

  • 해결된 문제

    • 사용자가 지정한 출력 스트라이드를 사용하여 잘못된 위치의 실수-복소수 변환(R2C)을 수행할 때 사용자 데이터가 덮어쓰여질 수 있는 문제를 해결했습니다(예: 고급 데이터 레이아웃 APIostride 의 구성 요소 사용 ).

    • libcufftw와 FFTW 가 모두 일 때 와 FFTW 간의 일관되지 않은 동작을 수정했습니다 . 이제 FFTW에서와 마찬가지로 매개변수 로 전달하는 것은 해당 차원의 논리적 크기인 n을 전달하는 것과 동일합니다.inembedonembednullptr / NULLnullptr / NULLinembed/onembed

2.2.8. cuFFT: 릴리스 12.3 업데이트 1

  • 알려진 문제

    • 계획 생성에 사용된 컨텍스트와 다른 컨텍스트에서 실수-복소수(R2C) 또는 복소수-실수(C2R) 계획을 실행하면 정의되지 않은 동작이 발생할 수 있습니다. 이 문제는 향후 cuFFT 릴리스에서 수정될 예정입니다.

  • 해결된 문제

    • 복합-복합(C2C) 실행 함수( cufftExec및 유사한 함수)는 이제 커널 실행 중 오류(예: CUDA 컨텍스트 누락)가 발생하는 경우 적절하게 오류를 출력합니다.

2.2.9. cuFFT: 릴리스 12.3

  • 새로운 기능

    • 콜백 커널은 리소스 사용 측면에서 더 여유로우며, 더 적은 레지스터를 사용합니다.

    • 127보다 큰 인수를 사용하는 이중 정밀도 소수 및 합성 FFT 크기에 대한 정확도가 향상되었습니다.

    • 일부 FFT 크기에 대한 계획 시간이 약간 개선되었습니다.

2.2.10. cuFFT: 릴리스 12.2

  • 새로운 기능

    • cufftSetStream첫 번째 GPU의 기본 컨텍스트 대신 모든 GPU 컨텍스트의 스트림을 사용하여 다중 GPU 계획에서 사용할 수 있습니다 cufftXtSetGPUs.

    • 62에서 16380까지의 크기를 가진 1000개 이상의 FFT 성능이 향상되었습니다. 향상된 성능은 PTX JIT를 통해 여러 GPU 아키텍처(Maxwell에서 Hopper GPU까지)에서 연속 데이터 레이아웃을 가진 수백 가지의 단정도 및 배정도 FFT 사례에 적용됩니다.

    • 12.1 릴리스에서 cuFFT와 비교했을 때 정적 라이브러리의 크기가 줄었습니다.

  • 해결된 문제

    • cuFFT는 더 이상 스레드가 1023개가 넘는 플랜을 동시에 생성하고 액세스할 때 경쟁 조건을 나타내지 않습니다.

    • cuFFT는 여러 스레드가 동시에 호출할 때 더 이상 경쟁 조건을 나타내지 않습니다 cufftXtSetGPUs.

2.2.11. cuFFT: 릴리스 12.1 업데이트 1

  • 알려진 문제

    • cufftCreate한 스레드가 (또는 cufftDestroy)을 호출하고 다른 스레드가 API( cufftCreate또는 제외 cufftDestroy)를 호출하고, 실행 중인 플랜의 총 수가 1023을 초과하는 경우 cuFFT는 경쟁 조건을 보입니다 .

    • cuFFT는 여러 스레드가 서로 다른 플랜을 동시에 호출할 때 경쟁 조건을 보입니다 cufftXtSetGPUs.

2.2.12. cuFFT: 릴리스 12.1

  • 새로운 기능

    • 14에서 28,800까지 다양한 크기의 FFT 수백 개에 대해 Hopper GPU에서 성능이 향상되었습니다. 향상된 성능은 연속적인 데이터 레이아웃을 가진 FFT의 단일 및 배정밀도에서 542개 이상의 경우에 적용됩니다.

  • 알려진 문제

    • CUDA 11.8부터 CUDA 그래프는 더 이상 아웃 오브 플레이스 모드 변환에서 데이터를 로드하는 콜백 루틴을 지원하지 않습니다. 향후 릴리스에서는 cuFFT 콜백 구현을 업데이트하여 이러한 제한을 제거할 예정입니다. cuFFT 11.4에서는 별도로 컴파일된 장치 코드를 기반으로 하는 cuFFT 콜백 기능이 더 이상 지원되지 않습니다.

  • 해결된 문제

    • cuFFT는 프로그램 종료 시에 CUDA 컨텍스트가 플랜 생성에 사용되어 프로그램 종료 전에 파괴된 경우 더 이상 Compute-Sanitizer에서 오류를 생성하지 않습니다.

2.2.13. cuFFT: 릴리스 12.0 업데이트 1

  • 해결된 문제

    • 다중 GPU, 단일 배치, 1D FFT에 대한 스크래치 공간 요구 사항이 감소했습니다.

2.2.14. cuFFT: 릴리스 12.0

  • 새로운 기능

    • PTX JIT 커널 컴파일을 통해 Maxwell, Pascal, Volta 및 Turing 아키텍처에 대한 많은 새로운 가속 케이스를 추가할 수 있었습니다.

  • 알려진 문제

  • 해결된 문제

    • cuFFT 플랜에서 플랜당 의도치 않게 작은 메모리 오버헤드(몇 KB)가 발생하던 문제가 해결되었습니다.

2.3. cuSOLVER 라이브러리

2.3.1. cuSOLVER: 릴리스 12.9

  • 알려진 문제

    • cusolverDnXsyevdcusolverDnXsyevdxcusolverDnXsyevBatchedcusolverDn<t>syevd및 에 대해 지원되는 입력 행렬 크기는 n <= 32768로 제한됩니다. 이 제한은 및 를 cusolverDn<t>syevdx포함하여 동일한 내부 구현을 공유하는 루틴에도 적용됩니다 .cusolverDnXgesvdrcusolverDnXgesvdpcusolverDn<t>sygvdcusolverDn<t>sygvdxcusolverDn<t>gesvdaStridedBatched

2.3.2. cuSOLVER: 릴리스 12.8

  • 새로운 기능

    • cusolverDn{SDCZ}sytrf이제 cusolverDnXsytrs입력 피벗 배열을 피벗하지 않고도 대칭적 인수분해를 지원하여 devIpiv=NULL성능이 향상되었습니다.

    • cusolver{DZ}gesvdaStridedBatched이제 광범위한 문제에 대해 향상된 정확도와 성능을 제공합니다.

    • cusolver{SDCZ}gesvdaStridedBatched이제 수렴 실패 시 유효한 특이값과 벡터의 개수를 반환합니다.

  • 해결된 문제

    • 최소 2개의 배치 크기를 cusolverDnXsyevBatched사용하거나 cuComplex작업 공간이 입력 시 0으로 초기화되지 않으면 잘못된 결과가 반환되는 문제가 해결되었습니다 .cuDoubleComplex

  • 사용 중단

    • 다음 API는 12.8에서 사용 중단 경고를 포함합니다[ cuSOLVERSp4674686 ] .cuSOLVERRf

      • cusolverSp{SDCZ}csrlsvluHost

      • cusolverSp{SDCZ}csrlsvcholHost

      • cusolverSp{SDCZ}csrlsvchol

      • cusolverRfSetupHost

      • cusolverRfSetupDevice

      • cusolverRfResetValues

      • cusolverRfAnalyze

      • cusolverRfRefactor

      • cusolverRfAccessBundledFactorsDevice

      • cusolverRfExtractBundledFactorsHost

      • cusolverRfExtractSplitFactorsHost

      • cusolverRfSolve

      컴파일러 플래그를 추가하면 사용 중단 경고를 제거할 수 있습니다 -DDISABLE_CUSOLVER_DEPRECATED.

      더 나은 성능과 지속적인 지원을 위해 cuDSS 라이브러리를 사용하는 것이 좋습니다 . 전환 관련 내용은 cuDSS 샘플을 참조하세요 .

2.3.3. cuSOLVER: 릴리스 12.6 업데이트 2

  • 새로운 기능

    • cusolverDnXgeev비-에르미트 고유값 문제를 해결하기 위한 새로운 API입니다 .

    • 균일한 배치 에르미트 고유값 문제를 해결하기 위한 새로운 API입니다 cusolverDnXsyevBatched.

2.3.4. cuSOLVER: 릴리스 12.6

  • 새로운 기능

    • cusolverDnXgesvdp()의 성능이 향상되었습니다 .

2.3.5. cuSOLVER: 릴리스 12.5 업데이트 1

  • 해결된 문제

    • bufferOnDevice호출에 의한 잠재적인 경계외 접근이 cusolverDnXlarft해결되었습니다.

2.3.6. cuSOLVER: 릴리스 12.5

  • 새로운 기능

    • cusolverDnXgesvd및 cusolverDn<t>gesvd의 성능이 향상 됩니다 .jobu != 'N'jobvt != 'N'

    • cusolverDnXgesvdpif 의 성능 개선 .jobz = CUSOLVER_EIG_MODE_NOVECTOR

    • cusolverDnXgesvdp키가 크고 얇은 매트릭스의 경우 작업 공간 요구 사항이 낮습니다 .

  • 알려진 문제

    • CUDA Toolkit 12.4 업데이트 1에서는 호출 시 값이 에서 범위를 벗어난 메모리 액세스를 초래할 수 있습니다 . 이 문제를 해결하려면 크기가 인 더 큰 장치 작업 공간 버퍼를 할당할 수 있습니다 .ldt > kcusolverDnXlarftbufferOnDeviceworkspaceInBytesOnDevice=ALIGN_32((ldt*k + n*k)*sizeofCudaDataType(dataTypeT))

      auto ALIGN_32=[](int64_t val) {
         return ((val + 31)/32)*32;
      };
      

      그리고

      auto sizeofCudaDataType=[](cudaDataType dt) {
         if (dt == CUDA_R_32F) return sizeof(float);
         if (dt == CUDA_R_64F) return sizeof(double);
         if (dt == CUDA_C_32F) return sizeof(cuComplex);
         if (dt == CUDA_C_64F) return sizeof(cuDoubleComplex);
      };
      

2.3.7. cuSOLVER: 릴리스 12.4 업데이트 1

  • 새로운 기능

    • 의 성능이 cusolverDnXlarft개선되었습니다. 큰 행렬의 경우 속도 향상 폭이 100배를 초과할 수 있습니다. H100의 성능은 이제 A100보다 일관되게 향상되었습니다. 의 변경으로 인해 , 의 cusolverDnXlarft속도도 약간 향상되었습니다 .cusolverDn<t>ormqrcusolverDn<t>ormtrcusolverDnXsyevd

    • 특이 벡터를 찾는 성능이 cusolverDnXgesvd향상되었습니다. 좌우 특이 벡터를 모두 계산하는 작업 구성이 최대 1.5배 더 빨라졌습니다.

  • 해결된 문제

    • cusolverDnXtrtri_bufferSize이제 올바른 작업 공간 크기를 바이트 단위로 반환합니다.

  • 사용 중단

    • 오랫동안 사용되지 않는 cusolverDnPotrfcusolverDnPotrscusolverDnGeqrfcusolverDnGetrfcusolverDnGetrs, , cusolverDnSyevdcusolverDnSyevdxcusolverDnGesvd및 관련 bufferSize함수를 사용하면 사용 중단 경고가 발생합니다. 컴파일할 때 플래그를 사용하여 경고를 끌 수 있지만 , 사용자는 대신 , 및 해당 함수를 -DDISABLE_CUSOLVER_DEPRECATED사용해야 합니다 .cusolverDnXpotrfcusolverDnXpotrscusolverDnXgeqrfcusolverDnXgetrfcusolverDnXgetrscusolverDnXsyevdcusolverDnXsyevdxcusolverDnXgesvdbufferSize

2.3.8. cuSOLVER: 릴리스 12.4

  • 새로운 기능

    • cusolverDnXlarftAPI 가 cusolverDnXlarft_bufferSize도입되었습니다. cusolverDnXlarft실제 블록 반사기의 삼각형 요소를 형성하고, cusolverDnXlarft_bufferSize필요한 작업 공간 크기를 바이트로 반환합니다.

  • 알려진 문제

    • cusolverDnXtrtri_bufferSize` 함수가 잘못된 필수 장치 작업 공간 크기를 반환합니다. 이 문제를 해결하려면 반환된 크기에 데이터 유형의 크기를 곱하면 됩니다(예: 행렬 A가 double 유형인 경우 8바이트). 그러면 올바른 작업 공간 크기를 얻을 수 있습니다.

2.3.9. cuSOLVER: 릴리스 12.2 업데이트 2

  • 해결된 문제

    • 18918보다 큰 행렬에 대해 또는 가 ' '와 같지 않으면 잘못된 결과가 발생할 수 있는 cusolverDn<t>gesvd()cusolverDnGesvd(), 및 의 문제를 해결했습니다 .cusolverDnXgesvd()jobujobvtN

2.3.10. 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.9

  • 알려진 문제

    • cusparseCsr2cscEx2입력 행렬 차원 중 하나라도 0(m=0 또는 n=0)인 경우 잘못된 결과가 생성됩니다.[ CUSPARSE-2319 ]

    • SpMV 및 SpMM의 혼합 정밀도 계산은 잘못된 결과를 생성합니다. [ CUSPARSE-2349 ]

    • 많은 cuSPARSE 루틴은 매트릭스 인덱스, 열, 값 배치 스트라이드를 포함한 배치 스트라이드에 대해 16바이트 정렬이 필요합니다.

2.4.2. cuSPARSE: 릴리스 12.8

  • 새로운 기능

    • 희소 행렬 연산에서 상당한 성능 향상을 통해 NVIDIA Blackwell GPU에 대한 지원이 추가되었습니다.

      • SpMV(Sparse Matrix-Vector multiplication): Hopper보다 최대 2.3배 빠름

      • SpMM(Sparse Matrix-Matrix multiplication): Hopper보다 최대 2.4배 빠름

  • 해결된 문제

    • CUDA_R_64F 데이터 유형과 두 개의 밀집 행렬(op(B) 및 C) 간의 메모리 레이아웃이 일치하지 않는 CUSPARSE_SPMM_CSR_ALG3 알고리즘을 사용할 때 "잘못 정렬된 주소" 오류가 발생하는 cusparseSpMM의 문제를 수정했습니다. [ CUSPARSE-2081 ]

    • 동일한 매트릭스에서 SpMV 전처리에 대한 후속 호출이 첫 번째 호출 후에 실패하는 문제를 해결했습니다. [ CUSPARSE-1897 ]

    • 알파=0일 때 SpMV 전처리가 실행되지 않는 문제를 해결했습니다. [ CUSPARSE-1897 ]

    • 다른 메모리 버퍼를 사용하여 전처리 작업(SpMV, SpMM, SDDMM)을 활성화하기 위한 문제가 해결되었습니다. [ CUSPARSE-1962 ]

    • SpSV에서 하삼각 구조와 대각선 요소가 있는 SlicedELL 형식의 행렬을 사용할 경우 잘못된 결과가 발생하는 문제를 해결했습니다. [ CUSPARSE-1996 ]

  • 알려진 문제

    • SpMM 및 기타 특정 루틴은 현재 2^31개의 0이 아닌 요소에 접근하는 행렬을 처리할 때 제한됩니다. [ CUSPARSE-2133 ]

  • 사용 중단

    • 다음 cuSPARSE 기능은 더 이상 사용되지 않으며 향후 주요 릴리스에서 제거될 예정입니다[ 4687069 ].

    • cusparseSpVV()

    • cusparseAxpby()

    • cusparseXgemvi()

    • cusparseSbsr2csr()

    • cusparseSgebsr2csr()

    • cusparseSgebsr2gebsr()

    • cusparseXbsrmm()(대신 사용 cusparseSpMM)

    문제가 있는 경우 Math-Libs-Feedback @ nvidia.com 으로 문의 하거나 https://forums.developer.nvidia.com/을 방문 하세요 .

    • 16비트 복소수 부동 소수점(CUDA_C_16F) 및 16비트 복소수 bfloat 부동 소수점(CUDA_C_16BF) 데이터 유형에 대한 지원이 향후 릴리스에서 cuSPARSE에서 제거될 예정입니다. 이러한 데이터 유형은 CUDA 12.2부터 더 이상 지원되지 않습니다. [ CUSPARSE-2225 ]

2.4.3. cuSPARSE: 릴리스 12.6 업데이트 2

  • 해결된 문제

    • cusparseSpMV_preprocess()cusparseSpMM_preprocess(), 및 에 대한 설명서를 다시 작성했습니다 cusparseSDDMM_preprocess(). 이제 설명서에서는 이러한 함수를 사용할 때 코드가 충족해야 하는 추가 제약 조건을 설명합니다. [ CUSPARSE-1962 ]

    • cusparseSpMV()외부 버퍼의 값이 다음 호출에서도 유지될 것으로 예상합니다. 그렇지 않으면 잘못된 결과를 계산하거나 충돌이 발생할 수 있습니다. [ CUSPARSE-1897 ]

    • cusparseSpMV_preprocess()cusparseSpMM_preprocess()동일한 매트릭스에서 실행하면 올바르게 실행되지 않으며 그 반대의 경우도 마찬가지입니다. [ CUSPARSE-1897 ]

    • cusparseSpMV_preprocess()동일한 행렬에서 두 번 이상 호출되는 경우 SpMV 계산을 실행합니다. [ CUSPARSE-1897 ]

    • cusparseSpMV()cusparseSpMM()동일한 매트릭스를 사용한 후속 호출이 잘못된 결과를 생성하거나 충돌할 수 있습니다 . [ CUSPARSE-1897 ]

    • 단일 희소 행렬 과 단일 열만 있는 A밀집 행렬을 사용하는 경우, 두 행렬을 모두 호출하면 후속 호출이 충돌하거나 잘못된 결과가 생성될 수 있습니다. SpMV와 SpMM의 역할을 바꾼 경우에도 마찬가지입니다. [ CUSPARSE-1921 ]XcusparseSpMM_preprocess(A,X,...)cusparseSpMV()

2.4.4. cuSPARSE: 릴리스 12.6

  • 알려진 문제

    • cusparseSpMV_preprocess()동일한 행렬에서 두 번 이상 호출되면 SpMV 계산을 실행합니다. [ CUSPARSE-1897 ]

    • cusparseSpMV_preprocess()cusparseSpMM_preprocess()동일한 매트릭스에서 실행된 경우에는 실행되지 않으며 그 반대의 경우도 마찬가지입니다. [ CUSPARSE-1897 ]

    • 모든 호출에 동일한 external_buffer를 사용해야 합니다 cusparseSpMV. [ CUSPARSE-1897 ]

2.4.5. cuSPARSE: 릴리스 12.5 업데이트 1

  • 새로운 기능

    • .BSR 형식에 대한 지원이 추가되었습니다 cusparseSpMM.

  • 해결된 문제

    • cusparseSpMM()배치 사이에 패딩이 있음을 나타내는 경우 alpha=0때때로 잘못된 결과가 나올 수 있습니다 .num_batches>1batch_stride

    • cusparseSpMM_bufferSize()희소 행렬이 Blocked Ellpack이고 밀집 행렬에 열이 하나(n=1)만 있는 경우 잘못된 크기가 반환됩니다.

    • cusparseSpMMk=0(예: A에 열이 없는 경우) 잘못된 결과가 반환되었습니다 . 올바른 동작은 를 수행하는 것입니다 . 버그 동작은 전혀 수정되지 않았습니다.C \*= betaC

    • cusparseCreateSlicedEll슬라이스 크기가 행렬의 행 개수보다 큰 경우 오류가 반환됩니다.

    • Sliced-ELLPACK은 cusparseSpSV대각 행렬에 대해 잘못된 결과를 생성합니다.

    • cusparseSpSV_analysis()일부 행렬과 일부 슬라이스 크기에 대한 리소스가 부족하여 Sliced-ELLPACK이 실패했습니다.

2.4.6. cuSPARSE: 릴리스 12.5

  • 새로운 기능

    • SpMV에서 혼합된 입력 유형에 대한 지원이 추가되었습니다: 단일 정밀도 입력 행렬, 이중 정밀도 입력 벡터, 이중 정밀도 출력 벡터.

  • 해결된 문제

    • cusparseSpMV()출력 벡터가 16바이트에 맞춰지지 않으면 잘못된 메모리 액세스가 발생합니다.

2.4.7. cuSPARSE: 릴리스 12.4

  • 새로운 기능

    • 희소 행렬-벡터 곱셈에 대한 전처리 단계를 추가했습니다 cusparseSpMV_preprocess().

    • . 에 대한 혼합 실수 및 복소수 유형에 대한 지원이 추가되었습니다 cusparseSpMM().

    • cusparseSpSM_updateMatrix()분석과 해결 단계 사이에 희소 행렬을 업데이트하기 위한 새로운 API를 추가했습니다 cusparseSpSM().

  • 알려진 문제

    • cusparseSpMV()출력 벡터가 16바이트에 맞춰지지 않으면 잘못된 메모리 액세스가 발생합니다.

  • 해결된 문제

    • cusparseSpVV()희소 벡터에 0이 아닌 값이 많을 경우 잘못된 결과가 제공됩니다.

2.4.8. cuSPARSE: 릴리스 12.3 업데이트 1

  • 새로운 기능

    • .64 및 128 블록 크기에 대한 지원이 추가되었습니다 cusparseSDDMM().

    • cusparseSDDMM_preprocess()BSR에 대한 전처리 단계를 추가하여 cusparseSDDMM()주요 컴퓨팅 단계의 성능을 개선하는 데 도움이 됩니다.

2.4.9. cuSPARSE: 릴리스 12.3

  • 새로운 기능

    • 이제 및 루틴 cusparseSpSV_bufferSize()은 cusparseSpSV_analysis()밀집 벡터에 대한 NULL 포인터를 허용합니다.

    • 이제 및 루틴은 값에 대한 NULL 포인터 cusparseSpSM_bufferSize()가 cusparseSpSM_analysis()있는 고밀도 행렬 설명자를 허용합니다.

  • 알려진 문제

    • 및 루틴 cusparseSpSV_analysis()은 cusparseSpSM_analysis()호출을 차단하고 비동기적이지 않습니다.

    • cusparseSpSV()슬라이스 ELLPACK 포맷을 사용하고 행렬 A에 전치/전치 켤레 연산을 수행 하면 잘못된 결과가 발생할 수 있습니다.

  • 해결된 문제

    • cusparseSpSV()어떤 경우에는 불확실한 결과가 제공되었습니다.

    • cusparseSpSV_analysis()멀티스레드 환경에서 가끔씩 중단 되는 문제를 해결했습니다 .

    • 출력 벡터/행렬 또는 입력 행렬에 NaN이 포함된 경우 가끔 잘못된 출력이 생성되는 cusparseSpSV()문제 를 해결했습니다 .cusparseSpSV()

2.4.10. cuSPARSE: 릴리스 12.2 업데이트 1

  • 새로운 기능

  • 해결된 문제

    • CUSPARSE_SPMM_CSR_ALG3알고리즘 선택 과정에서 혼란을 피하기 위해 대체 방안을 제거했습니다 .

    • 지원되는 작업을 명확하게 설명했습니다 cusparseSDDMM().

    • cusparseCreateConstSlicedEll()이제 const포인터를 사용합니다.

    • 1 기반 인덱싱을 사용 하는 드문 예외 상황에서 잘못된 결과가 발생하는 문제를 수정했습니다 cusparseCsr2CscEx2().

    • cusparseSpSM_bufferSize()필요한 것보다 약간 적은 메모리를 요청할 수 있습니다.

    • cusparseSpMV()이제 꼭 필요할 때만 버퍼 포인터의 유효성을 확인합니다.

  • 사용 중단

    • 여러 레거시 API가 공식적으로 지원 중단되었습니다. 모든 API에 컴파일 타임 경고가 추가되었습니다.

2.4.11. cuSPARSE: 릴리스 12.1 업데이트 1

  • 새로운 기능

    • SDDMM 루틴을 지원하는 일반 API에 대한 BSR(Block Sparse Row) 희소 행렬 저장소가 도입되었습니다( cusparseSDDMM).

    • cusparseSpMV일반 API에 대한 희소 행렬-벡터 곱셈( ) 및 단일 우변을 갖는 삼각 솔버( ) 를 지원하는 Sliced ​​Ellpack(SELL) 희소 행렬 저장 형식이 도입되었습니다 cusparseSpSV.

    • cusparseSpSV_updateMatrix분석 단계 후 단일 우변을 사용하여 희소 삼각형 솔버에서 행렬 값 및/또는 행렬 대각선을 업데이트하기 위한 새로운 API 호출( )을 추가했습니다 .

2.4.12. cuSPARSE: 릴리스 12.0 업데이트 1

  • 새로운 기능

    • cusparseSDDMM()이제 혼합 정밀도 계산을 지원합니다.

    • cusparseSpMM()NVIDIA Ampere 아키텍처 GPU에서 일부 행렬의 alg2 혼합 정밀도 성능이 향상되었습니다 .

    • cusparseSpMV()새로운 부하 분산 알고리즘으로 성능이 향상되었습니다 .

    • cusparseSpSV()이제는 cusparseSpSM()제자리 계산을 지원합니다. 즉, 출력 및 입력 벡터/행렬이 동일한 메모리 주소를 갖습니다.

  • 해결된 문제

    • cusparseSpSM()RHS 행렬의 선행 차원(ld)이 열/행의 수보다 큰 경우 잘못된 결과가 발생할 수 있습니다.

2.4.13. 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.8

  • 새로운 기능

    • 여러 가지 새로운 부동 소수점 데이터 유형에 대한 지원이 추가되었습니다.

      • E2M1(2비트 지수, 1비트 가수)

      • E2M3(2비트 지수, 3비트 가수)

      • E3M2(3비트 지수, 2비트 가수)

      • E8M0(8비트 지수, 0비트 가수)

      변환 연산자 및 내장 함수를 포함한 FP4, FP6 및 FP8 유형에 대한 자세한 내용은 CUDA Math API 설명서를 참조하세요. [ CUMATH-1385 ]

    • 이러한 유형에 대한 변환 작업은 특정 장치(예: 컴퓨팅 기능 10.0a의 장치)에서 기본적으로 지원되고 다른 장치는 에뮬레이션 경로를 사용합니다.

    • 최적화된 표준 단정밀도 쌍곡탄젠트( tanhf()) 함수로 30-40% 더 빠른 성능을 달성했습니다. [ 4557267 ]

    • 여러 가지 새로운 tanh 구현이 추가되었습니다.

      • __tanhf(float x): 새로운 빠른 정확도 감소 수학 내장

      • htanh()및 h2tanh(): 스칼라 및 팩 형식의 half 및 bfloat16 유형에 대한 tanh 함수

      • htanh_approx()및 h2tanh_approx(): 빠른 정확도 감소 버전

      자세한 사용 정보는 CUDA Math API 문서를 참조하세요. [ CUMATH-6821 ]

    • __float128컴퓨팅 기능 10.0 이상의 GPU에서 장치 계산 시 4정밀도 데이터 유형 및 일부 수학 라이브러리 연산에 대한 지원이 추가되었습니다 . 자세한 내용은 CUDA Math API 문서를 참조하십시오. [ CUMATH-5463 ]

  • 알려진 문제

    • MXFP4/MXFP6/MXFP8 형식으로 변환할 때 개발자는 현재 0으로 반올림하는 동작만 구현하는 C++ 변환 생성자를 사용해서는 안 됩니다. MXFP 형식으로 변환할 때는 양의 무한대로 반올림하는 동작을 사용해야 합니다. 이 동작은 .NET과 같은 변환 함수에서 옵션으로 구현되어 있습니다 __nv_cvt_bfloat16raw_to_e8m0. C++ 변환 생성자의 동작은 향후 업데이트에서 변경될 예정입니다.

2.5.2. CUDA Math: 릴리스 12.6 업데이트 1

  • 해결된 문제

    • 릴리스 12.6의 문제 4731352가 해결되었습니다.

2.5.3. CUDA 수학: 릴리스 12.6

  • 알려진 문제

    • NVIDIA는 지속적인 호환성 테스트 결과, MSVC 17.10으로 컴파일된 프로그램에서 여러 CUDA Math Integer SIMD API가 CPU에서 사용될 경우 잘못된 결과를 생성하는 것을 확인했습니다. 근본 원인은 GPU 기능의 호스트 기반 에뮬레이션을 수행할 때 정수 변환 시 정의되지 않은 동작에 노출된 API의 헤더 기반 구현에 코딩 오류가 있는 것으로 밝혀졌습니다. 이 문제는 향후 CUDA 릴리스에서 수정될 예정입니다. 영향을 받는 애플리케이션은 CUDA 커널이 아닌 CPU에서 __vimax3_s16x2__vimin3_s16x2__vibmax_s16x2, 를 호출하는 애플리케이션입니다 __vibmin_s16x2. [ 4731352 ]

2.5.4. CUDA 수학: 릴리스 12.5

  • 알려진 문제

    • 지속적인 테스트 결과, 배정밀도 lgamma()함수가 문서화된 4ulp 정확도 손실보다 더 큰 손실을 경험할 수 있는 구간 경계를 업데이트했습니다. 새로운 구간은 (-23.0001; -2.2637)로 표시됩니다. 이 결과는 CUDA 12.5 및 이전 모든 버전에 적용됩니다. [ 4662420 ]

2.5.5. CUDA 수학: 릴리스 12.4

  • 해결된 문제

    • 헤더 의 호스트별 코드 cuda_fp16/bf16는 이제 유형 펀닝에서 자유로워졌으며 엄격한 별칭 규칙에 기반한 최적화가 있는 경우 올바르게 작동합니다. [ 4311216 ]

2.5.6. CUDA 수학: 릴리스 12.3

  • 새로운 기능

    • SIMD Integer CUDA Math API의 성능이 개선되었습니다.

  • 해결된 문제

    • 컴파일러 옵션으로 컴파일할 경우 Math __hisinf()API와 cuda_fp16.h헤더 cuda_bf16.h가 자동으로 잘못된 결과를 생성하는 문제가 있었는데, 이는 -std=c++20기본 nvcc 컴파일러 문제로 인해 발생했으며, 이 문제는 버전 12.3에서 해결되었습니다.

  • 알려진 문제

    • cuda_fp16.h및 헤더 사용자는 cuda_bf16.h호스트 컴파일러의 엄격한 별칭 규칙 기반 최적화(예: 호스트 GCC 컴파일러로 전달)를 비활성화하는 것이 좋습니다 . 이러한 기능은 , 유형 구현 -fno-strict-aliasing에 사용되는 유형 펀닝 관용어를 방해 하고 사용자 프로그램을 정의되지 않은 동작에 노출시킬 수 있습니다. 헤더는 #pragma GCC 진단 무시를 통해 GCC 진단을 억제합니다 . 이 동작은 향후 헤더 버전에서 개선될 수 있습니다.__half__half2__nv_bfloat16__nv_bfloat162-Wstrict-aliasing

2.5.7. CUDA 수학: 릴리스 12.2

  • 새로운 기능

    • CUDA Math API __half와 __nv_bfloat16유형은 많은 산술 연산과 변환에 대한 호스트 측 <에뮬레이션> 지원을 포함하여 사용성이 개선되었습니다.

    • __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 툴킷 12.2 이상으로 업데이트할 것을 권장합니다. 영향을 받는 알고리즘은 오프라인 컴파일과 JIT(Just-In-Time) 컴파일 모두에서 발견되었습니다. JIT 컴파일은 드라이버에서 처리되므로, IEEE754 준수가 필요하고 JIT를 사용하는 경우 R535(Windows에서는 R536) 이상의 드라이버 버전으로 업데이트할 것을 권장합니다. 이는 소프트웨어 알고리즘 수정 사항이며 특정 하드웨어에 국한되지 않습니다.

    • __expf()단일 정밀도 내재 함수 와 __exp10f()이중 정밀도 함수에 대해 관찰된 최악의 경우 오차 한계를 업데이트했습니다 asinh().acosh()

2.5.8. CUDA 수학: 릴리스 12.1

  • 새로운 기능

    • atanfacosfasinfsinpifcospifpowferff, 및 에서 성능과 정확도가 향상되었습니다 tgammaf.

2.5.9. CUDA 수학: 릴리스 12.0

  • 새로운 기능

  • 알려진 문제

    • 기본 '가장 가까운 짝수로 반올림' 모드에서 배정밀도 나눗셈 알고리즘을 유발하는 배정밀도 입력은 잘못된 오버플로를 발생시킵니다. 즉, 예상한 위치에 무한 결과가 전달됩니다. 영향을 받는 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

  • 사용 중단

    • CTX가 아닌 API는 더 이상 사용되지 않으며 CUDA Toolkit 13.0 에서 제거될 예정입니다 .

    • 이 API는 향후 릴리스에서 더 이상 지원되지 않습니다. 개발자는 NPP 문서 - 일반 규칙 및 StreamContexts 예제 에 설명된 구조를 사용하여 애플리케이션 관리 스트림 컨텍스트nppGetStreamContext() 로 전환하는 것이 좋습니다 .NppStreamContext

  • 해결된 문제

    • nppiTranspose이제 GPU 스트리밍 멀티프로세서가 처리할 수 있는 수준까지 확장하여 더 큰 차원을 지원합니다. [ 4911722 , 4807542 ]

    • nppiDistanceTransformPBA_8u16u_C1R_Ctx. [ 4832970 ] 의 거리 계산 버그가 수정되었습니다 .

    • NPP ResizeSqrPixelAPI의 성능 문제가 해결되어 성능이 향상되었습니다.

    • API 에 대해 성능 개선이 구현되었습니다 nppiCrossCorrelation. [ 4801572 ]

    • nppiYUVToRGB_8u_C3R이제 블록 선형 포맷 입력을 지원합니다. [ 4667704 ]

    • nppiFilterGaussAdvanced출력 피치가 512로 설정된 경우 잘못된 결과가 생성되는 문제가 해결되었습니다 . [ 4861931 ]

  • 새로운 기능

    • . 을 통한 대용량 파일 지원이 향상되었습니다 size_t.

2.6.2. NPP: 릴리스 12.0

  • 사용 중단

    • 다음 릴리스부터 CTX가 아닌 API 지원이 중단됩니다.

  • 해결된 문제

    • NPP ResizeSqrPixelAPI의 성능 문제가 해결되어 성능이 향상되었습니다.

2.7. nvJPEG 라이브러리

2.7.1. nvJPEG: 릴리스 12.9

  • 새로운 기능

    • NVIDIA Jetson Thor 하드웨어(Blackwell SM 10.1 아키텍처)에 하드웨어 가속 JPEG 인코딩 지원이 추가되었습니다. 서브샘플링 매개변수가 420(RGB/YUV/NV12 입력의 경우)으로 설정되고 입력 서브샘플링도 420(YUV/NV12 입력의 경우)인 경우 하드웨어 인코딩이 사용됩니다. 하드웨어 인코딩을 사용할 수 없는 경우 CUDA 인코딩으로 대체됩니다. 하드웨어 인코딩에 대한 추가 조건은 해당 설명서에 설명되어 있습니다.

    • 하드웨어 엔진과 CUDA 모두에 대해 NV12와 YUY2라는 두 가지 새로운 포맷에 대한 JPEG 디코딩 지원이 추가되었습니다. NV12의 경우 크로마 서브샘플링은 420, YUY2의 경우 422여야 합니다.

    • 새로운 공개 구조체 및 열거형:

      • nvjpegEncBackend_t값: NVJPEG_ENC_BACKEND_DEFAULT, NVJPEG_ENC_BACKEND_GPU 및 NVJPEG_ENC_BACKEND_HARDWARE

      • NVJPEG_OUTPUT_NV12, NVJPEG_OUTPUT_YUY2

      • NVJPEG_INPUT_YUV, NVJPEG_INPUT_NV12

    • 새로운 API:

      • nvjpegEncoderStateSetBackend: 인코더 백엔드를 설정합니다

      • nvjpegGetHardwareEncoderInfo: 사용 가능한 하드웨어 인코더 엔진의 수를 쿼리합니다.

      • nvjpegEncode하드웨어 인코딩에는 . nvjpegEncodeYUV가 필요합니다 nvjpegEncodeImage.nvjpegEncode

  • 해결된 문제

    • RGB에서 인코딩할 때 입력 피치는 더 이상 수평 서브 샘플링 요소의 배수가 될 필요가 없으므로 사용자가 특별히 처리할 필요가 없습니다. [ 4363416 ]

    • CPU 백엔드를 사용하여 프로그레시브 JPEG를 디코딩할 때 간헐적으로 8x8 블록이 손상되는 문제가 해결되었습니다. [ 4829300 ]

    • 매우 큰 이미지를 디코딩할 때 범위를 벗어난 쓰기 문제가 해결되었습니다. [ 4872523 ]

  • 사용 중단

    • nvjpegEncoderParamsCopyHuffmanTables다음 주요 릴리스에서 제거될 예정입니다.

2.7.2. nvJPEG: 릴리스 12.8

  • 새로운 기능

    • NVIDIA Blackwell 아키텍처 GPU에 대한 nvJPEG에 하드웨어 가속 JPEG 디코딩 지원이 추가되었습니다.

    • nvJPEG 라이브러리는 이제 인코딩 시 GPU 메모리 사용량을 크게 줄여 이미지 크기와 크로마 서브샘플링 모드에 따라 30%에서 50%까지 메모리를 절약합니다. 5MB(약 2K x 1K 픽셀)보다 큰 이미지와 4:2:2 및 4:2:0과 같은 일반적인 서브샘플링 모드를 사용하는 경우 메모리 절약률은 약 50%입니다. 또한, nvJPEG는 크거나 복잡한 이미지를 처리할 때 인위적으로 메모리를 소모하지 않으므로 안정성과 성능이 향상됩니다.

  • 해결된 문제

    • 크기가 25픽셀 미만인 매우 작은 이미지의 올바른 인코딩을 방해하는 nvJPEG의 문제가 해결되었습니다. [ 4655922 ]

    • . [ 4663831 ] nvjpegDecodeJpegHost을 사용하여 잘린 JPEG 파일을 디코딩할 때 범위를 벗어난 읽기가 발생하는 문제를 해결했습니다 .NVJPEG_BACKEND_GPU_HYBRID backend

2.7.3. nvJPEG: 릴리스 12.4

  • 새로운 기능

    • 단일 이미지 CUDA 디코드를 위한 IDCT 성능 최적화.

    • Zero Copy 동작이 변경되었습니다. NVJPEG_FLAGS_REDUCED_MEMORY_DECODE_ZERO_COPY플래그를 설정해도 더 이상 활성화되지 않습니다 NVJPEG_FLAGS_REDUCED_MEMORY_DECODE.

2.7.4. nvJPEG: 릴리스 12.3 업데이트 1

  • 새로운 기능

    • 새로운 API: nvjpegBufferPinnedResize이를 통해 nvjpegBufferDeviceResize고정된 버퍼와 장치 버퍼를 사용하기 전에 크기를 조정할 수 있습니다.

2.7.5. nvJPEG: 릴리스 12.2

  • 새로운 기능

    • JPEG 무손실 디코드(프로세스 14, FO 예측)에 대한 지원이 추가되었습니다.

    • nvJPEG가 이제 L4T에서 지원됩니다.

2.7.6. nvJPEG: 릴리스 12.0

  • 새로운 기능

    • nvJPEG 코덱에 대한 GPU 메모리 최적화가 개선되었습니다.

  • 해결된 문제

    • nvJPEGDecMultipleInstances많은 수의 스레드로 테스트했을 때 런타임 오류가 발생하는 문제가 해결되었습니다.

    • CMYK 4가지 구성 요소 색상 변환 문제가 이제 해결되었습니다.

  • 알려진 문제

    • 백엔드 NVJPEG_BACKEND_GPU_HYBRID- 추가 스캔 길이가 있는 비트스트림을 처리할 수 없습니다.

  • 사용 중단

    • Encoder에서 Huffman 테이블의 재사용( nvjpegEncoderParamsCopyHuffmanTables).

1

선택된 Linux 배포판에서만 사용 가능

3. 공지사항

3.1. 공지

본 문서는 정보 제공 목적으로만 제공되며, 제품의 특정 기능, 상태 또는 품질에 대한 보증으로 간주되지 않습니다. NVIDIA Corporation("NVIDIA")은 본 문서에 포함된 정보의 정확성이나 완전성에 대해 명시적 또는 묵시적으로 어떠한 진술이나 보증도 하지 않으며, 여기에 포함된 오류에 대해 책임을 지지 않습니다. NVIDIA는 해당 정보의 사용 또는 그 사용으로 인해 발생할 수 있는 제3자의 특허 또는 기타 권리 침해에 대해 어떠한 책임도 지지 않습니다. 본 문서는 자료(아래 정의됨), 코드 또는 기능을 개발, 배포 또는 제공하겠다는 약속이 아닙니다.

NVIDIA는 사전 통지 없이 언제든지 이 문서에 대한 수정, 변경, 향상, 개선 및 기타 변경을 할 권리가 있습니다.

고객은 주문하기 전에 최신 관련 정보를 입수해야 하며, 해당 정보가 최신이고 완전한지 확인해야 합니다.

NVIDIA 제품은 주문 확인 시 제공되는 NVIDIA 표준 판매 약관에 따라 판매됩니다. 단, NVIDIA와 고객의 공식 담당자가 서명한 개별 판매 계약서("판매 약관")에서 별도로 합의한 경우는 예외입니다. 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. 오픈CL

OpenCL은 Apple Inc.의 상표이며 Khronos Group Inc.에 라이선스 하에 사용됩니다.

3.3. 상표

NVIDIA와 NVIDIA 로고는 미국 및 기타 국가에서 NVIDIA Corporation의 상표 또는 등록 상표입니다. 다른 회사명 및 제품명은 해당 회사와 관련된 해당 회사의 상표일 수 있습니다.


컴퓨터/노트북/인터넷

IT 컴퓨터 기기를 좋아하는 사람들의 모임방

List of Articles
번호 분류 제목 조회 수 날짜
공지 뉴스 구글 최신 뉴스 file 1382 2024.12.12
공지 🚨(뉴비필독) 전체공지 & 포인트안내 1 25804 2024.11.04
공지 클릭만 해도 포인트 만렙! 도전 4541 2025.03.19
공지 URL만 붙여넣으면 끝! 임베드 기능 20397 2025.01.21
10638 일반 인텔 애로우레이크의 CPU 내부 다이 모습 file 598 2025.05.10
10637 일반 스카이프, 오늘 서비스 종료 file 600 2025.05.10
10636 일반 SKT "보상 시 고객도 입증책임" file 628 2025.05.10
10635 정보 KISA, 신규 악성코드 위협 공지...SKT 내부 서버에서 ‘BPF도어’ 악성코드 변종 8종 추가 발견 575 2025.05.10
10634 일반 “SK하이닉스 내부자에 뚫렸다” 中이직 앞두고 1만여건 기술 유출 file 571 2025.05.10
10633 일반 기가바이트, 12년만에 메인보드에 새로운 기능을 추가 file 586 2025.05.10
10632 일반 SKT “위약금 면제 시 수백만명 해지… 분위기 휩쓸려 시장 대혼란” file 594 2025.05.10
» 일반 CUDA 툴킷, 맥스웰, 파스칼, 볼타 지원 중단 594 2025.05.10
10630 일반 그래픽카드를 활용한 암호 해독 벤치마크 file 594 2025.05.10
10629 일반 애즈락 X870 스틸 레전드 메인보드에서 라이젠 9 9950X CPU가 사망 file 582 2025.05.10
10628 일반 코어 울트라 200 메인보드, PCIe 5.0 M.2 성능 제한이 있음 file 560 2025.05.10
10627 일반 시게이트, 2030년까지 100TB 하드디스크 출시 file 580 2025.05.10
10626 정보 MS가 인텔 18A 공정 계약을 체결? 1 file 595 2025.05.10
10625 정보 블루투스 6.1 발표. 전력 효율과 보안 향상 file 613 2025.05.10
10624 정보 중국 Hygon, 128코어 512스레드의 서버 프로세서 로드맵 공개 file 575 2025.05.10
10623 정보 인텔, 컴퓨텍스에서 아크 프로 B60 24GB를 발표? file 607 2025.05.10
10622 일반 지포스 RTX 5060의 리뷰용 드라이버가 없음 file 623 2025.05.10
10621 일반 젠슨황이 사인한 리바 TNT 엔지니어링 프로토타입 키트, 도시락 상자 file 564 2025.05.10
10620 일반 SSD랑 HDD 가격 요즘 진짜 헬이다… 업체들 때문에 미쳐버릴 듯 4 3862 2025.04.18
10619 일반 컴퓨터 메인보드용 ddr6 메모리는 언제나올지 찾아봤는데 593 2025.04.08
10618 일반 갤럭시탭 S10 FE 4월 3일 출시했습니다. 혜택 나쁘지 않네요 840 2025.04.05
10617 수리/AS 절대 공개하지 않는 메인보드 AS센터의 전설의 기술 1 file 922 2025.03.30
10616 수리/AS 메인보드 수리방법 가감없이 공유합니다! #shorts file 861 2025.03.30
10615 일반 라이카와 협업한 샤오미 15 울트라 실버 크롬 언박싱 967 2025.03.29
10614 일반 어도비 비정품 알림 Adobe 앱 라이선스 관련 알림창 없애기 592 2025.03.28
10613 일반 윈도우 12, 과연 등장할까? (예상 및 루머 정리) 896 2025.03.21
10612 일반 메인보드중에 고장률이 가장 낮은 회사 677 2025.03.19
10611 일반 벽 콘센트 꼽는거 구멍 위치가 정해져있었네 file 1437 2025.03.14
10610 일반 듀얼 오리 질문 !! 7039 2025.03.10
10609 일반 와... 이건 좀 심각한데;; RTX 5070 게임 성능 리뷰🦅 1 file 9983 2025.03.06
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 355 Next
/ 355