主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

GPU에서병렬로빅데이터를사용한딥러닝

심층신경망을훈련시키는것은계산집약적인작업이지만,신경망은본질적으로병렬알고리즘입니다。컨벌루션신경망의훈련은일반적으로멀티코어CPU、고성능GPU,또는복수의CPU와GPU가탑재된클러스터에병렬로분산하여훈련속도를높일수있습니다。GPU또는병렬옵션을사용하려면并行计算工具箱™가필요합니다。

并行计算工具箱가있으면자동으로GPU가지원됩니다。기본적으로trainNetwork함수는GPU를사용할수있으면GPU를사용합니다。

복수의GPU가장착된컴퓨터를사용하는경우에는훈련옵션“ExecutionEnvironment”、“multi-gpu”를지정하여GPU를사용할수있습니다。

메모리에담을수없을정도로큰데이터세트가사용되는문제를풀기위해여러개의컴퓨터가필요하지않습니다。컴퓨터클러스터없이도augmentedImageDatastore함수를사용하여데이터배치로작업할수있습니다。예제는증대영상을사용하여신경망훈련시키기항목을참조하십시오。그러나클러스터를사용할수있다면다량의데이터를이리저리이동하는것보다코드를데이터리포지토리에두는것이도움이될수있습니다。

딥러닝하드웨어와메모리고려사항 권장사항 필요한제품
너무커서메모리에담을수없는데이터 너무커서메모리에담을수없는영상컬렉션에서데이터를가져오려면augmentedImageDatastore함수를사용하십시오。이함수는머신러닝및컴퓨터비전응용의더빠른처리를위해영상배치를읽어들이도록설계되어있습니다。

MATLAB®

深度学习工具箱™

CPU 적합GPU한가없는경우에는대신CPU에서훈련시킬수있습니다。기본적으로trainNetwork함수는GPU를사용할수없으면CPU를사용합니다。

MATLAB

深度学习工具箱

GPU 기본적으로trainNetwork함수는GPU를사용할수있으면GPU를사용합니다。GPU를사용하려면CUDA®지원英伟达®GPU(计算能力3.0이상)가필요합니다。gpuDevice를사용하여GPU를확인하십시오。trainingOptions함수를사용해서실행환경을지정하십시오。

MATLAB

深度学习工具箱

并行计算工具箱

CPU코복수의GPU또는어를사용하여로컬컴퓨터에서병렬처리 trainingOptions함수로실행환경을지정하여복수워커의이점을활용합니다。컴퓨터에둘이상의GPU가있는경우“multi-gpu”를지정하십시오。그렇지않은경우,“平行”을지정하십시오。

MATLAB

深度学习工具箱

并行计算工具箱

클러스터또는클라우드에서병렬처리 클러스터또는클라우드에서워커를사용하도록확장하여딥러닝계산속도를높입니다。trainingOptions를사용하고“平行”을지정하여계산클러스터를사용합니다。자세한내용은클라우드에서의딥러닝항목을참조하십시오。

MATLAB

深度学习工具箱

并行计算工具箱

MATLAB并行服务器™

자세한내용은在并行和云中扩展深度学习항목을참조하십시오。

深度学习工具箱에포함된딥러닝훈련,예측및검증을위한모든함수는단정밀도부동소수점연산방식을사용하여계산을수행합니다。딥러닝을위한함수에는trainNetwork预测分类激活가있습니다。CPU와GPU를모두사용하여신경망을훈련시키는경우,단정밀도연산방식이사용됩니다。

GPU의단정밀도성능과배정밀도성능은크게차이가날수있으므로계산이어느정밀도로수행되는지아는것이중요합니다。GPU를딥러닝만을위해사용한다면단정밀도성능이GPU의가장중요한특징중하나가됩니다。并行计算工具箱를사용하여다른계산에도GPU를사용한다면우수한배정밀도성능이중요해집니다。MATLAB의많은함수가기본적으로배정밀도연산방식을사용하기때문에그렇습니다。자세한내용은단정밀도계산을사용하여성능개선하기(并行计算工具箱)항목을참조하십시오。

복수의GPU를사용하여훈련시키기

MATLAB은복수의GPU를병렬로사용하여단일신경망을훈련시키는것을지원합니다。이는로컬컴퓨터,GPU를사용하는워커가있는클러스터또는클라우드에서복수의GPU를사용하여달성할수있습니다。복수의GPU를사용한훈련의속도를높이려면미니배치크기와학습률을늘려보십시오。

컨벌루션신경망은일반적으로영상배치를사용하여반복적으로훈련됩니다。전체데이터셋이너무커서GPU메모리에담을수없기때문입니다。최적의성능을위해,trainingOptions함수와함께지정하는MiniBatchSize옵션으로실험해볼수있습니다。

최적의배치크기는정확한신경망,데이터셋및GPU하드웨어에따라달라집니다。복수의GPU를사용하여훈련시킬때는각영상배치GPU가간에분산됩니다。이로인해사용가능한총GPU메모리가실질적으로늘어나서더큰배치크기를사용할수있게됩니다。그에따라각배치의유의성이향상되므로사용자는학습률을높일수있습니다。배치크기에비례해서학습률을높이는것이좋습니다。활용분야에따라,배치크기와학습률이크면어느정도까지는정확도를감소시키지않으면서훈련속도를높일수있습니다。

복수의GPU를사용하면훈련속도를대폭높일수있습니다。다중GPU훈련으로성능이득이기대되는지보려면다음인자를고려하십시오。

  • 각GPU에서반복은얼마나걸리는가?각GPU반복이짧다면GPU간통신으로인해추가되는오버헤드가두드러질수있습니다。보다큰배치크기를사용하여반복당계산을늘려보십시오。

  • 모든GPU가하나의컴퓨터에있는가?서로다른컴퓨터에있는GPU간통신은상당한통신지연을유발합니다。적절한하드웨어가이영향을줄일수있습니다。자세한내용은高级支持快速多节点金宝appGPU通信항목을참조하십시오。

자세한내용은在并行和云中扩展深度学习훈련에사용할특정GPU선택하기항목을참조하십시오。

클라우드에서의딥러닝

컨벌루션신경망을더빨리훈련하기위해사용할적절GPU한가없는경우,亚马逊®弹性计算云(Amazon EC2®)와같은클라우드에있는여러고성능GPU를딥러닝응용프로그램에사용해볼수있습니다。Amazon EC2와함께P2또는P3컴퓨터인스턴스와클라우드에저장된데이터를사용하여클라우드에서딥러닝을수행하는방법을深学习MATLAB工具箱가예제로제공합니다。

단일컴퓨터에서복수의GPU를사용하거나복수의GPU를갖는컴퓨터클러스터에서복수의GPU를사용하여훈련속도를높일수있습니다。복수의GPU를사용하여단일신경망을훈련시키거나동일한데이터에대해복수의모델을한번에훈련시킵니다。

완전한클라우드워크플로에대한자세한내용은병렬방식및클라우드에서의딥러닝항목을참조하십시오。

백그라운드에서데이터를가져와전처리하기

신경망을병렬로훈련시킬때는백그라운드에서데이터를가져와전처리할수있습니다。백그라운드에서데이터디스패치를수행하려면trainNetwork에서사용하는미니배치데이터저장소에서백그라운드디스패치를활성화하십시오。augmentedImageDatastoredenoisingImageDatastore(图像处理工具箱)또는pixelLabelImageDatastore(计算机视觉工具箱)와같은내장된미니배치데이터저장소를사용할수있습니다。백그라운드디스패치가활성화된사용자지정미니배치데이터저장소를사용할수도있습니다。사용자지정미니배치데이터저장소만들기에대한자세한내용은开发自定义小批量数据存储항목을참조하십시오。

백그라운드디스패치를활성화하려면데이터저장소의DispatchInBackground속성을真正的로설정하십시오。

trainingOptions“WorkerLoad”이름——값쌍인수를지정하여워커간훈련계산과디스패치부하를미세조정할수있습니다。또한병렬풀의워커수를수정해볼수있습니다。자세한내용은병렬기본설정지정하기(并行计算工具箱)항목을참조하십시오。

참고항목

|

관련항목