傳統(tǒng)上,深度神經(jīng)網(wǎng)絡訓練采用的是IEEE單精度格式,但借助混合精度,可采用半精度進行訓練,同時保持單精度的網(wǎng)絡精度。這種同時采用單精度和半精度表示的技術被稱為混合精度技術。
混合精度訓練的優(yōu)勢
通過使用Tensor核心,可加速數(shù)學密集型運算,如線性和卷積層。
與單精度相比,通過訪問一半的字節(jié)來加速內(nèi)存受限的運算。
降低訓練模型的內(nèi)存要求,支持更大規(guī)模的模型或更大規(guī)模的批量訓練。
啟用混合精度包括兩個步驟:移植模型,以適時使用半精度數(shù)據(jù)類型;以及使用損耗定標,以保留小梯度值。
僅通過添加幾行代碼,TensorFlow、PyTorch和MXNet中的自動混合精確功能就能助力深度學習研究人員和工程師基于NVIDIA Volta和Turing GPU實現(xiàn)高達3倍的AI訓練加速。
將自動混合精度用于主流深度學習框架
TensorFlow
NVIDIA NGC容器注冊表中TensorFlow容器可提供自動混合精度功能。要在容器內(nèi)啟用此功能,只需設置一個環(huán)境變量:
export TF_ENABLE_AUTO_MIXED_PRECISION=1
或者,您也可以在TensorFlow Python腳本中設置環(huán)境變量:
os.environ['TF_ENABLE_AUTO_MIXED_PRECISION'] = '1'
自動混合精度使用單一環(huán)境變量,在TensorFlow內(nèi)部應用這兩個步驟,并在必要時進行更細粒度的控制。
PyTorch
GitHub的Apex存儲庫中提供了自動混合精度功能。可將以下兩行代碼添加至當前訓練腳本中以啟用該功能:
model, optimizer = amp.initialize(model, optimizer)
with amp.scale_loss(loss, optimizer) as scaled_loss:scaled_loss.backward()
MXNet
我們正在構建適用于MXNet的自動混合精度功能。您可通過GitHub了解我們的工作進展??蓪⒁韵麓a行添加至當前訓練腳本中以啟用該功能:
amp.init()amp.init_trainer(trainer)with amp.scale_loss(loss, trainer) as scaled_loss:autograd.backward(scaled_loss)
-
神經(jīng)網(wǎng)絡
+關注
關注
42文章
4819瀏覽量
106071 -
gpu
+關注
關注
28文章
5036瀏覽量
133748 -
深度學習
+關注
關注
73文章
5586瀏覽量
123646
原文標題:Tensor核心系列課 | 探究適用于深度學習的自動混合精度
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業(yè)解決方案】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
國際巨頭重金投入,國產(chǎn)深度學習框架OneFlow有何優(yōu)勢?
混合系統(tǒng)的優(yōu)勢所在
Nanopi深度學習之路(1)深度學習框架分析
PyTorch 1.6即將原生支持自動混合精度訓練

淺談字節(jié)跳動開源8比特混合精度Transformer引擎
深度學習框架的作用是什么
深度學習算法庫框架學習
深度學習框架和深度學習算法教程
視覺深度學習遷移學習訓練框架Torchvision介紹

評論