• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            神經網絡設計(神經網絡設計過程)

            更新時間:2023-03-01 17:24:02 閱讀: 評論:0

            gpu對于機器學習是必不可少的。可以通過AWS或谷歌cloud輕松地啟動這些機器的集群。NVIDIA擁有業內領先的GPU,其張量核心為Volta V100和安培A100加速哪種方法最適合你的神經網絡?為了以最低的成本設計出最快的神經網絡,機器學習架構師必須解決許多問題。此外,僅僅使用帶有GPU和張量核心的機器并不能保證最高性能。那么,作為一個機器學習架構師,應該如何處理這個問題呢?當然,您不能是硬件不可知論者。您需要了解硬件的功能,以便以最低的成本獲得最大的性能。

            作為一個機器學習架構師,你應該如何設計神經網絡來最大化GPU的性能?

            在本文中,我們將深入了解機器學習架構師實現性能最大化的手段。我們將特別關注矩陣-矩陣乘法,因為它是機器學習中最常見和最繁重的數學操作。

            讓我們從一個簡單的全連接的一個隱藏層神經網絡開始:

            圖1:在神經網絡的每一層進行矩陣乘法,每一步的矩陣乘法的形狀如括號所示。例如(B, L1)是B行L1列的矩陣的形狀。MM1, MM2,…MM5是各種矩陣-矩陣乘法。

            從基本神經網絡可以看出,在第L2層,我們進行了3次矩陣-矩陣乘法(1向前,2向后)。在第L1層,我們執行2個矩陣-矩陣乘法(1向前,1向后)。事實上,除了第一層(L1)之外,我們在每一層都執行了3次矩陣乘法。如果神經網絡有n層,則需要進行3n-1個矩陣-矩陣乘法,即時,它隨神經網絡的大小線性增長。

            一個快速觀察方法是將批大小設置成1,我們看下B=1時的情況,即一次只學習一個數據點。在這種情況下,矩陣-矩陣退化為矩陣-向量的乘法。然而,在實踐中,批大小從不為1。在梯度下降中,在每個學習步驟中考慮整個數據集,而在隨機梯度下降中,在每個學習步驟中考慮一批B > 1(但比整個數據集要少得多)。

            在本文中,讓我們關注兩個維數(M, K)和(K, N)的矩陣a和B之間的單個矩陣-矩陣乘法,分別得到維數(M, N)的矩陣C。

            維數M, N, K由每層神經網絡的結構決定。例如,在AlexNet中,批處理大小為128,有幾個密集的層(4096個節點)和一個輸出層(1000個節點)。這將導致(128,4096)和(409,1000)矩陣的乘法。這些是相當大的矩陣。

            圖2。平鋪的矩陣乘法

            "大"是什么意思?這些矩陣是如何相乘的?所謂"大",是指任何不能裝入內存的矩陣。讓我們更深入地研究大矩陣乘法。我們在教科書中學習的矩陣乘法假設矩陣與記憶相吻合。但在現實中,情況可能并非如此,尤其是在機器學習方面。此外,為了獲得最佳性能,精細調優的矩陣乘法算法必須考慮到計算機中的內存層次結構。對于無法裝入內存的矩陣乘法,最常用的方法是平鋪/阻塞矩陣乘法算法。塊矩陣乘法,矩陣分割成更小的塊,適合到內存中,然后計算部分的合成產品矩陣(參見圖2)。圖3展示了塊矩陣乘法如何遞歸地應用在每一個級別的內存層次結構。

            圖3:在NVIDIA CPU-GPU系統的完整內存層次中遞歸應用平鋪/塊矩陣-矩陣乘法。GEMM表示一般矩陣乘法。

            我們不會在這里進入精確的平鋪矩陣乘法算法,感興趣的讀者。BLAS中用于一般矩陣乘法的庫例程稱為GEMM。NVBLAS是GEMM的Nvidia實現,它利用了內部的GPU架構,實現了平鋪/塊矩陣乘法。PyTorch和TensorFlow鏈接到Nvidia GPU上的這個庫。類庫為你做所有繁重的工作。但是設計糟糕的神經網絡肯定會降低性能。

            對于我們來說,最直接的目標是盡可能快地找出矩陣-矩陣乘法執行的條件。這是可能的,只有當GPU是100%忙,而不是為了等待數據而空閑。為此,我們需要查看內存層次結構,以及數據在內存層次結構中移動的速度有多快。

            圖4:Roofline 模型

            內存層次結構為提高性能提供了關鍵優勢:1)它們隱藏了CPU、GPU、內存組件之間的延遲差異,2)它們利用了程序局部性。此外,一個設計良好的內存層次結構以最低的成本/字節提供最高的性能。為了讓gpu持續地忙碌,數據塊必須快速地輸入gpu。這是由數據傳輸帶寬和GPU處理數據的速度決定的。這個性能度量由Roofline 模型中的ops:字節比率捕獲(圖4)。

            圖5顯示了如何從供應商的規格中計算這個。我們看到,ops:字節比是139 V100,和416 A100。越大的ops:字節比率,會提供更大計算速度,如果計算是內存或算術限制。換句話說,一個具有較高ops: bytes ratio的系統比一個較小的系統更強大。這就是為什么 A100比 V100更強大。

            圖5:計算ops:字節比率規范。

            ops:字節比對于機器學習和矩陣乘法意味著什么?要了解這一點,我們現在必須看看矩陣乘法的計算和數據要求。算術強度定義為浮點運算/秒與字節的比率。圖6顯示了如何計算算術強度。

            圖6:計算矩陣乘法的算術強度

            如果算術強度> ops:bytes,那么矩陣乘法就是算術界限,否則就是內存界限。

            因此,第一個問題是,所涉及矩陣的維數應該被設計成算術強度大于ops:字節。這將確保GPU被充分利用。例如批處理大小= 512,N=1024, M=4096,算術強度為315,大于Volta V100 GPU的139。因此,該矩陣乘法是在Volta V100上的算術界,GPU將得到充分利用。圖7顯示了機器學習中一些常見操作的算法強度。第二行對應于批大小= 1。在這種情況下,線性層變成了內存界而不是算術界。這就是為什么批量大小為1一般不用于生產機器學習算法的原因。

            圖7。機器學習中一些常見操作的算術強度。來源:NVIDIA文檔

            然而,通過選擇正確的矩陣維數來保證正確的算法強度并不足以實現算法性能的峰值,還需要保證所有張量核都處于繁忙狀態。為了有效地使用Nvidia的張量核心,對于FP16算法,M, N, K必須是8的倍數,對于FP32算法必須是16的倍數。Nvidia核庫檢查矩陣的維數,如果滿足條件,則將操作路由到張量核。這可以導致在Volta上使用張量磁心比使用沒有張量磁心6倍的加速。因此,第二個要點是,如果尺寸不是8或16的倍數,那么建議適當填充尺寸。

            作為一名機器學習架構師,在您尋求提高性能的過程中,您將不可避免地面臨是否要從Volta升級到Ampere并支付更高的成本的決定。為此,必須使用Roofline模型確定神經網絡是算術界限還是內存界限。如果兩者都不是,那么升級到更強大的機器就沒有價值了。這是第三個要點。Nvidia提供了Nsight Compute等工具來執行應用程序分析。(https://developer.nvidia.com/nsight-compute)

            總結

            · 矩陣-矩陣乘法是神經網絡訓練和推理中最常用的運算。矩陣乘法的次數幾乎是神經網絡層數的3n。因此,盡可能快地計算這些是很重要的。

            · 在神經網絡中,矩陣是非常大的。因此,我們總是使用GPU來加速矩陣乘法。為了做到這一點,我們必須了解GPU的ops:字節比,并設計層的算法強度要大于ops:字節比,如果可能的話。

            · 為了達到使用所有張量核心的峰值算術性能,矩陣的維數也必須滿足NVIDIA架構對使用張量核心的要求。通常,它是8 (FP16算術)或16 (FP32算術)的倍數。最好查看文檔以確保滿足需求。

            · 您應該確定應用程序是內存綁定還是算術綁定。如果兩者都不是,那么升級到更強大的GPU就沒有意義了。否則,我們可以通過升級進一步加速。

            · 了解硬件功能及其對最大化性能的要求將有助于明智地選擇矩陣維數和批大小。這將導致神經網絡的設計,使訓練可以在最短的時間內以最低的成本完成。

            引用

            Nvidia docs: Deep Learning performance documentationNvidia: It’s all about Tensor Cores, AnandTech Blog 2018Fast Implementation of DGEMM on Fermi GPU, Proceeding of the 2011 International Conference on High Performance, Storage, and AnalysisRoofline: An Insightful Visual Performance Model for Floating-Point Programs and Multicore Architectures, Comm. of the ACM, April 2009Performance Analysis of GPU-Accelerated Applications using the Roofline Model, NVIDIA, 2019Intel Advisor Roofline AnalysisNvidia Nsight ComputeNvidia Ampere A100 DatasheetNvidia Volta V100 Datasheet

            這篇文章觸及了加速機器學習的一個方面。這個問題還有其他方面。希望這篇文章對您有用。

            作者:Kiran Achyutuni

            deephub翻譯組

            本文發布于:2023-02-28 20:12:00,感謝您對本站的認可!

            本文鏈接:http://www.newhan.cn/zhishi/a/167766264281567.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:神經網絡設計(神經網絡設計過程).doc

            本文 PDF 下載地址:神經網絡設計(神經網絡設計過程).pdf

            標簽:神經網絡   過程
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 国产精品户外野外| 婷婷五月亚洲综合图区| 亚洲精品一区二区区别| 亚洲综合天堂一区二区三区| 四虎影视一区二区精品| 青青草无码免费一二三区| 亚洲天堂视频网站| 国产日韩入口一区二区| 欧美精品久久天天躁免费观看| 国产精品自拍视频我看看| 狠狠躁夜夜躁人人爽天天古典| 亚洲国产综合第一精品小说| 丰满的少妇被猛烈进入白浆| av免费看网站在线观看| 国产成人无码免费视频在线| 亚洲免费自拍偷拍视频| 日韩av天堂综合网久久| 久久er99热精品一区二区| 日韩av一区二区精品不卡| gogogo高清在线播放免费| 精品人妻伦一二三区久久aaa片| 成人免费精品网站在线观看影片| 亚洲中文字幕无线无码毛片| gogogo高清在线观看视频中文| 成人影院免费观看在线播放视频| 99精品久久免费精品久久| 成人午夜视频在线| 亚洲成av人在线播放无码| 欧美国产日韩久久mv| 久久夜色撩人精品国产av| 99在线精品免费视频九九视| 精品素人AV无码不卡在线观看| 国产精品无码无在线观看| 亚洲日韩精品无码一区二区三区| 青青草无码免费一二三区| 欧美国产中文| 在线 欧美 中文 亚洲 精品| 国产国产成人久久精品| 亚洲人成网站77777在线观看| 高清熟女国产一区二区三区| 天天爽夜夜爱|