色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > PyTorch 1.10正式版上線:Android NNAPI支持來了

          PyTorch 1.10正式版上線:Android NNAPI支持來了

          發(fā)布人:機(jī)器之心 時間:2021-10-22 來源:工程師 發(fā)布文章

          廣受人們歡迎的深度學(xué)習(xí)框架 PyTorch 剛剛更新了 1.10 正式版,在 CUDA Graphs API 等方面進(jìn)行了諸多改進(jìn)。

          PyTorch 是一個開源的 Python 機(jī)器學(xué)習(xí)庫,基于 Torch,底層由 C++ 實現(xiàn),主要應(yīng)用于人工智能領(lǐng)域,如自然語言處理,它最初由 Facebook 的人工智能研究團(tuán)隊開發(fā)。由于 PyTorch 定義網(wǎng)絡(luò)結(jié)構(gòu)簡單等特點(diǎn),自發(fā)布以來便受到眾多研究人的青睞。

          經(jīng)過研究者的不斷努力,現(xiàn)在, PyTorch 更新到 PyTorch 1.10 版本。此版本由 1.9 版本以來的 3,400 多次 commits 組成,由 426 位貢獻(xiàn)者完成。 

          1.png

          此次PyTorch 1.10 的更新側(cè)重于改進(jìn) PyTorch 的訓(xùn)練和性能以及開發(fā)人員的可用性。亮點(diǎn)包括以下:

          集成了 CUDA Graphs API 以減少 CUDA 工作負(fù)載的 CPU 開銷;

          FX、torch.special 和 nn.ModuleParametrization 等幾個前端 API 已從測試版變?yōu)榉€(wěn)定版;

          除了 GPU 之外,JIT Compiler 中對自動融合的支持?jǐn)U展到 CPU;

          Android NNAPI 支持現(xiàn)已推出測試版。

          (注:從 PyTorch 1.6 版本開始,PyTorch 特性分為 Stable(穩(wěn)定版)、Beta(測試版)和 Prototype(原型版)。

          PyTorch 1.10 最新特性

          2.png

          前端 API

          使用 FX 進(jìn)行 Python 代碼轉(zhuǎn)換(穩(wěn)定版):FX 提供了一個用于轉(zhuǎn)換和降低 PyTorch 程序的 python 化平臺,它是一個工具包,在 1.10 版本中,F(xiàn)X 趨于穩(wěn)定,用戶可以使用 torch.fx 實現(xiàn)程序轉(zhuǎn)換。

          torch.special(穩(wěn)定版):torch.special 模塊,類似于 SciPy 的特殊模塊,現(xiàn)在穩(wěn)定版可用。該模塊有 30 種運(yùn)算,包括 gamma、Bessel 和(高斯)誤差函數(shù)。

          nn.Module 參數(shù)化(穩(wěn)定版):允許用戶在不修改 nn.Module 本身的情況下參數(shù)化任何參數(shù)等,在穩(wěn)定版中可用。此版本增加了權(quán)重歸一化 (weight_norm)、正交參數(shù)化(矩陣約束和部分剪枝),用戶在創(chuàng)建自己的參數(shù)化時更加靈活。

          CUDA Graphs API 集成(測試版):PyTorch 現(xiàn)在集成了 CUDA Graphs API 以減少 CUDA 工作負(fù)載的 CPU 開銷。

          CUDA Graphs 大大降低了 CPU 綁定 cuda(CPU-bound cuda)工作負(fù)載的 CPU 開銷,從而通過提高 GPU 利用率來提高性能。對于分布式工作負(fù)載,CUDA Graphs 還可以減少抖動,并且由于并行工作負(fù)載必須等待最慢的工作負(fù)載,因此減少抖動可以提高整體并行效率。

          分布式訓(xùn)練

          在 1.10 版本中,有許多特性在分布式包中從測試版過渡到穩(wěn)定版,具體包括:

          Remote Module(穩(wěn)定版):此功能允許用戶遠(yuǎn)程操作模塊,就像使用本地模塊一樣,其中 RPC 對用戶是透明的;

          DDP Communication Hook(穩(wěn)定版):此功能允許用戶覆蓋 DDP 如何跨進(jìn)程同步梯度;

          ZeroRedundancyOptimizer(穩(wěn)定版):此功能可與 DistributedDataParallel 結(jié)合使用,以減少每個進(jìn)程優(yōu)化器狀態(tài)的大小。

          性能優(yōu)化以及工具

          (測試版)TorchScript 嚴(yán)格要求源代碼具有類型注釋才能成功編譯。長期以來,用戶只能通過反復(fù)試驗來添加缺失或不正確的類型注解,效率低下,耗時長。現(xiàn)在,PyTorch 1.10 利用 MonkeyType 等現(xiàn)有工具為 torch.jit.script 啟用了配置文件定向輸入,這使得該過程變得更容易、更快和更高效。

          (測試版)CPU 融合:PyTorch 1.10 為 CPU 添加了一個基于 LLVM 的 JIT 編譯器,可以將 Torch 庫調(diào)用序列融合在一起以提高性能。雖然此前的版本在 GPU 上擁有此功能已有一段時間了,但 1.10 版本是第一次將編譯引入 CPU。

          PyTorch Profiler

          (測試版)PyTorch Profiler 的目標(biāo)是針對時間或內(nèi)存成本最高的執(zhí)行步驟,并可視化 GPU 和 CPU 之間的工作負(fù)載分布。PyTorch 1.10 包括以下主要功能:

          增強(qiáng)型內(nèi)存視圖:這有助于用戶更好地了解內(nèi)存使用;

          增強(qiáng)型內(nèi)核視圖:附加列顯示網(wǎng)格和塊大小以及每個線程共享內(nèi)存使用和寄存器的情況;

          分布式訓(xùn)練:Gloo 現(xiàn)在支持分布式訓(xùn)練工作;

          TensorCore:該工具顯示 Tensor Core(TC) 的使用,并為數(shù)據(jù)科學(xué)家和框架開發(fā)人員提供建議;

          NVTX:對 NVTX markers 的支持是從舊版 autograd profiler 移植過來的;

          支持移動設(shè)備分析:PyTorch profiler 現(xiàn)在與 TorchScript 、移動后端能夠更好的集成,支持移動工作負(fù)載的跟蹤收集。

          支持 Android NNAPI

          去年,PyTorch 官方發(fā)布了對 Android Neural Networks API (NNAPI) 的原型支持。PyTorch1.10 版本增加了更多的操作,包括在加載時對形狀的支持,以及在主機(jī)上運(yùn)行模型進(jìn)行測試的能力。

          此外,遷移學(xué)習(xí)已經(jīng)添加到對象檢測示例中。

          對于此次 PyTorch 的更新,網(wǎng)友也不僅贊嘆:「PyTorch 團(tuán)隊的出色工作,融合和 profiler 工作,非??幔 ?/p>

          3.png

          關(guān)于 PyTorch1.10 版本的更新,更多信息請參考:

          Github: https://github.com/pytorch/pytorch/releases/tag/v1.10.0

          參考鏈接:

          https://pytorch.org/blog/pytorch-1.10-released/

          https://www.marktechpost.com/2021/10/21/pytorch-releases-version-1-10-with-updates-on-cuda-graphs-apis/

          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



          關(guān)鍵詞: Python

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉