<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【深度學(xué)習(xí)】PyTorch 1.12發(fā)布,正式支持蘋(píng)果M1芯片GPU加速,修復(fù)眾多Bug

          共 2524字,需瀏覽 6分鐘

           ·

          2022-07-09 07:14

          機(jī)器之心報(bào)道

          PyTorch 1.12 正式發(fā)布,還沒(méi)有更新的小伙伴可以更新了。


          距離 PyTorch 1.11 推出沒(méi)幾個(gè)月,PyTorch 1.12 就來(lái)了!此版本由 1.11 版本以來(lái)的 3124 多次 commits 組成,由 433 位貢獻(xiàn)者完成。1.12 版本進(jìn)行了重大改進(jìn),并修復(fù)了很多 Bug。

          隨著新版本的發(fā)布,大家討論最多的可能就是 PyTorch 1.12 支持蘋(píng)果 M1 芯片。

          其實(shí)早在今年 5 月,PyTorch 官方就已經(jīng)宣布正式支持在 M1 版本的 Mac 上進(jìn)行 GPU 加速的 PyTorch 機(jī)器學(xué)習(xí)模型訓(xùn)練。此前,Mac 上的 PyTorch 訓(xùn)練僅能利用 CPU,但隨著 PyTorch 1.12 版本的發(fā)布,開(kāi)發(fā)和研究人員可以利用蘋(píng)果 GPU 大幅度加快模型訓(xùn)練。

          在 Mac 上引入加速 PyTorch 訓(xùn)練

          PyTorch GPU 訓(xùn)練加速是使用蘋(píng)果 Metal Performance Shaders (MPS) 作為后端來(lái)實(shí)現(xiàn)的。MPS 后端擴(kuò)展了 PyTorch 框架,提供了在 Mac 上設(shè)置和運(yùn)行操作的腳本和功能。MPS 使用針對(duì)每個(gè) Metal GPU 系列的獨(dú)特特性進(jìn)行微調(diào)的內(nèi)核能力來(lái)優(yōu)化計(jì)算性能。新設(shè)備將機(jī)器學(xué)習(xí)計(jì)算圖和原語(yǔ)映射到 MPS Graph 框架和 MPS 提供的調(diào)整內(nèi)核上。

          每臺(tái)搭載蘋(píng)果自研芯片的 Mac 都有著統(tǒng)一的內(nèi)存架構(gòu),讓 GPU 可以直接訪(fǎng)問(wèn)完整的內(nèi)存存儲(chǔ)。PyTorch 官方表示,這使得 Mac 成為機(jī)器學(xué)習(xí)的絕佳平臺(tái),讓用戶(hù)能夠在本地訓(xùn)練更大的網(wǎng)絡(luò)或批大小。這降低了與基于云算力的開(kāi)發(fā)相關(guān)的成本或?qū)︻~外的本地 GPU 算力需求。統(tǒng)一內(nèi)存架構(gòu)還減少了數(shù)據(jù)檢索延遲,提高了端到端性能。

          可以看到,與 CPU 基線(xiàn)相比,GPU 加速實(shí)現(xiàn)了成倍的訓(xùn)練性能提升:

          有了 GPU 的加持,訓(xùn)練和評(píng)估速度超過(guò) CPU

          上圖是蘋(píng)果于 2022 年 4 月使用配備 Apple M1 Ultra(20 核 CPU、64 核 GPU)128GB 內(nèi)存,2TB SSD 的 Mac Studio 系統(tǒng)進(jìn)行測(cè)試的結(jié)果。測(cè)試模型為 ResNet50(batch size = 128)、HuggingFace BERT(batch size = 64)和 VGG16(batch size = 64)。性能測(cè)試是使用特定的計(jì)算機(jī)系統(tǒng)進(jìn)行的,反映了 Mac Studio 的大致性能。

          PyTorch 1.12 其他新特性

          前端 API:TorchArrow

          PyTorch 官方已經(jīng)發(fā)布了一個(gè)新的 Beta 版本供用戶(hù)試用:TorchArrow。這是一個(gè)機(jī)器學(xué)習(xí)預(yù)處理庫(kù),可進(jìn)行批量數(shù)據(jù)處理。它具有高性能,兼具 Pandas 風(fēng)格,還具有易于使用的 API,以加快用戶(hù)預(yù)處理工作流程和開(kāi)發(fā)。

          (Beta)PyTorch 中的 Complex32 和 Complex Convolutions

          目前,PyTorch 原生支持復(fù)數(shù)、復(fù)數(shù) autograd、復(fù)數(shù)模塊和大量的復(fù)數(shù)運(yùn)算(線(xiàn)性代數(shù)和快速傅里葉變換)。在包括 torchaudio 和 ESPNet 在內(nèi)的許多庫(kù)中,都已經(jīng)使用了復(fù)數(shù),并且 PyTorch 1.12 通過(guò)復(fù)數(shù)卷積和實(shí)驗(yàn)性 complex32 數(shù)據(jù)類(lèi)型進(jìn)一步擴(kuò)展了復(fù)數(shù)功能,該數(shù)據(jù)類(lèi)型支持半精度 FFT 操作。由于 CUDA 11.3 包中存在 bug,如果用戶(hù)想要使用復(fù)數(shù),官方建議使用 CUDA 11.6 包。

          (Beta)Forward-mode 自動(dòng)微分

          Forward-mode AD 允許在前向傳遞中計(jì)算方向?qū)?shù)(或等效地雅可比向量積)。PyTorch 1.12 顯著提高了 forward-mode AD 的覆蓋范圍。

          BetterTransformer

          PyTorch 現(xiàn)在支持多個(gè) CPU 和 GPU fastpath 實(shí)現(xiàn)(BetterTransformer),也就是 Transformer 編碼器模塊,包括 TransformerEncoder、TransformerEncoderLayer 和 MultiHeadAttention (MHA) 的實(shí)現(xiàn)。在新的版本中,BetterTransformer 在許多常見(jiàn)場(chǎng)景中速度快 2 倍,這還要取決于模型和輸入特征。新版本 API 支持與先前的 PyTorch Transformer API 兼容,如果現(xiàn)有模型滿(mǎn)足 fastpath 執(zhí)行要求,它們將加速現(xiàn)有模型,以及讀取使用先前版本 PyTorch 訓(xùn)練的模型。 


          此外,新版本還有一些更新:

          • 模塊:模塊計(jì)算的一個(gè)新 beta 特性是功能性 API。這個(gè)新的 functional_call() API 讓用戶(hù)可以完全控制模塊計(jì)算中使用的參數(shù);
          • TorchData:DataPipe 改進(jìn)了與 DataLoader 的兼容性。PyTorch 現(xiàn)在支持基于 AWSSDK 的 DataPipes。DataLoader2 已被引入作為管理 DataPipes 與其他 API 和后端之間交互的一種方式;
          • nvFuser: nvFuser 是新的、更快的默認(rèn) fuser,用于編譯到 CUDA 設(shè)備;
          • 矩陣乘法精度:默認(rèn)情況下,float32 數(shù)據(jù)類(lèi)型上的矩陣乘法現(xiàn)在將在全精度模式下工作,這種模式速度較慢,但會(huì)產(chǎn)生更一致的結(jié)果;
          • Bfloat16:為不太精確的數(shù)據(jù)類(lèi)型提供了更快的計(jì)算時(shí)間,因此在 1.12 中對(duì) Bfloat16 數(shù)據(jù)類(lèi)型進(jìn)行了新的改進(jìn);
          • FSDP API:作為原型在 1.11 版中發(fā)布,F(xiàn)SDP API 在 1.12 版的發(fā)布中達(dá)到了測(cè)試版,并添加了一些改進(jìn)。

          更多內(nèi)容請(qǐng)查看:https://pytorch.org/blog/pytorch-1.12-released/

          往期精彩回顧




          瀏覽 54
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  走光无码一区二区三区 | 人人插操 | 麻豆91福利在线观看 | 蜜芽AV久久 | 大鷄巴嫲嫲亂伦 |