µö·¯´×¿¡¼ mGPU»ç¿ë¹æ¹ý¿¡ ´ëÇÑ Áú¹®ÀÔ´Ï´Ù~!
http://www.2cpu.co.kr/deep/1674 (354)https://www.tensorflow.org/guide/distributed_training?hl=ko (925)
"이전에 딥러닝 게시판에 올렸지만 게시판 성격이 안맞는것 같아서 옮겼습니다"
--------------------------------------------------------------------------------------------------------------
안녕하세요~!
딥러닝 업무를 받게되면서 컴퓨터를 맞추기 위해서 하드웨어를 공부중인데 2장의 GPU의 VRAM을 사용하는 방법이 궁금합니다
CUDA나 텐서플로우가 mGPU를 지원한다고 하는데 정녕 자동으로 VRAM을 나눠서 작업을 해주진 않을거라 추측되서 찾아보니 아래같은 내용이 있었습니다.
이런 분산 Strategy을 설정해서 사용하면 될것 같은데 그럼 텐서플로우에서 갖고있는 자원 내에서 알아서 정리가 되는건가요??
보통 n-way로 딥러닝 워크스테이션 맞추시는 분들은 대부분 이런 전략을 사용하거나 수동으로 GPU에 일을 할당하시나요?
3090 2-way로 견적을 맞출 예정인데 2개의 VRAM과 GPU를 사용하려면 그에 맞는 코딩을 하는게 맞는건지
아니면 신경 안써도 자동으로 2대를 다 사용해주는건지 궁금합니다.
(어차피 SLI이나 CFX는 VRAM 간의 대역폭을 넓혀주는데 도움은 줄 수 있을것 같은데 크게 신경쓰고 있진 않습니다...)
마지막으로 제가 시스템을 구축하면 다른 개발자들이 그 위에서 코딩을 할것 같은데 백엔드는 nvcc 같은걸로 연결해놓고
그 위에 텐서플로우의 distribute 설정된layer을 올릴 수 있을까요?? 개발자들이 distribute관련된 지식없이 텐서플로우 예제만 따라쳐도 알아서 분산처리될 수 있는 환경을 구축할 수 있는지 궁금합니다.
3090nvlink Áö¿øÇϳª¿ä.?
GPU ¿©·¯°³ ²ÅÇôÀÖ´Â°É º¼ ¶§´Â ¸ÚÀÖ¾ú´Âµ¥ ½ÇÁ¦·Î ¾µ·Á´Ï Çè³Çϳ׿ä;;
nvlinkÀ» ¿¬°á½ÃÅ°¸é ÅÙ¼ÇÃ·Î¿ì »ó¿¡¼µµ ºÐ»ê󸮸¦ ¾ÈÇصµ µÇ³ª¿ä???
nvlink´Â sli¿Í °°Àº ±â´ÉÀ¸·Î µ¥ÀÌÅÍ ¹ö½ºÁ¤µµ·Î¸¸ ÀÌÇØÇÏ°í ÀÖ¾ú½À´Ï´Ù
(GPU 1¹ø¿¡¼ °è»êµÈ °á°ú¸¦ GPU 2¹øÀ¸·Î ¸ðÀ» ¶§ ºü¸¥ µ¥ÀÌÅÍ Àü¼ÛÀÌ °¡´ÉÇÏ´Ù Á¤µµ·Î »ý°¢ÇÏ°í ÀÖ¾ú½À´Ï´Ù)
data parallelÀº GPU¸¶´Ù µ¿ÀÏÇÑ ³×Æ®¿öÅ©¸¦ ¿Ã¸°µÚ 1¹ø µ¥ÀÌÅÍ¿¡ ´ëÇÑ ¿¬»êÀº 1¹ø gpu¿¡¼ 2¹ø µ¥ÀÌÅÍ¿¡ ´ëÇÑ ¿¬»êÀº 2¹øÀ¸·Î ¼öÇàÇÏ´Â ¹æ¹ýÀ̸ç,
model parallelÀº ¾î¶² ¿¬»êÀº 1¹ø gpu¿¡¼ ³ª¸ÓÁö ¿¬»êÀº 2¹ø gpu¿¡¼ ¼öÇàÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.
1¹øÀº data parallel wrapper¸¦ ¸ðµ¨¿¡ ¾º¿öÁֱ⸸ ÇÏ¸é ±¸ÇöÀÌ ½±°Ô µÇÁö¸¸, model parallelÀº ¼¼ºÎÀûÀ¸·Î Á÷Á¢ device¿¡ ´ëÇؼ ¿¬»êÀ» ÁöÁ¤ÇØÁÖ¾î ±¸ÇöÇÏ¿©¾ß ÇÕ´Ï´Ù.
Áö½Ä¾øÀÌ ÇÏ·Á¸é data parallelÂÊÀ¸·Î °í·ÁÇϽðí, data paralle ¿¹Á¦´Â ¸¹ÀÌ °ø°³µÇ¾î ÀÖÀ¸´Ï Âü°íÇÏ½Ã¸é µÉ°Í °°½À´Ï´Ù.
óÀ½ ½ÃÀÛÀÌ´Ï data parallelºÎÅÍ ½ÃÀÛÇؼ ±¸Á¶°¡ Àͼ÷ÇØÁö¸é model parallel·Î ³Ñ¾î°¡¾ß°Ú½À´Ï´Ù¤Ð
GPU Àß ¾²·Á¸é ¾öû ±í°Ô ³»·Á°¡¾ß°Ú¾î¿ä¤Ð¤Ð