在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NVIDIA Hopper GPU上的新cuBLAS12.0功能和矩陣乘法性能

jf_pJlTbmA9 ? 來源:NVIDIA ? 作者:NVIDIA ? 2023-07-05 16:30 ? 次閱讀

人工智能機(jī)器學(xué)習(xí)基準(zhǔn)測試中相當(dāng)一部分操作是 通用矩陣乘法 ,也稱為 matmul 函數(shù)。 GEMs 也存在于深度學(xué)習(xí)訓(xùn)練的前向和后向通道以及推理中。

GEMM 的突出性使得深度學(xué)習(xí)軟件能夠最大限度地利用用于矩陣乘法的硬件,同時(shí)支持幾個(gè)關(guān)鍵的 AI 組件。這些成分包括具有偏置和流行激活功能的融合體及其衍生物。

本文探討了 NVIDIA cuBLAS 庫 在里面 CUDA 12.0 重點(diǎn)是最近推出的 FP8 format 、 NVIDIA Hopper 上的 GEM 性能 GPU ,以及新 64 位整數(shù)應(yīng)用程序編程接口 ( API )和新融合等用戶體驗(yàn)的改進(jìn)。

在深入了解這些功能之前,簡要概述了當(dāng)前可用的 cuBLAS API 、如何更有效地應(yīng)用每種 API ,以及 cuBLAS 與其他可用的 NVIDIA 矩陣乘法工具的關(guān)系。

確定要使用的 cuBLAS API

cuBLAS 庫是在 NVIDIA CUDA 運(yùn)行時(shí)之上的基本線性代數(shù)子程序( BLAS )的一種實(shí)現(xiàn),旨在利用 NVIDIA GPU 進(jìn)行各種矩陣乘法運(yùn)算。本文主要討論 cuBLAScuBLASLt API 的新功能。然而, cuBLAS 庫還提供了針對多 GPU 分布式 GEMs 的 cuBLASXt API 。 cuBLASXt API 將于 2023 年在 Early Access 中提供,目標(biāo)是 GEMs 及其設(shè)備內(nèi)融合功能。

表 1 概述了每種 API 的設(shè)計(jì)用途以及用戶可以在哪里獲得最佳性能。

API API complexity Called from Fusion support Matrix sizes for maximum performance
cuBLAS
(since CUDA 6.0)
Low Host None Large (global memory)
cuBLASXt (since CUDA 6.0) Low Host None Very Large (multi-GPU, global memory)
cuBLASLt
(since CUDA 10.1)
Medium Host Fixed set Medium (global memory)
cuBLASDx (targeting 2023 EA) Medium/High Device User ops Small (shared memory)

表 1 。各種 cuBLAS 原料藥的比較。通常, API 復(fù)雜度越高, API 越適合內(nèi)核開發(fā)人員.

cuBLAS API

cuBLAS API 在所有三個(gè)級別實(shí)現(xiàn) NETLIB BLAS 規(guī)范,每個(gè)例程最多有四個(gè)版本:實(shí)數(shù)單精度、實(shí)數(shù)雙精度、復(fù)數(shù)單精度和復(fù)數(shù)雙精度,分別帶有 S 、 D 、 C 和 Z 前綴。

對于 BLAS L3 GEMM ,latex.php?latex=D%3D%5Calpha+%2A+op%28A%29+%2A+op%28B%29+%2B+%5Cbeta+%2A+C&bg=transparent&fg=000&s=0&c=20201002latex.php?latex=%5Calpha&bg=transparent&fg=000&s=0&c=20201002latex.php?latex=%5Cbeta&bg=transparent&fg=000&s=0&c=20201002變量(如主機(jī)和設(shè)備引用)有更多可用選項(xiàng)。該 API 還提供了幾個(gè) extensions ,如傳統(tǒng)函數(shù)的批處理和降低/混合精度版本。

cuBLASLt API

cuBLASLt API 是一個(gè)比 cuBLAS 更靈活的解決方案,專門為人工智能和機(jī)器學(xué)習(xí)中的 GEMM 操作而設(shè)計(jì)。它通過以下選項(xiàng)的參數(shù)可編程性提供靈活性:

矩陣數(shù)據(jù)布局

輸入類型

計(jì)算類型

結(jié)語

算法實(shí)現(xiàn)選擇

啟發(fā)式

一旦用戶確定了預(yù)期 GEM 操作的一組選項(xiàng),這些選項(xiàng)就可以重復(fù)用于不同的輸入。簡而言之,與 cuBLAS API 相比, cuBLASLt 可以支持復(fù)雜的情況,例如:

latex.php?latex=D%2C+Aux%3D+Epilogue%28%5Calpha+%2A+scale_%7BA%7D+%2A+scale_%7BB%7D+%2A+op%28A%29+%2A+op%28B%29+%2B+%5Cbeta+%2A+scale_%7BC%7D+%2A+C%29&bg=transparent&fg=000&s=0&c=20201002

該案例有多個(gè)輸出,是基于變壓器的模型中遇到的一個(gè)突出的 GEMM .

為了提供最近的示例, a 和 B 可以采用兩種新的 FP8 格式中的任一種,并在 FP32 中進(jìn)行乘法和累加。 Epilogue 可以包括 GELU 和偏倚,偏倚在 BF16 或 FP16 中。許多常見的尾聲現(xiàn)在都融入了 matmul 。此外,latex.php?latex=Aux&bg=transparent&fg=000&s=0&c=20201002是一個(gè)可選的附加尾聲輸出,用于計(jì)算梯度。使用 cuBLASLt 操作 handle type 描述了上述操作和許多類似操作。

NVIDIA 切割機(jī)和 GEMS

作為最著名的開源 NVIDIA 庫之一, NVIDIA CUTLASS 還為 NVIDIA GPU 上的 GEMM (和卷積)提供 CUDA C ++和 Python 抽象,并在設(shè)備、塊、扭曲和線程級別提供原語。 CUTRASS 的一個(gè)優(yōu)點(diǎn)是,用戶可以專門為其所需范圍編譯 GEMs ,而無需像 cuBLAS 庫那樣加載更大的二進(jìn)制文件。

當(dāng)然,這會(huì)帶來性能上的權(quán)衡,因?yàn)樾枰罅康呐頌槊總€(gè)單獨(dú)的用例找到和實(shí)例化最佳內(nèi)核。 cuBLAS 庫通過廣泛訓(xùn)練的啟發(fā)式方法,在廣泛的問題范圍內(nèi)提供最大的性能。

事實(shí)上,對于許多用例和數(shù)據(jù)類型, cuBLAS 可能包括從 CULASS 實(shí)例化的幾個(gè)內(nèi)核。通常, cuBLAS 使用各種內(nèi)核源,以確保在應(yīng)用程序之間更均勻地實(shí)現(xiàn)最大性能。

NVIDIA Hopper 上的 FP8 支持

首次在 CUDA 18.1 中引入, FP8 是 16 位浮點(diǎn)類型的自然發(fā)展,減少了 神經(jīng)網(wǎng)絡(luò)訓(xùn)練的記憶和計(jì)算要求 。此外,由于其對實(shí)數(shù)的非線性采樣,與 int8 相比, FP8 在推理方面也具有優(yōu)勢。
FP8 由兩種編碼 E4M3 和 E5M2 組成,其中名稱明確表示指數(shù)( E )和尾數(shù)( M )位數(shù),符號位隱含。在 CUDA C ++中,這些編碼公開為 __nv_fp8_e4m3 和 __nv_fp8_e5m2 類型。 NVIDIA Hopper Tensor Core 支持 FP16 和 FP32 累積的 FP8 矩陣產(chǎn)品

在 CUDA 12.0 (以及 CUDA 11.8 )中, cuBLAS 提供了多種 matmul 操作,支持具有 FP32 累積的 both encodings 。(有關(guān)完整列表,請參見 cuBLAS 文檔 .) FP8 matmul 操作還支持附加的融合操作,這些操作對于使用 FP8 進(jìn)行訓(xùn)練和推理非常重要,包括:

除了傳統(tǒng)的 alpha 和 beta 外, A 、 B 、 C 和 D 矩陣的每矩陣比例因子

輸出矩陣的絕對最大值計(jì)算

common-GEMM-in-transformers-diagram.png 圖 2 :變壓器中常見的 GEM 示意圖,帶有尾聲、縮放因子和 cuBLASLt API 支持的多個(gè)輸出

latex.php?latex=D_%7Btemp%7D%2C+Aux_%7Btemp%7D+%3D+Epilogue%28%5Calpha+%2A+scale_%7BA%7D+%2A+scale_%7BB%7D+%2A+op%28A%29+%2A+op%28B%29+%2B+%5Cbeta+%2A+scale_%7BC%7D+%2A+C%29&bg=transparent&fg=000&s=0&c=20201002

latex.php?latex=amax_%7BD%7D+%3D+max%28%5Cvert+D_%7Btemp%7D+%5Cvert%29&bg=transparent&fg=000&s=0&c=20201002

latex.php?latex=amax_%7BAux%7D+%3D+max%28%5Cvert+Aux_%7Btemp%7D+%5Cvert%29&bg=transparent&fg=000&s=0&c=20201002

latex.php?latex=D+%3D+scale_%7BD%7D+%2A+D_%7Btemp%7D&bg=transparent&fg=000&s=0&c=20201002

latex.php?latex=Aux+%3D+scale_%7BAux%7D+%2A+Aux_%7Btemp%7D&bg=transparent&fg=000&s=0&c=20201002

latex.php?latex=scale_%7BA%7D&bg=transparent&fg=000&s=0&c=20201002latex.php?latex=scale_%7BB%7D&bg=transparent&fg=000&s=0&c=20201002latex.php?latex=scale_%7BC%7D&bg=transparent&fg=000&s=0&c=20201002

請注意,所有比例因子都是乘法應(yīng)用的。這意味著有時(shí)需要根據(jù)應(yīng)用的上下文使用縮放因子或其倒數(shù)。縮放因子和矩陣之間的乘法的特定順序無法保證。

cuBLAS 12.0 performance on NVIDIA H100 GPU

我們比較了 H100 PCIe 和 SXM (預(yù)覽版)與 A100 ( PCIe )上 FP16 、 BF16 和 FP8 GEMM 在三種情況下的基本時(shí)鐘性能: cuBLAS 庫對于大矩陣大小的峰值性能,以及 MLPerf 和 NVIDIA 深度學(xué)習(xí)示例 中存在的 GEMM 。

大型 GEMM 表現(xiàn)出較大的算術(shù)強(qiáng)度,因此受到計(jì)算限制。當(dāng)標(biāo)準(zhǔn)化為 A100 時(shí),加速因子接近于 GPU 對之間基礎(chǔ)數(shù)據(jù)類型的峰值性能比率。對于計(jì)算綁定的 FP16 GEMM , cuBLAS 庫在 H100 SXM 上實(shí)現(xiàn)了相對于 A100 的三倍加速。

另一方面, MLPerf 和 NVIDIA DL 示例由跨越一系列算術(shù)強(qiáng)度的 GEMM 組成。有些距離計(jì)算范圍較遠(yuǎn),因此表現(xiàn)出比大型 GEMs 更小的加速。對于 MLPerf 和 NVIDIA DL 示例中的 GEMs , cuBLAS 庫在 H100 SXM 上分別實(shí)現(xiàn)了 2.7 倍和 2.2 倍的加速。

在 MLPerf 和 NVIDIA DL 示例中,通過 H100 ( PCIe 和 SXM ) GPU 上的 cuBLASLt 標(biāo)準(zhǔn)化為 A100 PCIe GPU ,實(shí)現(xiàn) FP16 矩陣乘法和 GEMM 的加速。通過將圖形時(shí)鐘鎖定到每個(gè) GPU 的基本時(shí)鐘來完成測量。

為了比較 H100 上的 FP8 和 BF16 性能,我們選擇 A100 上的 BF16 作為基線。之所以選擇此選項(xiàng),是因?yàn)?FP8 支持僅在 NVIDIA Hopper 架構(gòu)上可用。與 A100 PCIe 上的 BF16 相比, cuBLAS 庫在 H100 SXM 上為 BF16 和 FP8 提供了近 2.8 倍的加速。

cuBLASLt-speedup-H100-for-BF16-and-FP8-2.png 圖 4 。通過 H100 ( PCIe 和 SXM ) GPU 上的 cuBLASLt 實(shí)現(xiàn)加速, BF16 和 FP8 矩陣乘法標(biāo)準(zhǔn)化為 A100 80 GB PCIe GPU 。通過將圖形時(shí)鐘鎖定到每個(gè) GPU 的基本時(shí)鐘來完成測量。

NVIDIA Hopper 架構(gòu)工作空間要求

H100 原生內(nèi)核增加了對工作空間大小的需求。因此,強(qiáng)烈建議為 cuBLASLt 調(diào)用或使用 cublasSetWorkspace 時(shí)提供至少 32 MiB ( 33554432 B )的工作空間。

cuBLAS 用戶體驗(yàn)的改進(jìn)

cuBLAS 12.0 啟用了新的 FP8 和 FP16 / BF16 融合外延。在 NVIDIA Hopper 上, FP8 融合現(xiàn)在提供偏置( BF16 和 FP16 )、 ReLU 和 GELU ,以及輔助輸出緩沖器和輔助輸出緩沖器。新的 FP16 融合器還可用于 NVIDIA Hopper 的偏置、 ReLU 和 GELU 、 dBias 和 dReLU 。對于 NVIDIA Ampere 架構(gòu),單核、更快的 BF16 融合(帶有偏置和 GELU )以及 dBias 和 dGELU 現(xiàn)在已經(jīng)公開。

Heuristics cache 允許將 matmul 問題映射到先前通過啟發(fā)式選擇的內(nèi)核。這有助于減少重復(fù) matmul 問題的主機(jī)端開銷。

cuBLAS 12.0 擴(kuò)展了 cuBLAS API ,以支持 64 位整數(shù)問題大小、前導(dǎo)維數(shù)和向量增量。這些新函數(shù)與 32 位整數(shù)對應(yīng)函數(shù)具有相同的 API ,不同之處在于它們的名稱中有_64后綴,并將相應(yīng)的參數(shù)聲明為int64_t。

例如,對于經(jīng)典的 32 位整數(shù)函數(shù):

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

64 位整數(shù)對應(yīng)項(xiàng)是:

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

性能是 cuBLAS 的主要關(guān)注點(diǎn),因此當(dāng)傳遞給 64 位整數(shù) API 的參數(shù)符合 32 位范圍時(shí),庫將使用與用戶調(diào)用 32 位整數(shù) API 相同的內(nèi)核。要嘗試新的 API ,遷移應(yīng)該像向 cuBLAS 函數(shù)添加_64后綴一樣簡單,這要?dú)w功于 C / C ++將int32_t值自動(dòng)轉(zhuǎn)換為int64_t。

cuBLAS 12.0 和 NVIDIA Hopper GPU

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    4986

    瀏覽量

    103067
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4740

    瀏覽量

    128951
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    30897

    瀏覽量

    269111
收藏 人收藏

    評論

    相關(guān)推薦

    NVIDIA火熱招聘GPU性能計(jì)算架構(gòu)師

    這邊是NVIDIA HR Allen, 我們目前在上海招聘GPU性能計(jì)算架構(gòu)師(功能驗(yàn)證)的崗位,有意向的朋友歡迎發(fā)送簡歷到 allelin@nv
    發(fā)表于 09-01 17:22

    NVIDIA-SMI:監(jiān)控GPU的絕佳起點(diǎn)

    nvidia-smi可執(zhí)行文件位于虛擬機(jī)管理程序。如果在同一部署中您選擇在GPU使用作為傳遞,那么GPU正在尋找訪客
    發(fā)表于 09-04 15:18

    Nvidia GPU風(fēng)扇和電源顯示ERR怎么解決

    問題最近在Ubuntu使用Nvidia GPU訓(xùn)練模型的時(shí)候,如果機(jī)器鎖屏一段時(shí)間再打開的時(shí)候鼠標(biāo)非常卡頓,或者說顯示界面非常卡頓,使用nvidia-smi查看發(fā)現(xiàn),訓(xùn)練模型的
    發(fā)表于 12-30 06:44

    在Ubuntu使用Nvidia GPU訓(xùn)練模型

    問題最近在Ubuntu使用Nvidia GPU訓(xùn)練模型的時(shí)候,沒有問題,過一會(huì)再訓(xùn)練出現(xiàn)非常卡頓,使用nvidia-smi查看發(fā)現(xiàn),顯示GPU
    發(fā)表于 01-03 08:24

    Arm Neoverse NVIDIA Grace CPU 超級芯片:為人工智能的未來設(shè)定步伐

    和數(shù)據(jù)吞吐量進(jìn)行優(yōu)化的服務(wù)器和數(shù)據(jù)中心人工智能和機(jī)器學(xué)習(xí) (ML) 的需求。否則,人工智能所需的成本、電力和碳將開始超過收益。NVIDIA 率先使用 GPU 來提高數(shù)據(jù)中心中 HPC 和 AI 的性能
    發(fā)表于 03-29 14:40

    探求NVIDIA GPU極限性能的利器

    1、探求 NVIDIA GPU 極限性能的利器  在通常的 CUDA 編程中,用戶主要通過 CUDA C/C++ 或 python 語言實(shí)現(xiàn) CUDA 功能的調(diào)用。在
    發(fā)表于 10-11 14:35

    Adreno GPU 矩陣乘法——第1講:OpenCL優(yōu)化

    Adreno GPU架構(gòu),用于計(jì)算和加速重要線性代數(shù)算法,包括GPU矩陣乘法。 由于近來依賴于卷積的深度學(xué)習(xí)引起廣泛關(guān)注,
    發(fā)表于 09-18 19:15 ?1820次閱讀

    NVIDIA下下代GPU核心架構(gòu)將是Hopper

    來自國外的最新爆料稱,NVIDIA的下一代GPU核心架構(gòu)是Ampere(安培),下下代將是Hopper,用于紀(jì)念Grace Hopper(格蕾絲·赫柏)。
    發(fā)表于 06-12 15:53 ?1982次閱讀

    NVIDIA獲得Hopper商標(biāo)申請,傳聞的Hopper GPU要來了?

    盡管AMD已經(jīng)推出了7nm工藝、RDNA架構(gòu)的新一代Navi家族顯卡,但是NVIDIA在高端GPU市場上的地位依然無可動(dòng)搖,12nm工藝的圖靈Turing顯卡在性能及能效還是占據(jù)上風(fēng)
    的頭像 發(fā)表于 12-10 10:44 ?2036次閱讀

    NVIDIA下一代GPU曝光:5nm Lovelace、Hopper被延后

    圖靈(Turing)和安培(Ampere)之后,很早就有爆料NVIDIA的下一代GPU將以“Hopper(赫柏)”知名,Hopper被譽(yù)為編譯之母,是偉大的女性程序員。 不過,爆料好手
    的頭像 發(fā)表于 12-21 18:07 ?1948次閱讀

    GE完成XA100循環(huán)發(fā)動(dòng)機(jī)測試 NVIDIA發(fā)布Hopper GPU架構(gòu)

    今日在 GTC 發(fā)布的 NVIDIA Hopper GPU 架構(gòu)利用全新 DPX 指令,將動(dòng)態(tài)編程速度提高多達(dá) 40 倍。動(dòng)態(tài)編程是一種應(yīng)用于基因組學(xué)、量子計(jì)算、路線優(yōu)化等領(lǐng)域算法中
    的頭像 發(fā)表于 03-25 16:28 ?1985次閱讀

    NVIDIA發(fā)布最新Hopper架構(gòu)的H100系列GPU和Grace CPU超級芯片

    今日凌晨,NVIDIA(英偉達(dá))發(fā)布了基于最新Hopper架構(gòu)的H100系列GPU和Grace CPU超級芯片!
    的頭像 發(fā)表于 03-26 09:07 ?2893次閱讀

    關(guān)于NVIDIA H100 GPU的問題解答

    今年的 GTC22 NVIDIA 發(fā)布其首款基于 Hopper 架構(gòu)的 GPUNVIDIA H100。
    的頭像 發(fā)表于 07-18 10:35 ?1801次閱讀

    NVIDIA cuBLAS庫加速BLAS的GPU設(shè)計(jì)實(shí)現(xiàn)

    cuBLASMg 提供了先進(jìn)的多 GPU 矩陣乘法,您可在多臺設(shè)備間以 2D 塊循環(huán)方式分發(fā)每個(gè)矩陣。cuBLASMg 目前已加入 CUDA 數(shù)學(xué)庫搶先體驗(yàn)計(jì)劃。
    的頭像 發(fā)表于 08-07 15:46 ?1539次閱讀

    NVIDIA即將推出首批基于開創(chuàng)性 NVIDIA Hopper 架構(gòu)的產(chǎn)品和服務(wù)

    NVIDIA 于今日宣布 NVIDIA H100 Tensor Core GPU 全面投產(chǎn),NVIDIA 全球技術(shù)合作伙伴計(jì)劃于 10 月推出首批基于開創(chuàng)性
    的頭像 發(fā)表于 09-22 10:45 ?1154次閱讀
    主站蜘蛛池模板: 三级黄色在线观看| 久久久国产精品网站| 亚洲免费视频一区| 亚洲一区二区三区网站| 禁漫画羞羞动漫入口| 亚洲成人综合在线| 色妞妞网| 久久99精品一级毛片| 大色视频| 天天看天天碰| 国产午夜免费| 亚洲一区二区三区在线网站| 四虎永久免费在线观看| 免费一级在线观看| 国产va免费精品观看| 天天干天天爱天天操| 国产女在线| 视频一区二区三区在线观看| 亚洲欧洲精品成人久久曰影片| 色欧美色图| 夜夜摸天天操| 国产xxxx极品bbw视色| 丝袜美女被c| 天堂网最新版中文| 久久综合亚洲| 五月天狠狠| 欧美小网站| 亚洲欧美高清| 波多野结衣在线观看一区二区 | 伊人干| 黄色网址日本| 精品女同同性视频很黄很色| 久久频这里精品99香蕉久网址| 久久国产午夜精品理论篇小说| 亚洲一区二区精品推荐| 欧美一级www片免费观看| 91噜噜噜| 西西人体www303sw大胆高清| 亚洲怡红院在线| 久久精品女人天堂| a看片|