cglandlogo First Page
°í°´¼¾ÅÍ   
gallery media job community contentsmall  
  dbrush Blizzardfest 2014
 
[¾÷°è¼Ò½Ä/À̽´]¿£ºñµð¾Æ, Äí´Ù(CUDA) 5 ¹ßÇ¥   2012-10-18
ÃֽŠ¹öÀüÀÇ º´·ÄÄÄÇ»Æà Ç÷§ÆûÀ¸·Î ´õ¿í ½¬¿î ÇÁ·Î±×·¡¹ÖÀÌ °¡´ÉÇØÁ³°í °³¹ßÀÚÀÇ ÆíÀǸ¦ À§ÇÑ »õ·Î¿î Åø, ¶óÀ̺귯¸®, ±â´ÉµéÀÌ Ãß°¡ µÈ Äí´Ù (CUDA) 5°¡ °ø°³µÇ¾ú´Ù.
¾¾Áö·£µå±âÀÚ cgland@cgland.com
¨Ï µðÁöÅк귯½Ã & cgland.com, ¹«´Ü ÀüÀç ¹× Àç¹èÆ÷ ±ÝÁö
°Ô½Ã±ÛÀ» twitter·Î º¸³»±â °Ô½Ã±ÛÀ» facebookÀ¸·Î º¸³»±â °Ô½Ã±ÛÀ» Me2Day·Î º¸³»±â

Áö³­ 16ÀÏ. ºñÁÖ¾ó ÄÄÇ»Æà ºÐ¾ßÀÇ ¼¼°èÀûÀÎ ¼±µµ ±â¾÷ÀÎ ¿£ºñµð¾Æ´Â ¼¼°è¿¡¼­ °¡Àå º¸±Þ·ÂÀÌ ³ôÀº º´·Ä ÄÄÇ»Æà Ç÷§ÆûÀÌÀÚ ÇÁ·Î±×·¡¹Ö ¸ðµ¨ÀÎ Äí´Ù(CUDA)ÀÇ ÃֽŠ¹öÀüÀÎ ¿£ºñµð¾Æ Äí´Ù(NVIDIA CUDA 5) ÇÁ·Î´ö¼Ç ¸±¸®Á ¹ßÇ¥Çß´Ù.
 
GPU¸¦ ÅëÇØ °úÇÐ ¹× ¿£Áö´Ï¾î¸µ ¾îÇø®ÄÉÀÌ¼Ç °¡¼ÓÀ» °¡´ÉÇÏ°Ô ÇØÁÖ´Â ÃֽŠ¹öÀüÀÎ Äí´Ù 5 ÇÁ·Î´ö¼Ç ¸±¸®Áî´Â ÇöÀç ¿£ºñµð¾Æ °³¹ßÀÚ Á¸(NVIDIA Developer Zone, www.nvidia.com/getcuda)¿¡¼­ ¹Ù·Î ´Ù¿î¹ÞÀ» ¼ö ÀÖ´Ù. ÀÌ¹Ì 150¸¸ ȸ ÀÌ»ó ´Ù¿î·Îµå µÇ°í ¼±µÎ ¿£Áö´Ï¾î¸µ, °úÇÐ ¹× »ó¿ë ¾îÇø®ÄÉÀÌ¼Ç Áö¿ø¿¡ 180°Ç ÀÌ»ó È°¿ëµÈ ¹Ù ÀÖ´Â Äí´Ù ÇÁ·Î±×·¡¹Ö ¸ðµ¨Àº °³¹ßÀÚµéÀÌ °¡Àå ¼±È£ÇÏ´Â GPU °¡¼Ó ÄÄÇ»Æà ¹æ½ÄÀ¸·Î ÀÚ¸® Àâ¾Ò´Ù.

À̹ø Äí´Ù 5ÀÇ »õ·Î¿î ÇÁ·Î±×·¡¹Ö ±â´ÉÀº GPU °¡¼Ó ¾îÇø®ÄÉÀÌ¼Ç °³¹ßÀ» ±× ¾î´À ¶§º¸´Ù ºü¸£°í ½±°Ô °³¼±ÇÑ´Ù. ´ÙÀ̳ª¹Í Æз¯·¼¸®Áò(Dynamic Parallelism) Áö¿ø, GPU È£Ãâ ¶óÀ̺귯¸®(GPU-Callable Libraries), RDMA (Remote Direct Memory Access)¸¦ À§ÇÑ GPU´ÙÀÌ·ºÆ® (GPUDirect) Áö¿ø, ¿£ºñµð¾Æ ¿£»çÀÌÆ®(Nsight) ÀÌŬ¸³½º ¿¡µð¼Ç(Eclipse Edition) ÅëÇÕ°³¹ßȯ°æ(Integrated Development Environment) µîÀÇ ½Å±â´ÉÀÌ ¹Ù·Î À̸¦ ´ÜÀûÀ¸·Î º¸¿©ÁÖ´Â ¿¹½ÃÀÌ´Ù.

Äí´Ù 5¿¡ ´ëÇÑ °³¹ßÀÚµéÀÇ ¶ß°Å¿î ¹ÝÀÀ
Äí´Ù 5ÀÇ »çÀü°ø°³¹öÀüÀ» Æò°¡Çغ» °³¹ßÀÚµé Áß ¸¹Àº À̵éÀº ±ØÀûÀÎ ¾îÇø®ÄÉÀÌ¼Ç °¡¼Ó°ú ÇÁ·Î±×·¡¹Ö¼º¿¡¼­ÀÇ °³¼±À» ¹Ý°å´Ù.
Ç×°ø¿ìÁÖ ¹× ¹æÀ§»ê¾÷¿¡¼­´Â ÀÌ¹Ì ·¹ÀÌ´õ µî È­»ó, µ¿¿µ»ó ¹× ¼¾¼­ µ¥ÀÌÅÍ Ã³¸®¿¡¼­ Äí´Ù GPU °¡¼ÓÀÇ ÇýÅÃÀ» ¾Ë¾Æ°¡°í ÀÖ´Ù. ¹öÁö´Ï¾Æ ¼£·Ô½ººô¿¡ À§Ä¡ÇÑGE ÀÎÅÚ¸®ÀüÆ® Ç÷§ÆûÁî(GE Intelligent Platforms)ÀÇ GPGPU ¾îÇø®ÄÉÀÌ¼Ç ¿£Áö´Ï¾îÀÎ ´õ½ºÆ¾ Ç÷©Å¬¸°(Dustin Franklin)Àº ¡°Äí´Ù 5´Â ¸Å¿ì Áß¿äÇÑ ±â¼úÀÌ°í, ¿ì¸®°¡ »ç¿ëÇÏ´Â ¾îÇø®ÄÉÀÌ¼Ç Áß ¸¹Àº ¼ö¿¡¼­ ¼¾Å͵¥ÀÌÅ͸¦ ´ë±â½Ã°£ÀÌ ÂªÀº(low latency) GPU·Î ¹Ù·Î ½ºÆ®¸®¹Ö Çϱ⿡, »õ·Î¿î ÄÉÇ÷¯ GPU¿¡¼­ RDMA¸¦ À§ÇÑ GPU´ÙÀÌ·ºÆ® Áö¿øÀº ¿ì¸® °í°´µé¿¡°Ô ¾öû³ª°Ô Áß¿äÇÏ´Ù.¡±¶ó¸ç ¡°Ä¿½ºÅÒ ¼¾¼­ ´Ù¼ö¿¡ ´ëÇÑ Áö¿øÀ» ÀÌ¹Ì ÅëÇÕÇß°í ±× °á°ú¿¡ ¸Å¿ì ¸¸Á·ÇÏ°í ÀÖ´Ù¡±°í ¹àÇû´Ù.

ÇÁ¶û½º ¸®¿ËÀÇ ¸®¿Ë´ëÇк´¿ø(Lyon University Hospital) ¸®¼­Ä¡ »ýÈ­ÇÐÀÚÀÎ ±â¿è º§Áî(Guillaume Belz)´Â º¹ÀâÇÑ ½ÅÈ£ ºÐ¼® ¹× µ¥ÀÌÅÍ ¸¶À̴׿¡ GPU È£Ãâ ¶óÀ̺귯¸®¿Í ´ÙÀ̳ª¹Í Æз¯·¼¸®ÁòÀ» »ç¿ëÇØ ¿À°í ÀÖ´Ù. ±×´Â ¡°GPU °¡¼Ó ´öºÐ¿¡ CPU¸¸À¸·Î´Â ¸î ÁÖ¿¡¼­ ½ÉÁö¾î´Â ¸î ´Þ±îÁö °É¸®´ø ÇÁ·ÎÁ§Æ®¿¡¼­ ÀÌÁ¦ ºÒ°ú ¸î ½Ã°£ ¾È¿¡ °á°ú¸¦ ¾òÀ» ¼ö ÀÖ°Ô µÇ¾ú´Ù.¡±¸ç ¡°GPU °¡¼Ó ¾øÀÌ´Â ºÐ¼® ÀÚü°¡ ¾Æ¿¹ ºÒ°¡´ÉÇÏ´Ù¡±°í ¸»Çß´Ù.

´º¿å ·Îü½ºÅÍ°ø°ú´ëÇÐ(Rochester Institute of Technoloigy) À̹Ì¡ »çÀ̾𽺠¹Ú»ç°úÁ¤À» À̼ö ÁßÀÎ ¿þÀÌÈ­ (¿þÀÎ) ¼±(Weihua (Wayne) Sun)Àº ¿£ºñµð¾Æ ¿£»çÀÌÆ® ÀÌŬ¸³½º ¿¡µð¼Ç¿¡ °¨ÅºÀ» ±ÝÄ¡ ¸øÇß´Ù. ¡°Äí´Ù 5¿¡ »õ·Î¿î ¿£»çÀÌÆ® ÀÌŬ¸³½º ¿¡µð¼Ç IDE°¡ Æ÷ÇÔµÈ´Ù°í µé¾úÀ» ¶§ºÎÅÍ ´çÀå ÇÊ¿äÇÏ´Ù°í »ý°¢Çß´Ù.¡±¸ç ¡°ÇϳªÀÇ ÅëÇÕµÈ °³¹ßȯ°æ¿¡ ¸ðµç ÇÁ·Î±×·¡¹Ö, µð¹ö±ë ¹× ÃÖÀûÈ­ ÅøÀÌ ´Ù µé¾î°¡´Ï »ý»ê¼ºÀÌ Å©°Ô °³¼±µÈ´Ù.¡±°í ±ØÂùÇß´Ù.

Äí´Ù 5¿¡ »õ·Ó°Ô Ãß°¡µÈ ±â´É
Äí´Ù 5¸¦ »ç¿ëÇØ °³¹ßÀÚ´Â Áö±Ý±îÁö ¸¸µé¾îÁø ÃÖ°í¼Ó, °íÈ¿À² ¹× ÃÖ°í¼º´ÉÀÇ ÄÄÇ»Æà ¾ÆÅ°ÅØóÀÎ ¿£ºñµð¾Æ ÄÉÇ÷¯(Kepler) ¾ÆÅ°ÅØó¿¡ ±â¹ÝÇÑ GPU ¾×¼¿·¯·¹ÀÌÅÍ µî ¿£ºñµð¾Æ GPU ¼º´ÉÀ» ¿ÂÀüÈ÷ È°¿ëÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

• ´ÙÀ̳ª¹Í Æз¯·¼¸®Áò(Dynamic Parallelism) – »õ·Î¿î ¾Ë°í¸®ÁòÀÇ GPU °¡¼Ó
GPU ½º·¹µå´Â »õ·Î¿î ½º·¹µå¸¦ ¿ªµ¿ÀûÀ¸·Î »ý¼º, GPU°¡ µ¥ÀÌÅÍ¿¡ ¿ªµ¿ÀûÀ¸·Î ÀûÀÀÇÒ ¼ö ÀÖ´Ù. CPU°£ÀÇ ÁÖ°í ¹ÞÀ½À» ÃÖ¼ÒÈ­Çؼ­ ´ÙÀ̳ª¹Í Æз¯·¼¸®ÁòÀº º´·Ä ÇÁ·Î±×·¡¹ÖÀ» Å©°Ô °£¼ÒÈ­ÇÑ´Ù. ¶ÇÇÑ ÀûÀÀÀû ¸Þ½¬ ¼¼ºÐÈ­ ±â¹ý(Adaptive Mesh Refinement), Àü»çÀ¯Ã¼¿ªÇÐ(CFD) ¾îÇø®ÄÉÀÌ¼Ç µî¿¡ »ç¿ëµÇ´Â ´Ù¾çÇÑ ÀÎ±â ¾Ë°í¸®ÁòÀÇ GPU °¡¼ÓÀÌ °¡´ÉÇØÁø´Ù.

• GPU È£Ãâ ¶óÀ̺귯¸®(GPU-Callable Libraries) – Á¦3ÀÚ ÀÌÄڽýºÅÛ È®Àå °¡´É
»õ·Î¿î Äí´Ù BLAS ¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇØ °³¹ßÀÚ ÀÚ½ÅÀÇ GPU È£Ãâ ¶óÀ̺귯¸®¿¡¼­ ´ÙÀ̳ª¹Í Æз¯·¼¸®ÁòÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ °³¹ßÀÚ°¡ Ä¿³Î ±â´É¼ºÀ» È®ÀåÇÏ°í, Á¦3ÀÚ GPU È£Ãâ ¶óÀ̺귯¸®ÀÇ ±â´É¼ºÀ» Ä¿½ºÅÒÇϵµ·Ï GPU¿¡ ÄݹéÀ» ½ÃÇà ÇÏ´Â Ç÷¯±×ÀÎ API¸¦ µðÀÚÀÎ ÇÒ ¼ö ÀÖ´Ù. ¡°¿ÀºêÁ§Æ® ¸µÅ©(object linking)¡± ±â´É¿¡¼­´Â º¹¼öÀÇ Äí´Ù ¼Ò½º ÆÄÀÏÀ» º°°³ÀÇ ¿ÀºêÁ§Æ® ÆÄÀÏ·Î ÄÄÆÄÀÏÇÏ°í º¸´Ù Å« ¾îÇø®ÄÉÀ̼ǰú ¶óÀ̺귯¸®·Î À̸¦ ¸µÅ©Çؼ­, ´ëÇü GPU ¾îÇø®ÄÉÀ̼ÇÀ» °³¹ßÇÏ´Â È¿À²ÀûÀÌ°í Ä£¼÷ÇÑ ÇÁ·Î¼¼½º¸¦ Á¦°øÇÑ´Ù.

• RDMA¸¦ À§ÇÑ GPU´ÙÀÌ·ºÆ® Áö¿ø – ½Ã½ºÅÛ ¸Þ¸ð¸® º´¸ñÇö»ó ÃÖ¼ÒÈ­
GPU´ÙÀÌ·ºÆ®´Â GPU ±â¼úÀº ´Ù¸¥ PCI-E µð¹ÙÀ̽º°£ Á÷Á¢ Åë½ÅÀ» °¡´ÉÇÏ°Ô ÇÏ°í, ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º Ä«µå¿Í GPU°£ Á÷Á¢¸Þ¸ð¸®¾×¼¼½º¸¦ Áö¿øÇÑ´Ù. ¶ÇÇÑ Å¬·¯½ºÅÍ ³» GPU ³ëµå °£ MPISendRecv ´ë±â½Ã°£À» Å©°Ô ÁÙ¿©ÁÖ°í, Àüü ¾îÇø®ÄÉÀÌ¼Ç ¼º´ÉÀ» °³¼±½ÃŲ´Ù.

• ¿£ºñµð¾Æ ¿£»çÀÌÆ® ÀÌŬ¸³½º ¿¡µð¼Ç(NVIDIA Nsight Eclipse Edition) – ºü¸£°í ½¬¿î Äí´Ù ÄÚµå »ý¼º
¸®´ª½º¿Í ¸Æ OS X Ç÷§Æû¿¡¼­ Ä£¼÷ÇÑ ÀÌŬ¸³½º ±â¹Ý IDE³» GPU ¾îÇø®ÄÉÀÌ¼Ç °³¹ß, µð¹ö±ë ¹× ÇÁ·ÎÆÄÀÏÀÌ °¡´ÉÇØÁø´Ù. ÅëÇÕµÈ Äí´Ù ¿¡µðÅÍ¿Í Äí´Ù »ùÇ÷ΠÄí´Ù ÄÚµå »ý¼º ¼Óµµ°¡ »¡¶óÁö°í, ÀÚµ¿ ÄÚµå ¸®ÆÑÅ丵À¸·Î CPU ·çÇÁ¸¦ Äí´Ù Ä¿³Î·Î ¼Õ½±°Ô Æ÷ÆÃÇÒ ¼ö ÀÖ´Ù. ÅëÇÕµÈ Àü¹®ºÐ¼®½Ã½ºÅÛÀº ÀÚµ¿¼º´ÉºÐ¼®°ú ÄÚµå ³» ¼º´Éº´¸ñÇö»óÀ» ¼öÁ¤ÇÒ ´Ü°èº° °¡À̵带 Á¦°øÇÏ°í, ½ÅÅýº ÇÏÀ̶óÀÌÆÃ(syntax highlighting)À¸·ÎGPU ÄÚµå¿Í CPU ÄÚµå ±¸ºÐÀÌ ½¬¾îÁø´Ù.

¡ã»õ·Î¿î ¿Â¶óÀÎ Äí´Ù ¸®¼Ò½º ¼¾ÅÍ


¶ÇÇÑ °³¹ßÀÚµéÀÌ Äí´Ù·Î º´·ÄÄÄÇ»ÆÃÀÇ ÀáÀç·ÂÀ» ÃÖ´ëÇÑ È°¿ëÇÒ ¼ö ÀÖµµ·Ï ¿£ºñµð¾Æ´Â Äí´Ù ÇÁ·Î±×·¡¸ÓµéÀ» À§ÇÑ ¹«·á ¿Â¶óÀÎ ¸®¼Ò½º ¼¾ÅÍ(docs.nvidia.com)¸¦ ·±ÄªÇß´Ù. ÇÁ·Î±×·¡¸ÓµéÀº ÀÌ »çÀÌÆ®¸¦ ÅëÇØ Äí´Ù Ç÷§Æû°ú ÇÁ·Î±×·¡¹Ö ¸ðµ¨¿¡ °üÇÑ ÃֽŠÁ¤º¸»Ó ¾Æ´Ï¶ó Åø, ÄÚµå »ùÇÃ, ¶óÀ̺귯¸®, API, Æ©´×°ú ÇÁ·Î±×·¡¹Ö °¡ÀÌµå µî ¸ðµç Äí´Ù °³¹ßÀÚ¿ë ¹®¼­¿Í ±â¼úÀ» ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù.

 
Äí´Ù´Â ¿£ºñµð¾Æ°¡ °³¹ßÇÑ º´·ÄÄÄÇ»Æà Ç÷§ÆûÀÌÀÚ ÇÁ·Î±×·¡¹Ö ¸ðµ¨·Î, GPU ÆÄ¿ö¸¦ È°¿ëÇØ ÄÄÇ»Æà ¼º´ÉÀ» ±ØÀûÀ¸·Î °³¼±½ÃÄÑÁØ´Ù. ¸ðµç º´·Ä ÇÁ·Î±×·¡¸ÓµéÀº Äí´Ù µî·Ï Äí´Ù µî·Ï °³¹ßÀÚ ÇÁ·Î±×·¥(CUDA Registered Developer Program, www.nvidia.com/paralleldeveloper)¿¡ ¹«·á °¡ÀÔ ÈÄ ¼ÒÇÁÆ®¿þ¾î ¸±¸®½º, Åø, ÀÚ¿ø °ü·Ã ¼Ò½Ä ¹× ´Ù¿îÀ» ¹Þ¾Æº¼ ¼ö ÀÖ´Ù.

GPU ÄÄÇ»Æÿ¡ ´ëÇÑ º¸´Ù »ó¼¼ÇÑ Á¤º¸´Â ¿£ºñµð¾Æ À¥ÆäÀÌÁö(www.nvidia.co.kr/object/what-is-gpu-computing-kr)¿¡¼­ È®ÀÎÇÒ ¼ö ÀÖÀ¸¸ç Äí´Ù °ü·Ã Á¤º¸ ¹× ÃֽŠ¹öÀü ´Ù¿î·Îµå´Â Äí´Ù À¥»çÀÌÆ® (developer.nvidia.com/category/zone/cuda-zone)¿¡¼­ ã¾Æº¼ ¼ö ÀÖ´Ù.

 
½ºÆ©µð¿À ¿¬°á²÷±â