À©µµ¿ì 7, GPGPU´Â DirecX Compute·Î Áö¿ø
ÃÖ±Ù GPU¸¦ CPU°¡ ÇÏ´ø ÀÏ ÀϺθ¦ µµ¿ÍÁÙ ¼ö ÀÖ´Â ±â¼úÀÎ GPGPU°¡ ºÎ°¢µÇ°í Àִµ¥ À©µµ¿ì 7¿¡¼µµ GPGPU¸¦ À§ÇÑ ±â¼úÀ» DirectX Compute¶ó´Â À̸§À¸·Î Áö¿øÇÏ°í ÀÖ´Ù.
¿©±â¿¡¼´Â GPGPU Áö¿øÀ» À§ÇÑ DirectX Compute¸¦ »ìÆ캸±â¿¡ ¾Õ¼ DirectX 11ÀÌ ±âÁ¸ DirectX 10/ 10.1°ú ´Þ¸®Áø ÁÖ¿ä ºÎºÐÀ» Àá±ñ ¾ð±ÞÇÑ ÈÄ º»°ÝÀûÀ¸·Î DirectX Compute¸¦ »ìÆ캸µµ·Ï ÇÏ°Ú´Ù.
DirectX 10°ú ´Þ¶óÁø DirectX 11
DirectX 11Àº ±âº»ÀûÀ¸·Î Direct 3D 10°ú Direct 3D 10.1¿¡¼ Áö¿øµÇ´ø 4x MSAA »ùÇà ÆÐÅÏ°ú ¸¶½ºÅ©, Å¥ºê ¸Ê ¹è¿ Áö¿ø µîÀ» ºñ·ÔÇÏ¿© Direct 3D 9¹öÀüÀÇ ±âº»ÀûÀÎ ±â´ÉµéÀÌ ¸ðµÎ Æ÷ÇԵȴÙ. DirectX 11Àº DirectX 10°ú ºñ±³ÇÏ¿© ¾Æ·¡ÀÇ 3°¡ÁöÀÇ ÁÖ¿äÇÑ Æ¯Â¡µéÀÌ Ãß°¡µÇ¸é¼ °ÔÀÓ µî¿¡¼ÀÇ ¼º´É°ú Ãß°¡ È¿°ú ¹× È¿À² Çâ»óÀ» °¡Á®¿À°í ÀÖ´Ù.
1. Å×¼¿·¹ÀÌ¼Ç (Tessellation)
Å×¼¿·¹À̼ÇÀº ÁÖ·Î 3D ¸ðµ¨ »ý¼º¿¡ °ü¿©Çϴµ¥ ºü¸¥ ·»´õ¸µ ¹× ´õ ÀûÀº ¸Þ¸ð¸® °ø°£ÀÇ »ç¿ë µîÀ» ÅëÇØ ±âÁ¸ ½¦ÀÌ´õ À¯´ÖµéÀ» »ç¿ëÇÏ´Â °Íº¸´Ù ´õ¿í »ç½ÇÀûÀÎ Àι°À̳ª ¹°Ã¼ Ç¥ÇöÀÌ °¡´ÉÇØÁ® °ÔÀÓ ³»ÀÇ »ç½Ç¼ºÀ» ³ô¿©ÁÙ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â ±â¼úÀÌ´Ù.
AMD ATIÀÇ °æ¿ì °æÀï»çº¸´Ù ºü¸£°Ô Àû¿ëÇÑ DirectX 10.1°ú ´õºÒ¾î Radeon HD 2000 ½Ã¸®Áî¿¡ Å×¼¿·¹ÀÌ¼Ç À¯´ÖÀ» Ãß°¡ (°ú°Å ATI´Â Truform À̶ó´Â ±â¼ú »ç¿ë)Çß°í Xbox 360¿¡ ÀåÂøµÈ GPU ¿ª½Ã À̸¦ žÀçÇÏ°í ÀÖ´Ù.
[Direct 3D 11, DX 3D 10¿¡ Å×¼¿·¹À̼ÇÀ» À§ÇÑ 3°¡Áö ½ºÅ×ÀÌÁö Ãß°¡]
DirectX 11¿¡¼´Â Å×¼¿·¹À̼ÇÀ» À§ÇÑ Å×¼¿·¹ÀÌÅ͸¦ °íÁ¤ À¯´ÖÀ¸·Î ¹Ýµå½Ã Æ÷ÇÔÇϸç, HuL Shader/ Domain Shader À¯´ÖÀÇ 2°¡Áöµµ Ãß°¡·Î Æ÷ÇԵȴÙ.
2. Compute Shader 5.0 Áö¿ø
Compute Shader´Â ±×·¡ÇÈ Ä«µåÀÇ GPU°¡ ÁÖ·Î 3D ¸ðµ¨¸µ ¹× ·»´õ¸µ µî¿¡ È°¿ëµÈ °Í¿¡ Ãß°¡·Î GPU¸¦ ¹ü¿ë¸ñÀû ÄÄÇ»Æà Áï, GPGPU ±â¼ú¿¡ È°¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â °ÍÀÌ´Ù. DirectX 11¿¡¼´Â Compute Shader 5.0À» Áö¿øÇÑ´Ù. ±âÁ¸ DirectX 10/ 10.1 Áö¿ø GPUµéÀº Compute Shader 4.0/ 4.1À» ÅëÇØ GPGPU ±â¼úÀ» Áö¿øÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
Compute Shader 5.0Àº DirectX 11 Áö¿ø Çϵå¿þ¾î¿¡ ´õ¿í ÃÖÀûÈµÇ¾î ´õ ³ªÀº ¼º´ÉÀ» Á¦°øÇÏ°Ô µÇ¸ç, °¢ ½º·¹µå ±×·ì¿¡ °øÀ¯µÇ´Â ¸Þ¸ð¸®µµ 16K¿¡¼ 32K·Î 2¹è °¡·® ´Ã°í ´õ ³ªÀº ¾×¼¼½º ȯ°æ, ±×·¡ÇÈ ÆÄÀÌÇÁ¶óÀÎÀÇ ÅؽºÃ³ Ãâ·Â, ´õºí ¿¬»ê, ´õ ³ªÀº µ¿±âȸ¦ À§ÇÑ Atomic ±¸Á¶ Áö¿ø µîÀÌ Ãß°¡µÈ´Ù.
3. ¸ÖƼ½º·¹µù Çâ»ó
GPU´Â CPUó·³ CPUÀÇ Äھ ÇØ´çµÇ´Â ¸¹Àº ¼öÀÇ ½ºÆ®¸² ÇÁ·Î¼¼¼¸¦ Á¦°øÇϴµ¥ DirectX 11¿¡¼´Â À̵éÀ» ºñ·ÔÇÑ Ã³¸® °úÁ¤¿¡¼ÀÇ È¿À²¼ºÀ» Å©°Ô ³ôÀ̴µ¥ ÁÖ¾ÈÁ¡À» µÎ°í ÀÖ´Ù.
ÀÌÀü DirectX ¹öÀüµé¿¡¼´Â ¿©·¯ °¡Áö ½º·¹µåµéÀÌ µ¿½Ã¿¡ ¿äûµÉ °æ¿ì À̵éÀÇ Ã³¸® °úÁ¤¿¡¼ Á¦ÇÑÀ» °¡Á®¿ÔÁö¸¸, DirectX 11¿¡¼´Â ÀÌÀÇ Ã³¸® °úÁ¤°ú È¿À²À» ³ô¿© ¸ÖƼ½º·¹µùÀÇ Ã³¸® È¿À²À» ³ô¿´´Ù.
DirectX 11 Çϵå¿þ¾î´Â DirectX 10/ 10.1 Çϵå¿þ¾îº¸´Ù ´õ Çâ»óµÈ ¸ÖƼ½º·¹µù ´É·ÂÀ» Á¦°øÇϰԵȴÙ.
DirectX 11Àº ÀÌó·³ ±âÁ¸ DirectX 10/ 10.1°ú ´Þ¶óÁø ¿©·¯ °¡Áö ±â¼úµéÀ» µµÀÔÇÏ°í Àִµ¥ À̵é Áß GPGPU ±â¼ú¿¡ È°¿ëµÇ´Â DirectX Compute¸¦ Á¶±Ý ´õ ÀÚ¼¼È÷ »ìÆ캸µµ·Ï ÇÏÀÚ.
GPGPU¸¦ Áö¿øÇÏ´Â NVIDIA¿Í AMD
GPGPU ±â¼úÀº ÀÌ¹Ì ¿À·¡ÀüºÎÅÍ ¼Ò°³µÇ¾î ¿Ô´Âµ¥ µ¥½ºÅ©Å¾¿¡ º»°ÝÀûÀ¸·Î ¼Ò°³ÇÑ °÷Àº NVIDIA·Î NVIDIA´Â C¾ð¾î ±â¹Ý CUDA¸¦ °æÀï»çº¸´Ù ¸ÕÀú ¼Ò°³ÇßÀ¸¸ç, AMD ATIµµ ATI StreamÀ» ¼Ò°³ÇÏ°í ÀÖ´Ù. ÀÎÅÚÀÇ °æ¿ì x86 ±â¹Ý ÄÚ¾î ´Ù¼ö·Î ÀÌ·ç¾îÁø ¶ó¶óºñ (Larrabee)¸¦ ÁغñÁßÀ̸ç, CPU¿¡ º¸´Ù °¡±î¿î ¸¸Å GPGPU ±â¼ú¿¡¼ ÁÁÀº ¸ð½ÀÀ» º¸¿©ÁÙ °ÍÀ¸·Î ¿¹»óµÇ°í ÀÕ´Ù.
¶ÇÇÑ, ¾ÖÇà (Apple)À» ÁÖÃàÀ¸·Î ÇÏ´Â ¿©·¯ ¾÷üµéÀÌ ¿¬ÇÕÇÏ¿© ¸¸µç °ø°³ Ç¥ÁØ OpenCLµµ ¼Ò°³µÈ °¡¿îµ¥ À©µµ¿ì 7¿¡¼µµ DirectX 11 API¸¦ ±â¹ÝÀ¸·Î ÇÑ GPGPU ±â¼úÀÎ DirectX Compute¸¦ ¼Ò°³Çß´Ù.
[NVIDIA C±â¹Ý CUDA, °ø°³ Ç¥ÁØ OpenCL°ú DX Compute Áö¿ø]
[AMD ATI Stream, °ø°³ Ç¥ÁØ OpenCL°ú DX Compute Áö¿ø]
NVIDIA¿Í AMD ATIÀÇ GPGPU ±â¼úÀº °¢°¢ CUDA¿Í ATI StreamÀ¸·Î ¼Ò°³ÇßÁö¸¸, ÇöÀç GPGPU ±â¼úÀÌ Ç¥ÁØÀ¸·Î Á¤ÇØÁöÁö ¾ÊÀº »óȲÀÌ´Ù. ±×·¸±â ¶§¹®¿¡ ¾ç»ç´Â ÀÚ»çÀÇ GPGPU ±â¼ú »Ó¸¸ ¾Æ´Ï¶ó °ø°³ Ç¥ÁØÀÎ OpenCL°ú À©µµ¿ì 7¿¡ Æ÷ÇÔµÈ DirectX 11ÀÌ Áö¿øÇÏ´Â GPGPU ±â¼úÀÎ DirectX Compute¸¦ Áö¿øÇÑ´Ù.
GPGPU¸¦ À§ÇÑ DirectX Compute
[DirectX 11, Compute Shader¸¦ ÅëÇÑ ÃÖÁ¾ ó¸®]
DirectX Compute Shader´Â Direct 3D 11 ±×·¡ÇÈ Çϵå¿þ¾î Áï, GPU¸¦ ¹ü¿ë¸ñÀû¿¡ »ç¿ëÇϱâ À§ÇØ »õ·Ó°Ô ¸¸µé¾îÁø ½¦ÀÌ´õ ŸÀÔÀÌ´Ù.
DirectX Compute Shader´Â Direct 3D¿¡ ³»ÀåµÈ ±â¼úÀ̱⠶§¹®¿¡ DirectX API¿ÍÀÇ ºÐ¸®°¡ ºÒÇÊ¿äÇÏ¿© ¿¬°è¼ºÀÌ ³ô´Ù. ±×¸®°í ±×·¡ÇÈ ½¦ÀÌ´õ¿Í ¸Þ¸ð¸®¸¦ °øÀ¯Çϱ⠶§¹®¿¡ ¸Þ¸ð¸® ³¶ºñ¸¦ ÁÙÀÏ ¼ö ÀÖ´Ù.
¶ÇÇÑ, GPUÀÇ º´·Ä ó¸® ´É·ÂÀ» ÅëÇØ CPU·Î ºÎÁ·Çß´ø ¼º´ÉÀ» º¸¿ÏÇÒ ¼ö ÀÖÀ¸¸ç, °ÔÀÓ¿¡ µ¶Æ¯ÇÏ°í »õ·Î¿î È¿°ú ±¸Çö, ±×¸®°í ±âÁ¸ Vertex¿Í Pixel Shader ±â¹ÝÀÇ ¼Ö·ç¼Çº¸´Ù ³ôÀº ¼º´ÉÀ» Á¦°øÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
¹°·Ð, NVIDIA¿Í AMD ATI ¸ðµÎ ±âÁ¸ DirectX 10/ 10.1 Çϵå¿þ¾îµé¿¡¼µµ »ç¿ëÇÒ ¼ö Àִ ȣȯ¼ºÀ» Á¦°øÇÑ´Ù. ±×·¸±â ¶§¹®¿¡ ±âÁ¸ GPUµéµµ DirectX 11 Áö¿ø GPUµéº¸´Ù ¼º´ÉÀº ¶³¾îÁö°ÚÁö¸¸, È°¿ë °¡´ÉÇÏ´Ù.
DirectX ComputeÀÇ È°¿ë ºÐ¾ß
[DirectX Compute È°¿ë ºÐ¾ß]
GPU´Â CPU¿Í ´Þ¸® ºÎµ¿¼Ò¼öÁ¡ ¿¬»êÀ» ÀÌ¿ëÇÑ º´·Ä ó¸® ´É·Â¿¡ °Á¡À» º¸À̸ç, CPUÀÇ ºÐ±â ¿¹Ãø°ú ·£´ý ¸Þ¸ð¸® ¾×¼¼½º µîÀÇ ¹ü¿ë ÄÄÇ»Æà Áï, ½Ã¸®¾ó ¸í·É ó¸®ÀÇ °Á¡À» ¿ÏÀüÈ÷ ´ëüÇÒ ¼ö ¾ø´Ù. ±×·¸±â ¶§¹®¿¡ GPU´Â CPUÀÇ Ã³¸®°¡ °¡Áö´Â ¾àÁ¡À» º¸¿ÏÇÒ ¼ö ÀÖ´Â ¿ªÇÒÀ» ¼öÇàÇÒ ¼ö ÀÖ°í ÀÌ·¸°Ô ¸¸µé¾îÁø ±â¼úÀÌ ¹Ù·Î GPGPU ±â¼úÀ̶ó°í º¼ ¼ö ÀÖ´Ù.
GPUÀÇ °Á¡À» È°¿ëÇÒ ¼ö ÀÖ´Â ºÐ¾ß´Â º´·Ä ó¸® ´É·ÂÀÌ ¹ßÈֵǴ ºÎºÐÀ¸·Î º´·Ä ¹æ½Ä ÇÁ·Î±×·¥À¸·Î´Â ºñµð¿À Æ®·£½ºÄÚµùÀ̳ª °ÔÀÓÀÇ ¹°¸®¿£Áø, À̹ÌÁö ÇÁ·Î¼¼½Ì, °úÇÐ ÄÄÇ»ÆÃ, 3D ±×·¡ÇÈ (·¹ÀÌÆ®·¹ÀÌ½Ì µî) µîÀ» µé ¼ö ÀÖ´Ù.
NVIDIAÀÇ °æ¿ì ÀÚ»çÀÇ CUDA¸¦ ÅëÇØ GPU·Î °¡¼ÓµÇ´Â PhysX ¹°¸®¿£Áø µµÀÔ ¹× ¿µ»ó ÆíÁý ¹× Æ®·£½ºÄÚµù¿¡ È°¿ëÇÏ°í ÀÖ°í AMD ATI ¿ª½Ã ¿µ»ó ÆíÁý ¹× Æ®·£½ºÄÚµù, ÇϺ¹ ¹°¸®¿£ÁøÀ» GPU·Î °¡¼ÓÇÏ´Â µ¥¸ð¸¦ ½Ã¿¬Çß´Ù.
À©µµ¿ì 7ÀÇ µðÄÚµå/ ÀÎÄÚµå Áö¿ø
À©µµ¿ì 7Àº À©µµ¿ì ºñ½ºÅ¸¿¡¼ ¸ÖƼ¹Ìµð¾î Áö¿øÀÌ ´õ¿í °ÈµÇ¸ç, ÀÌÀÇ ÀÏȯÀ¸·Î ´Ù¾çÇÑ ÄÚµ¦ Ãß°¡ ¹× µðÄÚµå/ ÀÎÄÚµå ±â´ÉÀ» Á¦°øÇÑ´Ù. ¶Ç, DXVA - HD (DirectX Video Acceleration - High Definition) Áö¿øÀ» ÅëÇØ H.264 ÄÚµ¦ µîÀÇ ±×·¡ÇÈ Ä«µå¸¦ ÀÌ¿ëÇÑ Çϵå¿þ¾î °¡¼ÓÀ» Áö¿øÇÑ´Ù.
À©µµ¿ì 7ÀÌ Áö¿øÇÏ°í ÀÖ´Â ÆÄÀÏ Æ÷¸ËÀº MP4, AVI, Mov, 3GP, AVCHD, ADTS, M4A, DVR-MS, WTV°¡ ÀÖÀ¸¸ç, ³»ÀåµÈ ÄÚµ¦Àº H.264, MPEG4-SP, ASP/ DIVX/ Xvid, MJPEG, DV, AAC-LC, AAC-HE°¡ ÀÖ´Ù.
DirectX Compute¸¦ ÀÌ¿ëÇÑ À©µµ¿ì 7ÀÇ Æ®·£½ºÄÚµù
ÃÖ±Ù ÈÞ´ë¿ë µðÁöÅбâ±âÀÇ È°¿ëµµ°¡ ³ô¾ÆÁö¸é¼ °í¿ë·®ÀÇ ÆÄÀÏÀ» ÈÞ´ë¿ë ±â±â µî¿¡ ¸ÂÃß¾î Æ®·£½ºÄÚµù ÀÛ¾÷À» ÀÚÁÖÇÏ°Ô µÇ´Âµ¥ À©µµ¿ì 7Àº À̸¦ ´õ¿í Æí¸®ÇÏ°Ô Çϱâ À§ÇØ ÀÚü Æ®·£½ºÄÚµù ±â´ÉÀ» Áö¿øÇÏ°í ÀÖ´Ù.
[À©µµ¿ì 7, MFT (Medai Foundation Transcode) Interface]
À©µµ¿ì 7Àº »õ·Ó°Ô Ãß°¡µÈ MFT (Media Foundation Transcode) Interface¸¦ ÅëÇØ Æ®·£½ºÄÚµù°ú ÀÎÄÚµå/ µðÄڵ带 À§ÇØ GPU¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. »õ·Ó°Ô Ãß°¡µÈ MFT ÀÎÅÍÆäÀ̽º´Â GPGPU Áö¿øÀ» À§ÇÑ DirectX Compute¸¦ ÀÌ¿ëÇÏ¿© Æ®·£½ºÄÚµù µîÀ» µµ¿ï ¼ö ÀÖµµ·Ï ¸¸µé¾îÁ³´Ù.
¿µ»ó Æ®·£½ºÄÚµù µîÀÇ ÀÛ¾÷Àº ¾Õ¼ ¾ð±ÞÇßµíÀÌ GPUÀÇ SIMD ÄÚ¾î Áï, ½ºÆ®¸² ÇÁ·Î¼¼¼°¡ CPUÀÇ Ã³¸®Ã³·³ ¸ÖƼ ½º·¹µùÀ¸·Î ó¸®ÇϵǸç, GPUÀÇ º´·Ä ó¸® ´É·ÂÀ» È°¿ëÇÏ¿© CPU·Î¸¸ ó¸®ÇÏ´ø ¹æ½Äº¸´Ù ³ôÀº ó¸® ¼º´ÉÀ» ¾òÀ» ¼ö ÀÖ´Ù. ƯÈ÷, GPGPU¸¦ ÀÌ¿ëÇÑ ±â¼úµéÀº ÈÞ´ë¿ë µðÁöÅÐ ±â±â¿¡ ÀûÇÕÇÑ ÆÄÀÏ Æ÷¸ËÀ» ¸¸µå´Â Æ®·£½ºÄÚµù ÀÛ¾÷ó·³ ÈÁúº¸´Ù ¼Óµµ À§ÁÖÀÇ ÀÛ¾÷¿¡¼ ´õ¿í À¯¸®ÇÏ´Ù.
À©µµ¿ì 7, µå·¡±× ¾Ø µå·Ó Æ®·£½ºÄÚµù : MFT ÀÎÅÍÆäÀ̽º·Î GPU °¡¼Ó
[À©µµ¿ì 7, GPGPU ÀÌ¿ëÇÑ µå·¡±× ¾Ø µå·Ó Æ®·£½ºÄÚµù]
À©µµ¿ì 7ÀÌ Áö¿øÇÏ°í ÀÖ´Â GPGPU (GPU¸¦ ÀÌ¿ëÇÑ ¹ü¿ë ÄÄÇ»ÆÃ, CPU°¡ ÇÏ´ø ÀÏ ÀϺθ¦ GPU°¡ ºÐ´ã)¸¦ À§ÇÑ ±â¼úÀº DirectX Compute·Î ¼Ò°³µÇ¾ú´Ù. À©µµ¿ì 7¿¡¼ Áö¿øÇÏ´Â GPGPU ±â¼úÀº HDD¿¡ À§Ä¡ÇÑ ¿øº» ÆÄÀÏÀ» ÈÞ´ë¿ë ¹Ìµð¾î Ç÷¹À̾ µå·¡±× ¾Ø µå·Ó ÇÏ´Â °ÍÀ¸·Î ¼Õ½±°Ô ¿µ»ó ÆÄÀϺ¯È¯ Áï, ÀçÀÎÄÚµù (Æ®·£½ºÄÚµù)À» Áö¿øÇÑ´Ù. Áï, À©µµ¿ì 7¿¡¼ Áö¿øµÇ´Â MFT (Media Foundation Transcode) ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ GPU °¡¼Ó Æ®·£½ºÄÚµùÀ» Áö¿øÇÑ´Ù.
µå·¡±× ¾Ø µå·Ó Æ®·£½ºÄÚµùÀº ¼Ò´Ï ¿öÅ©¸ÇÀ̳ª Å©¸®¿¡ÀÌƼºê Zen W µî°ú °°ÀÌ µ¿¿µ»óÀ» Áö¿øÇÏ°í ÀÖ´Â ÈÞ´ë¿ë ¹Ìµð¾îÇ÷¹À̾îµé¿¡¼ »ç¿ë °¡´ÉÇÏ´Ù.
|