¿£ºñµð¾Æ(www.nvidia.co.kr, CEO Á¨½¼È²)´Â ¼¼°è¿¡¼ °¡Àå º¸±Þ·ÂÀÌ ³ôÀº º´·Ä ÄÄÇ»ÆÃ Ç÷§ÆûÀÌÀÚ ÇÁ·Î±×·¡¹Ö ¸ðµ¨ÀÎ Äí´Ù(CUDA)¢çÀÇ ÃֽйöÀüÀÎ ¿£ºñµð¾Æ¢ç Äí´Ù¢ç(NVIDIA¢ç CUDA¢ç 5) ÇÁ·Î´ö¼Ç ¸±¸®Á ¹ßÇ¥Çß´Ù.
Äí´Ù 5¸¦ »ç¿ëÇØ °³¹ßÀÚµéÀº ¿£ºñµð¾Æ ÄÉÇ÷¯(Kepler)¢â ÄÄǻƮ ¾ÆÅ°ÅØÃ³¿¡ ±â¹ÝÇÑ GPU ¾×¼¿·¯·¹ÀÌÅÍ µî ¿£ºñµð¾Æ GPU ¼º´ÉÀ» ¿ÂÀüÈ÷ Ȱ¿ëÇÒ ¼ö ÀÖ°Ô µÇ¸ç, ´ÙÀ̳ª¹Í ÆÐ·¯·¼¸®Áò(Dynamic Parallelism) Áö¿ø, GPU È£Ãâ ¶óÀ̺귯¸®(GPU-Callable Libraries), RDMA (Remote Direct Memory Access)¸¦ À§ÇÑ GPU´ÙÀÌ·ºÆ® (GPUDirect)¢â Áö¿ø, ¿£ºñµð¾Æ ¿£»çÀÌÆ®(Nsight)¢â ÀÌŬ¸³½º ¿¡µð¼Ç(Eclipse Edition) ÅëÇÕ°³¹ßȯ°æ(Integrated Development Environment) µî »õ·Î¿î ÇÁ·Î±×·¡¹Ö ±â´ÉÀ» Áö¿ø, ÁÖ¿ä ³»¿ëÀº ´ÙÀ½°ú °°´Ù.
• ´ÙÀ̳ª¹Í ÆÐ·¯·¼¸®Áò(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 ÆÄ¿ö¸¦ Ȱ¿ëÇØ ÄÄÇ»ÆÃ ¼º´ÉÀ» °³¼±½ÃÄÑÁÖ¸ç, ¸ðµç º´·Ä ÇÁ·Î±×·¡¸ÓµéÀº Äí´Ù µî·Ï °³¹ßÀÚ ÇÁ·Î±×·¥¿¡ ¹«·á °¡ÀÔ ÈÄ ¼ÒÇÁÆ®¿þ¾î ¸±¸®½º, Åø, ÀÚ¿ø °ü·Ã ¼Ò½Ä ¹× ´Ù¿îÀ» ¹Þ¾Æº¼ ¼ö ÀÖ´Ù.
GPU¸¦ ÅëÇØ °úÇÐ ¹× ¿£Áö´Ï¾î¸µ ¾îÇø®ÄÉÀÌ¼Ç °¡¼ÓÀ» °¡´ÉÇÏ°Ô ÇØÁÖ´Â ÃֽйöÀüÀÇ Äí´Ù 5 ÇÁ·Î´ö¼Ç ¸±¸®Áî´Â ÇöÀç ¿£ºñµð¾Æ °³¹ßÀÚ Á¸¿¡¼ ¹Ù·Î ´Ù¿î¹ÞÀ» ¼ö ÀÖÀ¸¸ç, GPU ÄÄÇ»ÆÃ¿¡ ´ëÇÑ º¸´Ù »ó¼¼ÇÑ Á¤º¸´Â ¿£ºñµð¾Æ À¥ÆäÀÌÁö¿¡¼, Äí´Ù °ü·Ã Á¤º¸ ¹× ÃֽйöÀü ´Ù¿î·Îµå´Â Äí´Ù À¥»çÀÌÆ®¿¡¼ ã¾Æº¼ ¼ö ÀÖ´Ù. |