• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • NVIDIA Math ?????? ?? GPU ?????? ??

    Reading Time: 7 minutes

    ??? GPU ??????? ??? ? ?? ?? ??? ???? ???, ????? ??, ?????? ????? ? ? ??? ????. OpenACC ?? ???? ???? GPU? ?? ?? ??? ?? ?? ??? ?? ????? ??? ??? ???? ? ?????. ???? ??? ??? ?? ??????? ??? ??? ???? ?? ?? ????. 

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

    NVIDIA Math ?????? ??? ???? ? ?? ??? ??? ?? ??? GPU ????? ????? ???? ???? ? ????. ??????? ??? ??? ? ?? ??? ?? ??? ? ???? ???? ?????? ??? ?????? ??? ?? ? ?? ??? ?? ??? ?????. 

    CUDA Toolkit??? ???(HPC) ????? ?? ??(SDK)?? ????? ???? NVIDIA Math ?????? ???? ??? ??? ?? ???? ? ? ?? ?? ?? ?? ???? ?????. ?? ?? ???? ?? ??, ? ??, ?? ???, ?? ?? ??(CFD), ?? ??, ?? ?? ??, ?? ?? ?? ????. 

    ??? ?????? OpenBLAS, LAPACK, Intel MKL ?? ?? CPU ?????? ??? ?? ??? ???? ?? ????? NVIDIA GPU? ?? ??????? ??? ? ??? ???????. ??? ??? ??? ? ? ??? DGEMM(Double Precision General Matrix Multiplication) ?? ??? ???? cuBLAS? OpenBLAS? ??? ??????. 

    ?? ?? ??? OpenBLAS DGEMM ??? ??? ????? ?????.

    // Init Data
    …
    // Execute GEMM
    cblas_dgemm(CblasColMajor, CblasNoTrans, CblasTrans, m, n, k, alpha, A.data(), lda, B.data(), ldb, beta, C.data(), ldc);

    ?? ? ?? ?? ??? cuBLAS DEGMM ??? ??? ????.

    // Init Data
    …
    // Data movement to GPU
    …
    // Execute GEMM
    cublasDgemm(cublasH, CUBLAS_OP_N, CUBLAS_OP_T, m, n, k, &alpha, d_A, lda, d_B, ldb, &beta, d_C, ldc));

    ? ???? ? ? ??? ??? ???? OpenBLAS CPU ??? cuBLAS API ??? ??? ? ????.?cuBLAS ? OpenBLAS ??? ?? ?? ??? ?????. cuBLAS ??? NVIDIA(R) V100 Tensor Core GPU?? ?? 20??? ???? ??????. ?? ???? ?? ? ??? ???? ? ???? ??? ??? ????.

    ?? 1. OpenBLAS CPU ??? GPU?? cuBLAS API ??? ??? ?? DGEMM ?? ??? 19.2? ??????. ???? A, B ? C ??? CPU? GPU?? 4K x 4K ?????,

    ???? ??: ? ?????? cuPycuDNNRAPIDS ?? ?? ?? Python API? ?? ???? ??? API? ??? ??? ??? ?? NVIDIA Math ?????? ??? ????. 

    ?? ????? ?? ??? Math ?????? ?? ???????. ?? ???? ? ??? NVIDIA Math ?????? ?? ?? ???? ??? ? ????.

    CPU? ???? ??? ???? ?? ??

    BLAS? GPU ?? ???? ?? ??? ????? ??? ? ?? NVIDIA Math ?????? ????. ???? NVIDIA Math ?????? ?? ??? ???? ????? ??? ??? ?? ? ?? ??? ?? ?????.

    cuBLAS? ?? BLAS ??

    GEMM(General Matrix Multiplication)? AI ? ?? ?? ??? ???? BLAS(Basic Linear Algebra Subprograms) ??? ?? ?? ??? ?????. ?? ? ?? ???????? ???? ??? ?????. GEMM? ? ?? ?????? ???? ??? ?? ??? ?? ??? ? ???? GEMM? ??? ??? ?????.

    cuBLAS ?????? ??? GPU ?? ??? ???? BLAS ??????. ? ?????? ??(?? 1), ???(?? 2), ???(?? 3) ?? ?? ? ?? ??? ??? ? ?? ???? ???? ????.

    ?? ??-?? ?? ?? ???? ??? cuBLAS? ??? ?? ?? ??? GEMM? ???? ?? ??, ?? ?? ? LAPACK??? ??? ? ????. ?? ??, ?? ???? ??? ?? ? ?? ??? ?? ??? ?? ??? CPU ? GPU?? BLAS ?? ??? ?? ?? ??? ?????. 

    cuBLASXt

    ?? ??? ?? ?? GPU??? ?????, ??????? ??-??, ??-GPU ??? ??????cuBLASXt? ?? ??? ? ? ????. cuBLASXt? ????? CPU-GPU ??? ??? ?? ??? BLAS Level 3 ??? ???? herk ?? Hermitian ??? ?????? ??-?? ??? ?????.

    cuBLASLt

    cuBLASLt? GEMM? ???? ?? ????????. ? ?????? ?? 2? ??? ?? ??? “??”? ?? ??? ??? ??????? ???? ??? ??? ???? ??? ?? ??? ??? ??? ?????. ?? ???? ????? ??? ??? ???? ?? ?????(????? ReLU ??? ???? ?????, ???? ???? ?? ??? ??).

    cuBLASMg: CUDA Math Library Early Access ????

    ?? ??? ??? cuBLASMg? ?? ??-GPU, ??-?? ??-???? ????? ?????. ?? ? ???? CUDA Math Library Early Access ?????? ???? ????. ?? ????? ?????.

    cuSPARSE? ?? ?? ?? ??

    ?? ??, ?? ???(SpMM)? ??, ???, ??? ??, ?? ??, ? ??, CFD, ?? ?? ?? ??? ??? ?? ????? ?????. ?? ?? ?? ??????? ???? ?? ?? ??? ?? ?????.

    ??? ??? ?? ?? ?? ? ??? ?? ??? ???? ?? ???? ???????. ? ?? ?? ? ?? ? ??? ??? ????? ??? ??? ???? ?? ??? ??? ????. ??? ??? cuSPARSE ?? ?????? ???? ?? ??? ?? ??? ?? ???? ?? ???? ??? ?????. 

    cuSPARSE?? ???? BLAS ??? GPU ?? ??? ??? ? ???? ?? ??? ???? ? ??????. ????? ??? 4?? ????? ????. 

    • ?? 1? ?? ??? ?? ?? ???? ?? ?? ??? ?????.?
    • ?? 2? ?? ??? ?? ?? ???? ??-??? ?? ??? ?????.?
    • ?? 3? ?? ??? ?? ?? ?? ???? ??-??? ?? ??? ?????.?
    • ?? 4? ??? ?? ??? ?? ????, ?? ???(CSR) ??? ?????.

    cuSPARSELt

    ?? ???? ? ??? ??? helper ??? ?? ?? ??-?? ???? ??? ? ?? ?? ??? cuSPARSE ?????? ?????cuSPARSELt? ?????. cuSPARSELt ?????? ?? ??? ?? ??? cuSPARSELt? ?? NVIDIA Ampere ??? ??? ????? ?????.

    cuTENSOR? ?? ?? ?????? ???

    cuTENSOR ?????? ?? ???? ????? ??????. ??? ?? ?? ??????? ???? ?? ??? ?? ??? ??? ?? ???? ???? ? ???? ? ? Math ?????. cuTENSOR? ?? ?? ??, ?? ??, ??? ?? ??? ?? ??? ???? ??? ? ?? ?? ? ??, ??? ??, ?? ??, ?? ??? ???? ??? ??? ? ?????.

    cuTENSORMg

    cuTENSOR ??? ??? ??? DGX A100? ??? ??? ??? ??? ?? ??? ??-GPU? ????? ??? cuTENSORMg? ?????. ? ?????? ?? ???? ????? ??? ?? ??? ?? ?? ??? ?? ?? ??, ?? ??, ??? ?? ??? ???? ????. .

    cuSOLVER? ?? GPU ?? LAPACK ??

    cuSOLVER ?????? cuBLAS ?????? cuSPARSE ?????? ???? ???? ??? ??? ?? ?? ??????. cuSOLVER? ?? ????, ?? ??? ?? ?? ?? ??, ?? ???? ??, ??? ?? ?? LAPACK? ??? ??? ?????.

    cuSOLVER? ??? ?? ? ?? ??? ???? ????. 

    • cuSolverDN? ?? ?? ????? ?????.
    • cuSolverSP? ?? QR ????? ???? ?? ?? ??? ?????.
    • cuSolverRF? ?? ????? ???? ?? ??? ??? ??? ??? ??? ???? ? ?????.?

    cuSOLVERMg

    GPU ?? ScaLAPACK ??, ??? ?? ??, 1-D ?? ?? ?? ???? ??, cuSOLVER ??? ?? ??-??, ??-GPU ??? ????? cuSOLVERMg? ???????. 

    cuSOLVERMp

    ??? ?? ??? ??? ????? ??-??, ??-GPU ??? ?????. ??? LU ???? ??? Cholesky ???? ???? ? ??? cuSOLVERMp? ??????. 

    cuRAND? ?? ??? ?? ??

    cuRAND ?????? ???(CPU) API ?? ????(GPU) API?? ?? ?? ?? ?? ?? ???? ?? ????? ??? ?????. ??? API? ?? ????? ??? ???? ??? ???? ??? ? ????. ????? ?????? ???? ??????? ?? ??? ????? ??? ??? ?????? ???? ?? ???? ?????. 

    ???? API? ?? ??? ??? ???? ?? ??? ??? ? ?? ??? ?????. ??? ??? ??? ???? ?? ???? ??? ?? ?? ??? ???? ?? ?????. ? ?? ?? ?? ???? ??? ?? ??? ??? ??? ??? ????.

    ????? ?????? GPU?? ?? ???? ??? ?? ?? ? ?????. CUDA Fortran?? ????? ??????? ??? GPU ?? ?? PRNG ????? ??? ?? cuRAND? ???? ??? ??? ???? ??? ???? ?? ????. 

    cuFFT? ?? ?? ??? ?? ??

    CUDA Fast Fourier Transform(FFT)? ???? cuFFT ?????? NVIDIA GPU?? ??? FFT? ??? ? ?? ?????? ?????. FFT? ??? ?? ??? ??? ??? ?? ??? ??? ????? ??? ? ?? ??-?? ???????. ?? ?? ????? ?? ?? ???? ?? ?? ???? ?? ???? ? ????? ???. 

    cuFFT? ?? ?? ??, ?? ??? ? ???? ???? ?????. ??? ????? ??? ?? ?? ??? ???? ?? ??? ??? ?? ??? ??? ???? cuFFT? ???? ???? ????. ?? FFTW ?????? ????? ??? ??? NVIDIA GPU? ????? cuFFTW? ???? ???. cuFFTW ?????? FFTW3 API? ???? ?? FFTW ??????? ??? ?? ??? ? ??? ?????.

    cuFFTXt

    FFT ?? ??? ?? ??? GPU? ????? ??? cuFFTXt? ????. ? ??????? ???? ??-GPU?? ???? ???? ??? ??? ??? ? ?? ??? ???? ??? ??? ???? ???? ???? ??? ? ????.

    cuFFTMp

    cuFFTMp? ?? ????? ??-GPU? ??? ?? ??? ?? ???? ??-GPU?? ?????. ? ?????? MPI ???? ??? ??? ?? ??? ?? MPI ????????? ?? ?????. ? ??? NVIDIA GPU? ??? ??? OpenSHMEM ?? ?? ?? ?????? NVSHMEM? ?????.

    cuFFTDx

    ???? ?? ??? ??? ??? ?? ??? ??? FFT ??? ???? ??? ??? ??? cuFFTDx (cuFFT device extensions)? ?????. Math Libraries Device Extensions?? ????? ???? ? ?????? ???? ??????? ??? ?? ??? FFT? ??? ? ????. 

    CUDA Math API? ?? ?? Math ?? ???

    CUDA Math API? NVIDIA GPU ????? ???? ?? ?? ??? ???? ??????. CUDA ?????? ?? CUDA Math ?????? ?????. CUDA Math API? ?? C99 ?? ?? ??? ? ???? Math ??? ??? ?? ???/????/?? ??? ??? ? ?? ?? ? ?? ??(cospi, sincos), ?? ?? ???(erfinv, erfcinv) ?? ??? ??? ?????. 

    C++ ???? CUTLASS? ?? ???? ?? ??? ??

    ???? ??? ?? ???? ???? ??? ???. ?? ? ?? ????? ????? ????? ??? ??? ?? ??????. cuBLAS? ????? CUTLASS(CUDA Templates for Linear Algebra Subroutines) ?? ?? ? ???? ??? ?? ? ?? ???? ?? ??? ?????. 

    ???? cuBLAS? cuDNN? ??? ? ???? ??? ??? ??? ?? ? ??? ?? ??? ???? ????. ??? CUTLASS? ?? ??? ??? ??? ?????? ??? cuBLAS? ????. GEMM?? ???? ??? C++ ??? ???? ??? ? ?? ?? ?? ?? ???? ???? ??? ????? ???? ??? ??? ? ????. ?? ??? ??? ??? ???? ???? ???? ?????? ?????. ??? ?? ?? ?? ???? ????? ??? ???? ?????, ??? ????? ????, ??????? ??? ?? ???? ??? ? ????. CUTLASS? ??? ?????? ??? ?? ? ?? ??? ?? ??? ?? ????CUTLASS: CUDA C++? ?? ?? ??? ?????.

    AmgX? ?? ?? ??? ??

    AmgX? GPU ?? AMG(Algebraic Multi-Grid) ?????? ????, ?? ??? ?? GPU ?? ??-GPU?? ?????. ??? ???? ?? ?? ??, ???, ??????? ??? ? ????. ? ?????? block-Jacobi, Gauss-Seidel, dense LU ? ??? ???? ??? ??? ? ??? ???? ??? ????? ??? ?????.

    ? ??????? PCG, BICGStab ?? ????? ??? Krylov subspace ?? ???? ???? ???? AmgX? ??????? ?? ???? ?? ??? ?? 10??? ???? ??? ??? ??? ??? ?????.

    AmgX? ?? CFD ?? ??? ??? ?????? ???, ???, ??? ?? ?? ????? ?? ?????. ?? ?? ??? ??? ???? ??? ??? ??? ????? ??? ???? ?? ?? ?? AmgX ?????? ?????.

    ??? ???? ????? ?? ?? GPU?? AmgX ??? ??? CFD ??? ???? ? ??? ??? ??? ????? ? ? ????. 12?? CPU ?? 1?? ???? ? K20 GPU 1??? ?? ??? 300? ?? 21??? ?????. 

    NVIDIA Math ????? ???? 

    ?cuBLAS, cuRAND, cuFFT, cuSPARSE, cuSOLVER, CUDA Math ?????? NVIDIA HPC SDK? CUDA Toolkit?? ?? ?????.

    ???? NVIDIA Math ?????? ???? ?? ??? ??? ?????. ??? ?? ??? ??? ??? ???? ??? ?? ???? Matthew Nicely?? ????? ????.

    Discuss (0)
    +1

    Tags

    ?? ???

    人人超碰97caoporen国产