• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • Reading Time: 7 minutes

    NVIDIA? ?? CUDA ?? ????? ???? 12.0? ?????. ? ???? ?? ?? ???? ??? ?? ????, ??? ???? ??? ?? ??? ????? ??? CUDA ?????? ???? ??? ?? ????.

    ??? ??? YouTube Premiere ???, CUDA 12.0: ??? ??? ??? ?????.

    ?? CUDA ??? ??, ??? ????? ? ??? ??? ?? NVIDIA Hopper ? NVIDIA Ada Lovelace ?????? ???? ?? ?? ? ??? ???? ? ? ????.

    CUDA 12.0?? ??? ?? ?? ? ??? ?? ??? ?? ???? ????. ?? ?? ??? ??? ??? ?? ????, ? ?????? ?? ??? ?? ??? ?????.

    ??

    • ? ?? ??? C ? C++ API? ?? ??? PTX ?? ? ??? ???? ?? GPU? ?? ???? ????? ?? ?? ??? ?? ??? NVIDIA Hopper ? NVIDIA Ada Lovelace ???? ?? ??
    • ??? CUDA ?? ?? ?? API ???? ?? API? ?? ??? ?? ?? ??
    • CUDA ??? API ?? ??:
      • ?? ?? ?? ??? ???? GPU ???? ? ???? ??? ?? ??? ??? ? ????. ? ??? ???? ??? ??? ??? ??? ??? ???? ??? ? ???? CUDA ???? ???? ?? ?? ? ????.
      • cudaGraphInstantiate API? ???? ?? ????? ????? ?????????.
    • GCC 12 ??? ???? ??
    • C++ 20 ??
    • JIT LTO? CUDA ??? ??? nvJitLink ?????
    • ????? ??? ? ?? ?? ??
    • Nsight Compute ? Nsight Systems ??? ?? ????
    • ?? Linux ??? ?? ?? ????

    ??? ??? CUDA ?? 12.0 ??? ??? ?????. CUDA ?? 12.0? ????? ? ????.

    NVIDIA Hopper ? NVIDIA Ada Lovelace ???? ??

    CUDA ??????? ??? GPU ????? ???? ??????(SM) ? ??, ??? ??? ?? ? ?? ?? ??? ??? ?? ?? ? ????. CUDA ? CUDA ?????? GPU ???? ???? ?? ??? ???? ??? ?? ???? ?????.

    CUDA 12.0? NVIDIA Hopper ? NVIDIA Ada Lovelace ????? ??? ??? ????? ??? ??? ?????.

    • ?? PTX? ?? ?? Tensor ?? ?? ??
      • TMA ??
      • TMA ?? ??
      • Ultra xMMA(FP8 ? FP16 ??) 32?
    • ?? ????? NVIDIA Hopper GPU? membar ??? ??
    • smem ??? ?? PTX ? C++ API ??
    • CGA(Coperative Grid Array) ?? ??? C ?? ?? ??
    • SM ?????? ?? ????? ??? L2 ?? ??(NVIDIA Hopper GPU? ??)
    • SIMT ??? ?? PTX ??: elect_one
    • ?? ???? ? DPX ??? NVIDIA Hopper GPU?? ??? ? ?? ? ?? ?? ?? ?? ??(three-way max, fused add+max ?)? ?????.

    ?? ??

    ?? ??? ??????? ??? ??? ??? ??? CPU ? ?? ??? ??? ????? ?????. ???? ?????? ?? ???? ? ?? ??? ????? ?????. ?? ?? ???? ? ??? ????? ??? ????? ?? ? ?? ?? ??? ?? ??? ? ????.

    ?? ??? 11.7 ????? CUDA? ???????. ??? CUDA ????? ???? ?? ???? ??????. ?????? ?? ????? ?? ??? ??? ? ??? ?? ???? ????. ?? ??????? ??? ?? ??? ?? ?????.

    ?? ?? ??? ??? ??? ??? ??????? ?????? ? ????. ?? ???? ??? ??? ?? ???? ??????? ????? ?? ?? ?????. ?? ?? ?? ?? ? ?? ???? ????? ????.

    MetricBaselineCUDA 11.7CUDA 11.8+Improvement
    End-to-end runtime [s]2.91.70.74x
    Binary load time [s]1.60.80.01118x
    Device memory footprint [MB]12454354353x
    Host memory footprint [MB]186612296031x

    ? 1. ?? ??? ?? ?????? ?? ?? ??

    ?? ??? ?? ???? ?? ?????? 11.7 ???? ???? ???.

    ? ?????? ????? CUDA ???? ?? ??? ????? ?? ????. ??????? ?? ????? ?? ?? CUDA_MODULE_LOADING=LAZY ??? ?? ?????.

    ???

    CUDA ??? ?? ???? 11.x?? ??? ????, ??? ?? ????? ??????? ?? ??? ??? CUDA ??? ???? ??? ? ?? ???? ?????. ??? ? ? ????? ??? ?? ??? CUDA ??? ?? ??? ???? ?????, CUDA ??? ? ??? ?? ????? ???? ??? ? ????.

    ?? ?? 11.6 ??????? 11.8 ??? ? ? ??? ??? ? ??? ? ??? ?????. ?? ????? ?? ?? API ?? ABI ???? ?? ??????. ??? ??? CUDA ???? ?????.

    ??? ??? ???? CUDA 12.x?? ?????. ??? 12.0? ??? ?? ?????? ???? ?? ???? ?????. 11.x?? ??? ?? ???? ??? ??????? 12.0? ??? ? ??? ??? ? ????. ??????? 12.0? ?? ?????? 11.x?? ??? ?????? ???? ???? ?? ???? ?????.

    ?????, 12.0? ?? ?????? ??? ??????? ??? 12.x ??? ????? CUDA ?? 11.x??? ??? ????? ????.

    JIT LTO ??

    CUDA 12.0 ???? JIT LTO ??? ?? ??? nvJitLink ?????? ?????. NVIDIA? ? ??? ???? ??? ???? ????. ??? ??? ???? ?? ??? ?????.

    C++20 ???? ??

    CUDA ?? 12.0? C++20 ??? ?? ??? ?????. C++20? ?? ??? ???? ? ?? ?? ??? ?? ????? ????.

    • GCC 10
    • Clang 11
    • MSVC 2022
    • NVC++ 22.x
    • Arm C/C++ 22.x

    ??? ?? ??? ??? ?? ??? ???? ???? ?????.

    ???? C++20 ??? ??? ? ???? ???? ??? ? ??? ??? ?????.

    ?? ??

    ?? ??? ???? ???? ??? ? ?? ??? ???? C++20? ??? ???????.

    CUDA ???? ????? ??? ???? ?? ??? ?? ??? ????? CUDA C++?? ??? ??? ?? ???? ???? ???? ????. ??? ???? ? ???? ??? ??? ??? ?????.

    ??? ??

    ???? ?? ?? ??? ?????. ??? ?? ??? ? ??? ? ?? ?? ??? ????? ?????. ?? ???? ??? ??? ???? ?????.

    ???? ??? ???? ????? ???? ????? ???? ????. ???? ??? ???? co_await, co_yield ? co_return ???? ??? ???? ??? ?? ??? ?????.

    3?? ?? ???

    3?? ?? ???(<=>)? ????? ?? ??? ???? ??? ? ??? ???? ??? ??? ??? ??????.

    ?? ??? ?????? ???? ??? ???? ???? ???? ??? ??? ????? ??? ??? ???? ????? ??? ?????.

    ???? ?? ???? ??? ??? ???? ??? ?? ??? ?????.

    Nsight ??? ??

    Nsight ??? ??? CUDA ?? 12.0? ?? ???????.

    NVIDIA Nsight Systems 2022.5? InfiniBand ??? ??? ???? ????? ???????. NVIDIA Quantum InfiniBand ???? ????? ?? ??? ??? ?????. Nsight Systems ?????? ??? ???? ???? ??????? ???? ???? ? ? ??? ? ????. ?? ??? ???? ??????? ??? ???? ? ????.

    ?? 1. Nsight Systems? InfiniBand ??????

    Nsight ??? ????? ??? ? ??? ???????. Nsight Systems? ?? ??? ?? Nsight Compute? ?? ??? ?? ?? ??? ?????.

    ? ????? ????? ?? Nsight Compute 2022.4??? Nsight Systems ??? ?????. ?? ??? ???? ??? ?? ??? ???? Nsight Compute ??????? ???? ??? ? ????. ?? ?? ???? ???? ???? ???? ?? ?????? ??? ? ????.

    ? ?????? ???? ?? ? ?? ?? ?? ??????? ??? ??? ????. ??? ?????? ??? ?? ??? ? ????.

    ?? 2. Nsight Compute??? Nsight Systems ??

    ?? Nsight Compute 2022.4?? ??? ?? ?? ????? ?? ??? ?? ???? ???? ??? ??? ?? ???? ?????. ?? ??? ??? ? ??? ???? ??? ????? ?? ??? ??? ??? ?? ??? ????? ????? ??? ? ????.

    ?? ???? ???? ??? ??? ? ???? ??? ??? ?? ??? ??? ? ?? ? ?? ??? ??? ? ????. ? ?? ????? ? ? ???? ??? ??? ?? ???? ??? ??? ????? ??? ?? ??? ? ??? ?? ???? ?????.

    ?? 3. Nsight Compute? ??? ?? ???

    ?? ?? ?? ??? NVIDIA OptiX ?? ?????? ?? ??? ???? ??? ??? ? ?? ??? ???????.

    ??? ??? NVIDIA Nsight Compute, NVIDIA Nsight Systems, Nsight Visual Studio Code Edition? ?????.

    ?? ????? ????

    ?????? ??? ?? ??? ? ??? ????? ???? ??? ??? ??? ?????. ? ?????? ???? ??? ?? ?? ?? ??? ??????. NVIDIA? ??? ???? ?? ??? ????? ???? ?? ?? ??? ??????. cuFFT? CUDA ?? 11.8? 12.0 ???? 50% ??? ?? ? ?? ??? ?????.

    ??? ??? ??? ?? ? ?? ????? ?? ?????.

    cuBLAS

    cuBLASLt? ??? FP8 ??? ???? ?? ??? ?? ??? ?????. ??? ??? ?? BF16 ? FP16 ?? ???? ??? FP8 ?? ? ?? ??? ??? ?? GEMM? ?? GELU ??? ??? ?? FP16 ??? ?????.

    ??? ???? FP8 GEMM? A100? BF16? ?? H100 PCIe ? SXM?? ?? ?? 3? ? 4.5? ? ?? ? ????. CUDA Math API? ??? FP8 ?? ?? ??? ??? ???? ?? ?? FP8 ??? ?????.cuBLAS 12.0? API? ???? 64?? ?? ?? ??, ?? ?? ? ?? ??? ?????. ??? ??? ??? ??? _64 ???? ??? ?? ????? int64_t ???? ?? ????? 32?? ??? ??? API? ????


    cublasStatus_t cublasIsamax(cublasHandle_t handle, int n, const float *x, int incx, int *result);

    64?? ?? ??? ??? ????:

    cublasStatus_t cublasIsamax_64(cublasHandle_t handle, int64_t n, const float *x, int64_t incx, int64_t *result);

    cuBLAS? ??? ?? ?????. 64?? ?? API? ??? ??? 32?? ??? ??? ?????? 32?? ?? API? ???? ?? ??? ??? ?????. ? API? ????? int32_t ??? int64_t?? C/C++ ?? ?? ??? cuBLAS ??? _64 ???? ???? ??? ???? ???.

    cuFFT

    ?? ??? ?? cuFFT? ????? ??? ??? ??? ???? ?? ?? ???? ??? ???? ??? ?????.

    CUDA 12.0?? cuFFT? ???? ?? ?? CUDA PTX(Parallel Thread eXecution) ???? ??? ???? ??? ? ?? ??? ?????.

    cuFFT ??? PTX ??? cuFFT ??? ???? ? ???? CUDA ???? ????? ?? ???? ??? ???? ??????. ??? ???? ?? ???? ? ?? ?? ??? ?? NVIDIA Maxwell, NVIDIA Pascal, NVIDIA Volta ? NVIDIA Turing ????? ?? ??? ??? ?? ??? ?????.

    cuSPARSE

    SpGEMM(sparse-sparse matrix multiplication)? ??? ?? ??? ??? ?? NVIDIA? ??? ???? ?? ? ?? ??? ????? ?????. ? ?? ????? ?? ??? ?? ?? ??? ??? ???? ? ?? ????? ???? ??? ??? ? ????. ??? ??? ????? ??? ?? ??? ?? ????? ???? ???? ?????.

    INT8 ??? cusparseGather, cusparseScatter ? cusparseCsr2cscEx2? ???????.

    ????? SpSV ? SpSM? ?? ??? ??? ?? 2.5? ???????. ?? ???? SpSV? ?? 1.1? ???? SpSM? ?? 3.0? ?????.

    ?? API

    ??? NVIDIA Hopper ?????? 3-way max, fused add+max ?? ?? ?? ?? ??? ? ??? ??? ? ?? ??? ???? ? DPX ???? ?? ?????.

    ??? DPX ???? ?? ????? ????? A100 GPU?? ?? 7?? ??????. ?? ?????? ??? ?? ??? ? ??? ?? ??? ????? ???? ???? ?????. ? ?? ??? ??? ?? ? ??? ?? Math API? ?? ?????.

    ?: 3-way max + ReLU ??, max(max(max(a, b), c), 0)


    int __vimax3_s32_relu ( const int  a, const int  b, const int  c )

    ??? ??? NVIDIA Hopper GPU DPX ???? ??? ?? ????? ?? ??? ?????.

    ??? ?? ????: nvJPEG

    nvJPEG? ?? GPU ??? ?? ??? ?? ??? ??? ??? ?????. ?? ?? ?? ??? ??, ?? ?? ? ?? ? ? ?? ??? ???? ?????.

    ??

    NVIDIA? ???, ???, ???? ???? ????? ??? ?? ???? ?? ??? AI/ML ? ??? ???? ??? ????? ???? ? ???? ??? ?? ????. 

    ? CUDA 12.0 ???? ?? ?? ??? ? ?? ?? ????? ??? NVIDIA GPU ???? ??????? ????? ? ??? ?? ?????. NVIDIA Hopper ? NVIDIA Ada Lovelace ????? ??? ????? ?? ? ??? ?? CUDA ??? ??, ??? ????? ? ??? ??? ?? ???? ??? ? ????.

    CUDA ??? ???? GPU ?? ???? ???, ???? ?????? ?????? ?????, ???? ?? ??? ? HPC ??????? ??????? ??, ??? ? ??? ? ????. ? ???? GPU ?? ?????, ??? ? ??? ??, C/C++ ????, ??? ?????, ??? ?? C/C++ ? Python ?????? ?? ???? ?????.

    ??? ??? ?? ???? ????? ????.

    Discuss (0)
    +1

    Tags

    人人超碰97caoporen国产