|
3¿ù 10Àϰú 11ÀÏ ¾çÀÏ¿¡ °ÉÃÄ, ¿£ºñµð¾ÆÀÇ
¼ö¼® °úÇÐÀÚ(Chief Scientist)ÀÎ µ¥À̺ñµå Ŀũ ¹Ú»ç°¡ ¹æÇÑÇØ ±¹³»
°úÇеµµé¿¡°Ô ¿£ºñµð¾Æ°¡ ¹Ì·¡ ÇÙ½É »ç¾÷À¸·Î ¼±ÅÃÇÑ GPU ÄÄÇ»ÆÃÀ» ³Î¸®
¾Ë·È´Ù. Á÷Á¢ °¿¬¿¡ ³ª¼± µ¥À̺ñµå Ŀũ ¹Ú»ç´Â 20¿©³â°£ ±×·¡ÇÈ ÄÄÇ»ÆÃ
ºÐ¾ß¿¡ Á¾»çÇØ¿Â ¼¼°èÀûÀÎ °úÇÐÀÚ·Î 1997³â¿¡ ¿£ºñµð¾Æ¿¡ ÇÕ·ùÇÑ ÀÌ·¡, RIVA
128, RIVA TNT¸¦ ºñ·ÔÇÑ ¸ðµç ÁöÆ÷½º ¹× Äõµå·Î ½Ã¸®ÁîÀÇ °³¹ßÀ» ÁøµÎ
ÁöÈÖÇß´Ù.
¿£ºñµð¾Æ´Â ÃÖ±Ù CPU°¡ ó¸®ÇÏ´Â
°Íó·³ ÀϹÝÀûÀÎ ÇÁ·Î¼¼½Ì¿¡ GPU¸¦ Ȱ¿ëÇÏ´Â ¹æ¹ýÀ» °³¹ßÇØ º¸±ÞÇϰí
ÀÖ´Ù. GPGPU¸¦ ºñ·ÔÇØ CUDA¿Í Àü¹® ÀåºñÀÎ Å×½½¶ó¿¡ À̸£±â±îÁö, ¿£ºñµð¾Æ´Â
GPU ÄÄÇ»ÆÃ¿¡ ¾Æ³¦¾ø´Â ÅõÀÚ¸¦ °ÅµìÇϰí ÀÖ´Ù. ƯÈ÷ GPU ÄÄÇ»ÆÃ¿¡ ÃÖÀûȵÈ
Çϵå¿þ¾îÀÎ Å×½½¶óÀÇ ¹ßÇ¥´Â ¿£ºñµð¾Æ°¡ ÀÌ ºÐ¾ß¿¡ ¾ó¸¶³ª ½Å°æÀ» ¾²°í
ÀÖ´ÂÁö¸¦ º¸¿©ÁÖ´Â »ç°ÇÀÌ´Ù.

¿£ºñµð¾ÆÀÇ ±×·¡ÇÈ ±â¼úÀ» ¹ßÀüÀ»
ÇöÀå¿¡¼ À̲ö ÃÖ°í±Þ ÀÓ¿øÀ̱⵵ ÇÑ µ¥À̺ñµå Ŀũ ¹Ú»çÀÇ À̹ø
¹æÇÑÀº,±¹³» À¯¼öÀÇ ÄÄÇ»ÆÃ Àü¹®°¡µé°ú ÇÔ²² ÀÌ¿Í °°Àº »õ·Î¿î ÄÄÇ»ÆÃ
ÆÐ·¯´ÙÀÓÀ» ¼Ò°³Çϱâ À§Çؼ´Ù. µ¥À̺ñµå Ŀũ ¹Ú»ç´Â "2010³â¿¡´Â
¼¼°è¿¡¼ °¡Àå ºü¸¥ ¼öÆÛÄÄÇ»ÅÍ 5´ë Áß 3´ë´Â GPU ĨÀ» ÀÌ¿ëÇÏ°Ô µÉ
°ÍÀ̶ó°í ÀÚ½ÅÇÕ´Ï´Ù"¶ó°í ¹Ìµð¾î¿¡ ÁÖÀåÇßÀ» ¸¸Å, ÀÌ ºÎºÐ¿¡
´ëÇÑ ±â´ë¿Í ÀںνÉÀÌ ³²´Ù¸¥ Àι°ÀÌ´Ù.
11ÀÏ ¿¬¼¼´ëÇб³ ¹éÁÖ³â±â³ä°ü¿¡¼
¿¸° Çà»ç¿¡¼µµ µ¥À̺ñµå Ŀũ ¹Ú»çÀÇ ±×·¯ÇÑ ÀںνÉÀ» ´À³¢±â¿¡ ¼Õ»öÀÌ
¾ø¾ú´Ù. ÀÌÁ¦´Â Àü»çÀû ¿ª·®À» ÁýÁßÇÏ´Â »ç¾÷ÀÌ µÈ GPU ÄÄÇ»ÆÃÀÎ °ü°è·Î
ÀÌ ºÐ¾ß¸¦ ¼±µµÇϴ Ŀũ ¹Ú»ç¿Í ¿£ºñµð¾Æ ½ºÅǵéÀÌ Çѵ¥ ³ª¿Í »ç¾÷
ÀÇÁö¸¦ °Á¶Çß´Ù. ¿£ºñµð¾ÆÄÚ¸®¾Æ ÀÌ¿ë´ö Áö»çÀå ¿ª½Ã, ȯ¿µ»ç¿¡¼
¿£ºñµð¾Æ ÄÚ¸®¾Æ¸¦ ºñ·ÔÇØ 6000¿©¸íÀÇ Àü Á÷¿øµéÀÌ ¹ß ¹þ°í ³ª¼°í
ÀÖÀ½À» ÀçÂ÷ °Á¶Çß´Ù.

Ŀũ ¹Ú»çÀÇ °¿¬¿¡ ¾Õ¼, ¿£ºñµð¾Æ
¿ùÅ͹®Æ® ºí·ë ºÎ»çÀåÀÇ ¿£ºñµð¾Æ ¼Ò°³°¡ ¸ÕÀú ÁøÇàµÇ¾ú´Ù. ±×´Â ¿£ºñµð¾Æ°¡
¿ì¸® »î°ú ¹ÐÁ¢ÇÑ ±â¼úÀ» °ø±ÞÇÏ´Â ¾÷°è ¼±µÎ ±â¾÷À̶ó°í ¾ð±ÞÇϰí,
²÷ÀÓ¾ø´Â ¿¬±¸°³¹ß°ú Çõ½ÅÀ» Ãß±¸ÇÏ´Â ¿£ºñµð¾Æ ƯÀ¯ÀÇ ±â¾÷ ¹®È°¡
¿ì¸®°¡ ÇöÀç ¸¸³ª°í ÀÖ´Â ÃÖ÷´Ü Á¦Ç°µéÀ» ¸¸µé¾î³Â´Ù°í ¼Ò°³Çß´Ù.

ÇÁ·¹Á¨Å×À̼ÇÀÇ ¼µÎ´Â ¿£ºñµð¾ÆÀÇ
»ç¾÷ºÐ¾ß¿¡ ´ëÇÑ Á¤º¸¿´´Ù. ¾ó¸¶Àü±îÁö¸¸ ÇØµµ GPU, MCP, PESG, CE µî
³× °¡Áö¿´À¸³ª, ÃÖ±Ù ¸ð¹ÙÀÏ ¾ÖÇø®ÄÉÀÌ¼Ç ÇÁ·Î¼¼¼ÀÎ APX2500À» ¹ßÇ¥Çϸé¼
GoForce ÀÌ·¡ ÇÑ µ¿¾È ¼ö¸é ¹Ø¿¡ °¡¶ó ¾É¾Æ ÀÖ´ø ÇÚµåÇïµå GPU ºñÁî´Ï½º°¡
»õ·Ó°Ô »ý°å´Ù. ¿À´Ã ¹ßÇ¥µÉ GPU ÄÄÇ»ÆÃÀº GPU »ç¾÷À¸·Î º¸À̳ª, ¾ö¹ÐÈ÷
À̾߱âÇÏÀÚ¸é HPC(High Performance Computing)À¸·Î µû·Î ºÁ¾ß ÇÑ´Ù.

¿£ºñµð¾ÆÀÇ ÁÖ·Â »ç¾÷Àº ´©°¡ ¹¹·¡µµ
GPU´Ù. 10¿©³â Àü¿¡ 3D °ÔÀÓ °¡¼Ó±â·Î ¾÷°è¿¡ ¹ßÀ» µéÀÎ ÀÌ·¡, ¼ö ¾øÀÌ
¸¹´ø ÀïÀïÇÑ °æÀïÀÚµéÀ» ¹°¸®Ä¡°í ¾÷°è Á¤Á¡¿¡ ¿Ã¶ó¼°Ô ÇÑ µ¿·Â¿øÀº
±×·¡ÇÈÄ«µå¿ë ĨÀÌ´Ù. ±×·¡ÇÈÄ«µå ½ÃÀåÀº ¾÷°è ¼ºÀå¿¡ µû¶ó ¿©·¯ °¥·¡·Î
ºÐÈµÇ¾î ¿Ô´Âµ¥, ¿£ºñµð¾Æ´Â ½ÃÀåÀÇ ¿ä±¸¿¡ µû¶ó ÀÚ»ç GPU »ç¾÷À» ¿î¿µÇØ ½ºÅĵå
¾ó·Ð ŸÀÔ ±×·¡ÇÈÄ«µå ½ÃÀå¿¡ °¡Àå dzºÎÇÑ Æ÷Æ®Æú¸®¿À¸¦ ÀÚ¶ûÇÑ´Ù.
ƯÈ÷ ¿¬Àοø 15000¿©¸íÀÌ ÅõÀԵǴ Äõµå·Î
GPUÀÇ º¸±ÞÀº ´«¿©°Ü º¼ ºÎºÐÀÌ ¸¹´Ù. ĨÀ» ¼³°èÇÏ´Â Àοø, ¾ÖÇø®ÄÉÀ̼ÇÀ»
´Ùµë´Â Àοø, Å×½ºÆ® Àοø, ÆÇÃË Àοø µî ´Ù¹æ¸é¿¡¼ ±¤¹üÀ§ÇÑ Çù·ÂÀ»
ÀÌ·é ³¡¿¡ ¿£ºñµð¾Æ´Â GPU ¾÷°èÀÇ ¼±µÎ°¡ µÈ °ÍÀÌ´Ù. ¿£ºñµð¾ÆÀÇ ¾÷°è
¸®´õ½±À» °ø°íÈ÷ ÇØÁÖ´Â °ÍÀ¸·Î Á¤ÆòÀÌ ³ Äõµå·Î´Â '¿£µå(»ý»êÀÚ) Åõ
¿£µå(¼ÒºñÀÚ)' ÇüÅ·Π±×·¡ÇÈÄ«µå ½ÃÀåÀ» ÀçÆíÇß´Ù.

¿£ºñµð¾Æ ÁÖÀå¿¡ µû¸£¸é, Äõµå·ÎÀÇ
º¸±ÞÀ²À» 80% ÀÌÇÏ ¼öÁØÀ̶ó°í ÇÑ´Ù. °æÀï ¸ðµ¨ÀÌ AMD, SGI Á¤µµ¿¡¼³ª
³ª¿À´Â ÇüÆíÀ» °í·ÁÇÑ´Ù°í ÇØµµ ¹«½Ã¹«½ÃÇÑ Á¡À¯À²ÀÌ´Ù. ÀÌ·± ½ºÄھ
³ª¿Â ÀÌÀ¯´Â ¹«¾ùº¸´Ù ¿£ºñµð¾ÆÀÇ ¼³¸³ÀÚµé ¸ðµÎ°¡ ¿£Áö´Ï¾î¿´´Ù´Â Á¡ÀÌ
Å« ¿ªÇÒÀ» Çß´Ù. ¸ðµÎ °³¹ßÀÚ Á¤½ÅÀ» °¡Áø Å¿¿¡ °³¹ßÀÚ Áö¿ø¿¡ ±× ´©±¸º¸´Ù
´«À» ¸ÕÀú ¶¹´Ù.
¿£ºñµð¾Æ ÄÚ¸®¾Æ ¼³¸³ ¶§ °¡Àå ¿¼ºÀ»
º¸ÀÎ °ÍÀÌ CG ¶óÀ̺귯¸® º¸±ÞÀ̾ú´Ù. ÁöÆ÷½º ±×·¡ÇÈÄ«µå »ç¿ëÀÚ ÀÔÀå¿¡¼´Â
¶á±Ý¾øÀÌ µé·È´ø ±× ¶§ ±× À̾߱Ⱑ Áö±ÝÀÇ ¿£ºñµð¾Æ¸¦ ¸¸µé¾ú´Ù°í ÇØµµ
°ú¾ðÀÌ ¾Æ´Ï´Ù. ±× ´ç½Ã, ATIµµ SGIµµ 3D LABSµµ »ý°¢ÇÏÁö ¸øÇß´ø ¾Æ¸¶Ãß¾î,
Çлý °³¹ßÀڵ鿡°Ô ´ëÇÑ Áö¿øÀ» ÅëÇØ »Ñ¸° ¾¾¾ÑÀÌ Áö±ÝÀÇ Äõµå·Î¸¦ ¸¸µé¾ú´Ù.

Äõµå·Î ±×·¡ÇÈÄ«µå ½Ã¸®Áî´Â NVS290ºÎÅÍ
FX5600±îÁö ´Ù¾çÇÑ ¿µ¿ª¿¡¼ µ¶ÀÚÀûÀÎ ±â´ÉµéÀ» ¾Õ¼¼¿ì°í ½ÃÀå¿¡¼ ÆÇ¸ÅµÇ°í
ÀÖ´Ù. ÃÖ±Ùµé¾î ¿ÀÅäijµå µî ÁÖ·ù ¾ÖÇø®ÄÉÀ̼ǵéÀÌ Äõµå·Î¿Í °°Àº ¿öÅ©½ºÅ×À̼Ç
Ŭ·¡½º ±×·¡ÇÈÄ«µåÀÇ »ç¿ëÀ» ±ÇÀåÇÏ°í ³ª¼¶¿¡ µû¶ó, ´Ù¹æ¸é¿¡ ¶óÀξ÷À»
Àü°³ÇØ µÐ ¿£ºñµð¾Æ ÀÔÀå¿¡¼´Â ½Å¹Ù¶÷ÀÌ ³ª´Â ¿äÁòÀÌ´Ù.
ÀÌ·± ºÐÀ§±â¸¦ À̾±â À§ÇØ ÇöÀç
½ÃÁß¿¡¼ À¯ÅëµÇ´Â µ¥½ºÅ©Å¾, ³ëÆ®ºÏ, ¸ð¹ÙÀÏ, ÆÄ¿öµ¥½ºÅ©, ºí·¹À̵å,
·¢ »þ½Ã µî ´Ù¾çÇÑ Ç÷§Æû¿¡ ĨÀ» °ø±ÞÇØ ¿£ºñµð¾Æ GPU°¡ µé¾î°£
¹°°ÇÀÌ ±ÞÁõÇÏ´Â Ãß¼¼´Ù. ƯÈ÷ ·¢ ŸÀÔ¿¡ ±×·¡ÇÈÄ«µå¸¸ 4Àå ³ÖÀº Äõµå·Î
Ç÷º½º ¸ðµ¨ S4 ±×·¡ÇȽº ¼¹ö±îÁö ¸ð½ÀÀ» µå·¯³», GPU¸¦ ±â¹ÝÀ¸·Î ÇÑ
ÇÁ·Î¼¼½Ì Ç® ȯ°æ ±¸ÃàÀÌ ±Þ¼Óµµ·Î ÁøÇàµÇ°í ÀÖ´Ù.

Äõµå·Î°¡ ¾²ÀÌ´Â ¿µ¿ªÀÌ Àü¹®ÀûÀÎ
3D ¼³°è Á¤µµ°¡ ´ÙÀÎÁÙ ¾Ë¸é ¿À»êÀÌ´Ù. ¿ö½ÌÅÏ´ëÇÐ ÀçÇлýµéÀÌ ½Ã±×¶óÇÁ
06¿¡¼ ¹ßÇ¥ÇÑ µå·¡ÇÁÆ® Æ®·¢ ¾ÖÇø®ÄÉÀ̼ÇÀ» º¸¸é, ½Ç½Ã°£ ¿µ»ó¿¡ °ø±âÈ帧
µî À¯Ã¼µ¥ÀÌÅ͸¦ ¹ÙÅÁÀ¸·Î ÇÑ ½Ç·ç¿§À» ½Ç½Ã°£À¸·Î µ¡ºÙÀÌ´Â °ÍÀ» º¼
¼ö ÀÖ´Ù. °ú°Å¿¡´Â °íµµÀÇ ÆíÁýÀÛ¾÷ÀÌ ÇÊ¿äÇß´ø ÀÏÀÌ, ÀÌÁ¦´Â ´ç¿¬ÇϰԵµ
'½Ç½Ã°£'À¸·Î ´Ù µÇ´Â ½Ã´ë°¡ ¿Â °ÍÀÌ´Ù.

¿ùÅ͹®Æ® ºí·ë ºÎ»çÀåÀº ´ëÇ×ÇØ½Ã´ë¿Í
»ê¾÷Çõ¸í½Ã±â µî Àηù ¹®¸í°ú °ü·ÃµÈ À̾߱⸦ ÇÏ¸é¼ ¾î¶°ÇÑ °è±â¸¦
½ÃÀÛÀ¸·Î ¹ßÀüÀÌ ±Þ¼Óµµ·Î ÀÌ·ç¾îÁö´Â Çö»óÀ» ÁöÀûÇß´Ù. ¹ü¼±°ú Áõ±â¼±,
Áõ±â¼±°ú ºñÇà±â°¡ ¼·Î ±³Â÷µÇ¸é¼ Çõ¸íÀûÀÎ º¯È¸¦ À̲ø¾ú´Ù´Â ºÎ¿¬¼³¸íÀ»
°çµéÀ̱⵵ Çß´Ù. ÀÌ·± À̾߱â´Â °ú°Å¿Í ÇöÀçÀÇ ±Ø´ÜÀûÀÎ ºñ±³¸¦ À§ÇÑ
¹Ì³¢¿´´Ù.
±âÁ¸¿¡ CPU¸¸ Ȱ¿ëÇÑ ¿¬»ê ¼º´ÉÀ¸·Î´Â
'½Ã°£'ÀÌ ¾Æ´Ï¶ó 'ÀÏ'ÀÌ ±âÁØÀÎ ÇÁ·ÎÁ§Æ®µéÀÌ ¸¹¾Ò´Ù. ¾ÆÁ÷µµ ¿¬»ê °É¾î³õ°í
Á¦ÁÖµµ ¿©Çà°¬´Ù¿Íµµ µÉ ±×·± ÀϵéÀÌ ¿ì¸® ÁÖº¯¿¡ Á¸ÀçÇÑ´Ù. ¿£ºñµð¾Æ´Â
ÀÌ·± ½Ã°£ ³¶ºñ¸¦ ÀÚ»çÀÇ ¼Ö·ç¼ÇÀ¸·Î ÇØ°áÇÒ ¼ö ÀÖ´Ù°í ÁÖÀåÇϰí ÀÖ´Ù.
ƯÈ÷ ¿£ºñµð¾Æ´Â Àڻ簡 ÇöÀç º¸±ÞÇϰí ÀÖ´Â GPU ÄÄÇ»ÆÃÀ» µµÀÔÇϸé
Àå°Å¸® ¿©Çà °¥ ½Ã°£ÀÌ Â÷ ¸¶½Ç ½Ã°£À¸·Î ÁÙ¾îµç´Ù°í ÁÖÀåÇß´Ù.


GPU ÄÄÇ»ÆÃÀÇ ¸Å·ÂÀûÀÎ
¿ä¼Ò´Â °ú°Å¿¡´Â ºÒ°¡´ÉÇß´ø ºÎµå·¯¿î ºñÁÖ¾ó ¿¬»êÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù´Â
Á¡ÀÌ´Ù. ÇöÀç Æ¯ÈµÈ ¸ðµ¨ÀÎ Å×½½¶ó´Â ¹°·Ð ¾çÆÇµÇ°í ÀÖ´Â Äõµå·Î,
ÁöÆ÷½º µî¿¡¼ ¸ðµÎ °¡´ÉÇÑ GPU ÄÄÇ»ÆÃÀº ÇϳªÀÇ ¿öÅ©½ºÅ×À̼ǿ¡¼ ½Ç½Ã°£À¸·Î
·¹ÀÌ Æ®·¹À̽ÌÀ¸·Î ½Ç½Ã°£ ·£´õ¸µ üũ¸¦ ÇÑ´Ù´øÁö, CPU¿¡¸¸ ¸Ã±â¸é
Çϼ¼¿ùÀÎ À¯Ã¼¿ªÇÐÀ» ½Ç½Ã°£À¸·Î º¼ ¼ö ÀÖ´Ù´øÁö ÇÏ´Â ÀåÁ¡ÀÌ ÀÖ´Ù.


²À °úÇÐÀÌ ¾Æ´Ï´õ¶óµµ, GPU ÄÄÇ»ÆÃÀÌ
ºû³ª´Â ºÐ¾ß´Â ¸¹ÀÌ ÀÖ´Ù. ¿ùÅ͹®Æ® ºí·ë ºÎ»çÀåÀÇ ¼¼¼Ç¿¡¼ ¸Å¿ì Èï¹Ì·Î¿î
°ÍÀ» º¼ ¼ö ÀÖ¾ú´Ù. ´Ù¸¥ °Ô ¾Æ´Ï¶ó ¿©¼ºµéÀÌ °ü½É ÀÖÀ» ¿Ê ¸Ê½Ã¸¦ 3D·Î
È®ÀÎÇØº¸´Â °Í°ú, ÀÚµ¿Â÷ ÈÙÀ» °¡»óÀ¸·Î ²Ù¸çº¸´Â µ¥¸ð°¡ ¹Ù·Î ±× °Í.
°È°Å³ª ¶Ù°Å³ª ÇßÀ» ¶§ ¿ÊÀÌ ÆÈ¶ôÀÌ´Â °Í, ¹ÙÄû °í¹«¸¸ µé°íµµ ¿À¸¸°¡Áö
ÈÙÀÇ ÀÚŸ¦ ¹Ì¸® º¼ ¼ö ÀÖ´Â °Í. ÀÌ ¸ðµç °ÍÀÌ ÇöÀç ¿£ºñµð¾Æ GPU·Î
°¡´ÉÇÑ ÀÏÀÌ´Ù.

GPU ÄÄÇ»ÆÃ¿¡ ´ëÇÑ °³°ýÀûÀÎ ³»¿ëÀÌ
³¡³ª°í, µ¥À̺ñµå Ŀũ ¹Ú»ç°¡ ¿¬´Ü¿¡ ¿Ã¶ú´Ù. ±×ÀÇ ¿¬¼¼´ëÇб³ °¿¬Àº
¿£ºñµð¾Æ ÄÚ¸®¾Æ°¡ ¼³¸³µÇ¾úÀ» ¶§ ¹æÇÑÇØ °¿¬ÇÑ ÀÌ·¡ µÎ ¹øÂ°´Ù.
óÀ½ ¿¬´Ü¿¡ ¿Ã¶úÀ» ¶§¿¡´Â ¿£ºñµð¾Æ°¡ ±× ´ç½Ã °³¹ßÀڵ鿡°Ô ¸· º¸±ÞÀ»
½ÃÀÛÇÑ C ¾ð¾î ±â¹Ý ±×·¡ÇÈ ¶óÀ̺귯¸®ÀÎ 'NVIDIA CG'¿¡ ´ëÇÑ °¿¬À»
ÇØ ÁöÆ÷½º °æÇ°À» º¸°í ¿Â ¼ö ¸¹Àº ¿£ºñµð¾Æ ¸Å´Ï¾ÆµéÀ» ³î¶ó°Ô ¸¸µé¾ú´Ù.
ÄÁ½´¸Ó ¿µ¿ª¿¡¼ °ÔÀÓ¸¸ ºü¸£°Ô Àß
µ¹¾Æ°¡¸é ÁÁ¾Ò´ø ÀÏ¹Ý ¼ÒºñÀÚµéÀÌ º¸±â¿¡´Â ³Ê¹«³ª ¾î·Á¿ü´ø ³»¿ëÀÌ
ȸ鿡 ÆîÃÄÁ³´ø °ÍÀÌ´Ù. ¿©´ãÀ¸·Î ÀÌ¹Ì ÀÌ ¶§ºÎÅÍ ÇöÀçÀÇ Å×½½¶ó¿Í
CUDA°¡ °³¹ßµÇ°í ÀÖ¾ú´Ù°í ÇÑ´Ù. NVIDIA CG´Â ÀÏÁ¾ÀÇ ½Ã°£ ¹úÀ̾ú°í,
2006³â¿¡ ¼Ò°³µÈ GPGPU´Â CUDA¸¦ ¸¸µé´Ù°¡ ½ÇÇè»ï¾Æ ÁöÆ÷½º ±×·¡ÇÈÄ«µå¿¡
CUDA¸¦ ½ÇÇèÇÑ °ÍÀÌ ¹ß´ÜÀÌ µÇ¾î¼ ³ª¿Â °ÍÀÌ´Ù. ijº¸¸é '¿ì¿¬'°°Àº
ÀϵéÀÌ ³Ê¹« ¸¹´Ù.

óÀ½¿¡ CUDA°¡ ¼Ò°³µÇ¾úÀ» ¶§¿¡´Â
±× ¿µ¿ªÀÌ »ê¼úÀ̳ª Åë°è, »ý¸í°øÇÐ µî Áö±Ýº¸´Ù Àû¾ú´Ù. ±×·¯³ª 2³âÀÌ
Áö³ Áö±Ý¿¡ ¿Í¼ º» ³»¿ëµéÀ» º¸¸é ºÐ¾ß°¡ ÆÄ»ýµÇ¾î ´Ã¾î³µÀ½À» ¾Ë
¼ö ÀÖ´Ù. õü¹°¸®³ª °íÂ÷¿øÈµÈ ¸ðµ¨¸µ µî Àü¿¡´Â ¾ø´ø °ÍµéÀÌ ¸î ´«¿¡
¶è´Ù. À̴ Ŀũ ¹Ú»ç°¡ °¿¬Áß¿¡ ¾ð±ÞÇß´ø´ë·Î, '¸¸µé¾îÁö´Â ±â¼ú'ÀÎ
Å¿ÀÌ Å©´Ù. °è¼Ó »õ·Î¿î °¡´É¼ºÀÌ ¹ß°ßµÇ°í ÀÖ¾î, ¾ÕÀ¸·Îµµ ÀÌ·± ¾ÆÀÌÄܵéÀº
´õ ´Ã¾î³¯ °ÍÀÌ´Ù.

Ŀũ ¹Ú»ç´Â GPUÀÇ ¹ßÀü ¼Óµµ¸¦ ¾ð±ÞÇϸé¼
'Faster'°¡ 'Just Faster'°¡ ¾Æ´Ï¶ó°í ¸ø ¹Ú¾Ò´Ù. ±×´Â 2~3¹è »¡¶óÁö´Âµ¥
¾²´Â Ç¥ÇöÀ¸·Î´Â ÇöÀç GPUÀÇ ¹ßÀü»óÀ» ¼³¸íÇÒ ¼ö ¾ø´Ù°í Çß´Ù. 5~10¹è
ºü¸¥ ¼öÁØÀÎ 'Significant'µµ ¿£ºñµð¾Æ°¡ ÀÌ·é ¾÷ÀûÀ» ¼³¸íÇϴµ¥ ¸ðÀÚ¸£´Ù°í
Çß´Ù. Åë»óÀûÀÎ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¹öÀü ¾÷µ¥ÀÌÆ®·Î º¸¿©ÁÖ´Â ¼º´É Çâ»ó¿¡³ª
¸Â´Â Ç¥ÇöÀ̶ó°í.
GPU ÄÄÇ»ÆÃÀÌ º¸¿©ÁÖ´Â Çõ½ÅÀ» Ç¥ÇöÇÒ
´Ü¾î·Î ¼±ÅÃµÈ °ÍÀº 'Fundamentally Different'´Ù. Ŀũ ¹Ú»ç´Â 100¹è
ÀÌ»ó »¡¶óÁ® ÀÌÀü¿¡ ³ª¿Â °Íµé°ú´Â ¾Æ¿¹ Â÷¿øÀ» ´Þ¸®ÇÒ ¶§ ¾²´Â Ç¥ÇöÀ̾߸»·Î
ÀÚ»çÀÇ GPU ÄÄÇ»ÆÃ¿¡ ÀûÇÕÇÑ Ç¥ÇöÀ̶ó°í ¾ð±ÞÇß´Ù. ƯÈ÷ ÇöÀç ÁÖ·ù GPUÀÎ
'G80'Àº ÀÌÀü ¼¼´ë GPU¿Í´Â ´Þ¸® GPU ÄÄÇ»ÆÃÀ» À§ÇØ ¼³°èµÈ °ÍÀ̾î¼
ÁöÆ÷½º³ª Äõµå·Î °°Àº ºê·£µå¿¡ ¿¬¿¬ÇÏÁö ¾Ê°í µ¿±ÞÀÌ¸é °°Àº ¼º´ÉÀ»
³½´Ù.

À§¿¡¼ º¼ ¼ö ÀÖ´Â ½½¶óÀ̵å´Â CPU¿Í
GPUÀÇ ºÐ´ã ü°è¿¡ ´ëÇÑ °ÍÀÌ´Ù. ¿£ºñµð¾ÆÀÇ »ó¡»öÀÎ ³ì»öÀÌ GPU, ĨÀÚÀ̾ðÆ®
ÀÎÅÚÀÇ »ó¡»öÀÎ ÆÄ¶õ»öÀÌ CPU´Ù. Ŀũ¹Ú»ç´Â GPU ÄÄÇ»ÆÃÀ̶ó°í ÇØ¼,
CPU ¾øÀÌ ½ºÅÄµå ¾ó·ÐÀ¸·Î µ¹¾Æ°¡´Â °ÍÀÌ ¾Æ´ÔÀ» ¿ì¼± Á¤ÀÇÇß´Ù. CUDA¿Í
°°Àº GPU ÄÄÇ»ÆÃÀº CPU ÄÚ¾î Çϳª¿¡ GPU ÄÚ¾î Çϳª°¡ ¿¬µ¿µÇ´Â ÇüÅ´Ù.
ÁÖ¿ä ¿¬»êÀ» GPU¸¦ ÅëÇØ ó¸®Çϱä
Çϳª, °üÁ¦ ºÎ¹®Àº CPU°¡ ¿ªÇҺдãÀ» ÇÑ ÇüÅ´Ù. Ĩ ÀÚü°¡ ÇÒ ÀÏÀÌ
³Ê¹« ¸¹Àºµ¥´Ù ¼ö ¸¹Àº I/O¿Í ¿«¿©ÀÖ´Â CPUÀÇ ´ÜÁ¡À» ÇØ°áÇϱâ À§ÇØ
¿Âº¸µå ¸Þ¸ð¸®¸¦ L2 ij½Ã ¸Þ¸ð¸® ó·³ ¾²´Â ±×·¡ÇÈÄ«µå°¡ º¸Á¶ ¿¬»êÀåÄ¡·Î
µ¡ ºÙÀº °ÍÀÌ´Ù. ´Ü, GPUÀÇ ¼º´ÉÀÌ ¿ùµîÇϹǷÎ, Á¦´ë·Î ÇÁ·Î±×·¡¹Ö¸¸
ÇÒ ¼ö ÀÖ´Ù¸é Çü º¸´Ù ³ªÀº ¾Æ¿ì ³ë¸©À» ÅåÅåÈ÷ ÇØ³½´Ù.

¾Õ¼ »ì¦ ¾ð±ÞÇßµí, G80 °è¿ ÀÌÈÄ¿¡
³ª¿Â GPUµéÀº ¸ðµÎ GPU ÄÄÇ»ÆÃÀ» ¾µ ¼ö ÀÖ´Ù. ³»ºÎÀûÀ¸·Î ¼³°è ·¹º§ºÎÅÍ
GPU ÄÄÇ»ÆÃÀ» ¿°µÎ¿¡ µÐ ÀåÄ¡¸¦ ¿©·µ ÇØ µÖ, 8800 ½Ã¸®Áî ÀÌÈÄ¿¡ ³ª¿Â
GPU µéÀº ÁöÆ÷½ºµç Äõµå·Îµç Å×½½¶óµç ÀÌ·ÐÀûÀ¸·Î °°Àº ¼º´ÉÀ» ³¾ ¼ö
ÀÖ´Ù. ´Ù¸¸, Ç÷§Æû º°·Î Æ¯ÈµÈ ºÎºÐÀÌ ÀÖ¾î ±â¼úÁö¿ø ºÎºÐÀ» »ý°¢ÇÑ´Ù¸é
ºÐ¾ß¿¡ ¸ÂÃç ¾²´Â °ÍÀÌ ±ÇÀåµÈ´Ù.

¿Ö ºê·£µå¸¦ ¸ÂÃç ¾²´Â°¡°¡ Áß¿äÇϳĸé,
±â¼úÁö¿øÀÇ ¿©ºÎ°¡ ½ÇÁ¦ °á°ú¿¡ »ó´çÈ÷ ¿µÇâÀ» ¹ÌÄ¡±â ¶§¹®ÀÌ´Ù. ¹Ì±¹¿¡¼´Â
GPU ÄÄÇ»ÆÃÀ¸·Î Àç¹Ì¸¦ ÅåÅåÈ÷ º» »ç·Ê°¡ ¿©·µ µÇ´Âµ¥, ¿©±â¿¡¼ º¸¸é
3°³ÀÇ GPU·Î 705±â°¡Ç÷ӽº¸¦ ³½´Ù´Â µîÀÇ ¼³¸íÀ» º¼ ¼ö ÀÖ´Ù. ±×·±µ¥
ÀÌ ¼öÄ¡´Â ¾ö¿¬È÷ ¾÷ÀûÀ» ÀÌ·é ¿¬±¸¿øµéÀÇ ³ë°í°¡ ±êµç °ÍÀÌ´Ù.
ÇöÀå¿¡¼ Å×½½¶ó¸¦ ¸¸Á®º» »ç¶÷µéÀÇ
¸»À» µé¾îº¸¸é, ±âº» Á¦°øµÇ´Â SDK·Î ´ëÃæ µ¹·Áº¸¸é 2±â°¡Ç÷ӽº°¡ ³ª¿Â´Ù°í
ÇÑ´Ù. ÀÌ ¼öÄ¡µµ CPU¿Í ºñ±³ÇØ º¸ÀÚ¸é ¹«Ã´ ³ôÀº °ÍÀÌÁö¸¸, ¿£ºñµð¾Æ°¡
ÀÚ¶ûÇÏ´Â ÀÌ·ÐÀûÀÎ ÃÖ´ëÄ¡¿¡´Â 10%¿¡µµ ¸ø ¹ÌÄ£´Ù. ³ª¸ÓÁö Â÷ÀÌ´Â
ÇÁ·Î±×·¡¸Ó°¡ 'Çϱ⠳ª¸§'Àε¥, ±×¸¸Å ³À̵µ°¡ ³ôÀº ÀÛ¾÷ÀÌ´Ù. ÇÁ·Î±×·¡¸Ó
ÀÚ½ÅÀÇ ½Ç·ÂÀÌ ¼ýÀÚ·Î µé¾î³ª´Â È®¿¬È÷ µå·¯³´Ù.


Æ÷±âÇϰųª µµ¸Á°¡Áö ¾Ê°í Á¤¸é¿¡¼
¸Â¼ ½Î¿ü´Ù¸é ȯ»óÀûÀÎ ¼º°ú¹°ÀÌ ±â´Ù¸®´Â °ÍÀÌ CUDA¿ä, GPU ÄÄÇ»ÆÃÀÌ´Ù.
Ŀũ ¹Ú»ç´Â CPU ±â¹ÝÀ¸·Î ÇÏÀÚ¸é Çϴµ¥, ÀÎÇÁ¶ó ±¸Ãà¿¡ µ·ÀÌ ³Ê¹«
¸¹ÀÌ ³ª°¥ ½Å°æ¼¼Æ÷ ½Ã¹Ä·¹À̼ÇÀ̳ª ¾öû³ª°Ô ¸¹Àº º¯¼ö¸¦ ´Ù·ç´Â ´º¿å ¿É¼Ç°Å·¡Àå
ÇÁ·Î±×·¥ µîÀº »ó´ëÀûÀ¸·Î Àú·ÅÇÏ°Ô ¹«Á¦ÇÑ Å¬¶ó½ºÅ͸µÀÌ µÇ´Â ¿£ºñµð¾Æ
¼Ö·ç¼ÇÀ¸·Î ÇØ°áÃ¥À» ãÀ» ¼ö ÀÖ´Ù°í »ç·Ê¸¦ µé¾î ¼³¸íÇß´Ù.


GPU ÄÄÇ»ÆÃÀÇ ÇÙ½ÉÀÎ CUDA´Â ±âº»ÀûÀ¸·Î
G80 ÀÌ»óÀÇ GPU¸¦ ±â¹ÝÀ¸·Î ÇÑ´Ù. ¿ì¸®°¡ '½ºÆ®¸² ÇÁ·Î¼¼¼'¶ó°í ¾Ë°í
ÀÖ´Â ¿¬»ê À¯´ÏÆ®°¡ ¾²·¹µå¸¦ ºí·Ï ´ÜÀ§·Î ¹Àº ¸í·É¾îµéÀ» ó¸®ÇÏ´Â
ÇüÅ·Π°¡µ¿µÈ´Ù. G80¿¡´Â ÃÑ 128°³ÀÇ ½ºÆ®¸² ÇÁ·Î¼¼¼°¡ µé¾î Àִµ¥,
GPU ÄÄÇ»ÆÃ¿¡¼ ¾´´Ù¸é ÃÑ 12288°³ÀÇ ¾²·¹µå¸¦ »ý¼º½Ãų ¼ö ÀÖ´Ù.
Âü°í·Î GPU ÄÄÇ»ÆÃ¿¡¼ ¸»ÇÏ´Â ¾²·¹µå´Â
CPU¿¡¼ ¸»ÇÏ´Â ¾²·¹µå¿Í °³³äÀÌ »ç¹µ ´Ù¸£´Ù. CPU¿¡¼´Â ¼ö ¸¹Àº »çÀÌŬÀÇ
¹À½ÀÌ ÇϳªÀÇ ¾²·¹µåÀε¥, ÀÌ¿Í ´Þ¸® GPU ÄÄÇ»ÆÃ¿¡¼´Â ÇϳªÀÇ »çÀÌŬÀÌ
ÇϳªÀÇ ¾²·¹µå°¡ µÈ´Ù. Ŀũ ¹Ú»ç Ç¥Çö¿¡ µû¸£¸é ¸Å¿ì °¡º±°í ´Ù·ç±â
½¬¿î ±¸Á¶·Î ¾²·¹µå°¡ ±¸¼ºµÈ´Ù°í.
G80 GPU¸¦ ±â¹ÝÀ¸·Î GPU ÄÄÇ»ÆÃÀ»
²Ù¹Î´Ù¸é, È£½ºÆ®´Â CPU°¡ ¸Ã°í µð¹ÙÀ̽º´Â GPU°¡ ÇØ´çµÇ´Â ±¸Á¶´Ù.
Ä¿³ÎÀº µð¹ÙÀ̽º¿¡¼ µ¿ÀÛÇÏ´Â Æã¼ÇÀ¸·Î ±¸Á¶ ÀÚü´Â CPU º¸´Ù ´Ü¼øÇÏ´Ù.
´ë½Å ÁÖÀÇÇÒ Á¡ÀÌ Àִµ¥, ÀÌ·± ¾²·¹µå°¡ °³º°ÀûÀ¸·Î ¼·Î °£¼·ÇÏÁö
¸øÇϰí Çѵ¥ ¹¿© ºí·Ï ´ÜÀ§·Î ¿¬»êµÈ´Ù´Â Á¡ÀÌ´Ù. ÇÁ·Î±×·¡¹ÖÀÌ ¸Å¿ì
¾î·Á¿öÁö°í, º¯¼ö°¡ ¸¹¾ÆÁö´Â °ÍÀ» ¹æÁöÇϱâ À§ÇÑ Á¶Ä¡¶ó°í ÇÑ´Ù.

Ŀũ ¹Ú»ç´Â CUDA Zone(http://nvidia.com/cuda)¿¡¼
À©µµ¿ì/¸®´ª½º/¸ÆOS ¿ëÀ¸·Î Á¦ÀÛµÈ Åø ŰƮ¿Í SDK¸¦ ´Ù¿î·Îµå ¹Þ°í ¶óÀ̺귯¸®¿Í
Ç÷¯±×ÀÎ µîÀ» Ȱ¿ëÇØ Á÷Á¢ GPU ÄÄÇ»ÆÃ¿¡ µµÀüÇØ º¼ °ÍÀ» ±ÇÀ¯Çß´Ù.
¶Ç ÀÚ½ÅÀÌ 2007³â¿¡ µÎ Çб⠵¿¾È Á÷Á¢ Àϸ®³ëÀÌ ÁÖ¸³´ëÇп¡¼ °¿¬Çß´ø
³»¿ëÀ» ½½¶óÀ̵å¿Í MP3 ÇüÅ·Π¿Ã·ÁµÐ ȨÆäÀÌÁö(http://courses.ece.uiuc.edu/ece498/al)À»
¾Ë·ÁÁֱ⵵ Çß´Ù.
½ÃµµÇÒ ¼ö ÀÖ´Â °Í°ú ¹è¿ï ¼ö ÀÖ´Â
°ÍÀ» ¾Ë·ÁÁÖ°í ÇÑ ÀÏÀº ´ç¿¬ÇϰԵµ ¼÷Á¦¸¦ ³»ÁÖ´Â ÀÏÀ̾ú´Ù. Ŀũ ¹Ú»ç´Â
´ÙÀ½ ¹Ì¼ÇµéÀ» Á¦½ÃÇß´Ù.
1. We're going to dive right into
progrmming CUDA. 2. In exercise 1 you will learn to use cudamalloc
and cudamemcpy 3. In this exercise you will write and execute
a simple CUDA kernel 4. Given an input array, reverse it 5.
In this part, you will reverse a small array(the size of a single
thread block) 6. Given a large input array, reverse it 7.
This requires launching many thread blocks
Ŀũ ¹Ú»ç°¡ ¹Ì¼ÇÀ» Á¦½ÃÇÑ
°ÍÀº ´Ü¼øÈ÷ °³¹ßÀÚÀÇ ¿©ÈïÀ» À§ÇÑ °ÍÀ̶ó±â º¸´Ù´Â 'Ãë¾÷ Á¤º¸'¿Í °ü·ÃÀÌ
ÀÖ´Ù. Ŀũ ¹Ú»ç°¡ ¹Ì¼ÇÀ» ³»¸é¼ CUDA ¿¡ ´É¼÷ÇÑ ÀÎÀ縦 ÀÎÅÏä¿ëÇÏ·Á°í
ÇÑ´Ù´Â ¸»À» Çß´Ù. ´ëÇб³¿¡¼ ´ëÇлýÀ» ´ë»óÀ¸·Î ÇÑ Çà»ç¿©¼
¿©´À ¶§º¸´Ù Àǹ̰¡ ³² ´Ù¸¥ ÆøÅº¼±¾ðÀ» ÇÑ ¼À. ¿£ºñµð¾Æ°¡ ¿£Áö´Ï¾î
Ä£ÈÀûÀ̶ó´Â °ÍÀº Àü¼¼°èÀûÀ¸·Î ¼Ò¹®³ »ç½Ç. °³¹ßÀÚÀÇ ²ÞÀ» Ű¿ì´Â ´ëÇлýÀ̶ó¸é
´«¿©°Ü º¸ÀÚ.

|