ÂsÄý³æ­Ó¤å³¹
chanp
*°±Åv¤¤*
 
chanpªº¤jÀY·Ó
 

¥[¤J¤é´Á: Jun 2002
±zªº¦í§}: ¥_¥«&ªO¾ô
¤å³¹: 1,761
Âà¶K
====================
¤Ñ¤~の®v
µû»ù¤UG80 VS R600

·íµM¬O°ò¤_²{¦b¤w¸g¤½¶}ªº¸ê®Æ¤§¤Wªºµû»ù

¥»¨Ó§Ú¬O·Q¥u¼g¦Û¤v¬Ýªkªº¡A¦ý爲¤F·ÓÅU¤@¨Çªì¯ÅGZer¡A±a¤W¤F¤ñ¸ûªøªº¸ÑÄÀ¡A½Ð¦U¦ì¦Ñ¤j¦Û¦æ¸õ¹L´N¬O

G80¬[ºc¦b§Ú­Ó¤H¬Ý¨Ó¡A®Ú¥»´N¤£¾A¦X¹CÀ¸

­Ó¤H»{爲¡A¹ï¤_¹Ï§Î´è¬V¡A¦pªG¥u¦Ò¼{®Ä²v¡AG80·íµM¬O³Ì¦nªºÅé¨t¡C¦ý®Ä²v¤£µ¥¤_®Ä¯à¡A®Ä¯à¬Oºî¦X­Ó¤è­±¦]¯À¡A¤×¨ä¬O·í«e¥b¾ÉÅé¤u¨î³yÃÀ¤ô¥­¤§«áªº¤@­Óºî¦X©Êªºµ²ªG¡Aºî¦X±q®Ä¯à¤W¨Ó¬Ý¡AG80¨Ã¤£¬O³ÌÀuªºÅé¨t¡C¤]´N¬O»¡¡A¦pªGNV»Ý­n¤@´Ú¾Ö¦³¸òG80Ãþ¦üªº¹Ï§Î´è¬V®Ä¯àªºGPU¡A§¹¥þ¥i¥H¥Î§ó¤Öªº¥N»ù(´¹ÅéºÞ)¿ì¨ì¡C§Ú¥u¯à²q´ú¡ANV³o¦¸ªº³¥¤ß¤£¥u¦b¹Ï§Î»â°ì¡C
R600¬Û¤ñ¤§¤U´N°È¹ê±o¦h¡A¥¦¬O¤@´Ú¹ê¹ê¦b¦b爲¹CÀ¸¦Ó¥ÍªºGPU¡AÁöµMAMDªÖ©w¤£·|¤î¨B¤_¦¹¡A½Ñ¦pCTM¤§Ãþªº¤@¨ÇªF¦è«Ü§Ö´N·|³Q±À¨ìÀ³¥Î¼h­±¡A¦ý±q¥Ø«e¤w¸g³zÅSªºR600¬[ºc¨Ó¬Ý¡AR600ªº­º­n³]­p¥Ø¼Ð´N¬O爲¤F3D´è¬V¡CÅý¹CÀ¸¶]±o§óµº§ó§Ö¬O³o­Ó¬[ºc³Ì¥D­nªº¥ô°È¡C

¨º麽¡AÅý§Ú­Ì¨Óµy·L¸Ô²Óªº¬Ý¤@¤UG80»PR600³]­p°¼­«ÂI¤§¶¡ªº°Ï§O


G80»P¥H«eªºGPU¡A³Ì¤jªº°Ï§O´N¬O¼Ð¶q¤Æ´è¹Bºâ³æ¤¸©M¦h°õ¦æ½Ñ¬[ºc¡A³o¨âÂI¬OG80³Ì¤Þ¥H爲¶Æªº­²·s¡A¦ý¤]¬Oª§½×³Ì¤jªº§ï¶i¡C

©Ò¿×¼Ð¶q¤Æ(scalar)¹Bºâ³æ¤¸¡A¬O¬Û¹ï¤_¤§«eGPUªº¥Ú¶q?vector)¹Bºâ³æ¤¸¦Ó¨¥ªº¡C
§Ú­Ìª¾¹D¡A¦b¹Ï§Î³B²z¤¤¡A³Ì±`¨£ªº¹³¯À³£¬O¥ÑRGB¤TºØ顔¦âºc¦¨ªº¡A¥[¤W¥¦­Ì¦@¦³ªº«H®§»¡©ú(Alpha)¡A´N¤@¦@¬O4­Ó³q¹D¡CVertex¼Æ¾Ú¤]¤@¯ë¬O¥Ñx,y,z,w¥|­Ó§¤¼Ðºc¦¨¡A³o¼Ë¤@¦@¤]¬O4­Ó³q¹D¡C¹ï3D¹Ï§Î¶i¦æ´è¬V¡A¨ä¹ê´N¬O§ïÅÜRGBA¥|­Ó³q¹D©ÎªÌx,y,z,w¥|­Ó§¤¼Ðªº¼Æ­È¡C©Ò¥H¡A爲¤F¤è«K¡AGPUªº°ò¥»´è¬V³æ¤¸±q¤@¶}©l´N³Q³]­p爲¯à¦P®É§¹¦¨¤@­Ó¶H¯À´è¬V©ÎªÌ´X¦óÂà´«¡C¼Æ¾Úªº°ò¥»³æ¤¸¬Oscalar(¼Ð¶q)¡A´N¬O«ü¤@­Ó³æ¿Wªº­È¡AGPUªºALUùضi¦æªº¤@¦¸³oºØÅܶq¾Þ§@¡A³QºÙ°µ1D scalar¾Þ§@¡C¥Ñ¤_GPUªº¤@­ÓALU¦b¤@­Ó®ÉÁé©P´Á°õ¦æ¤F4¦¸³o¼Ëªº¨Ã¦æªº¹Bºâ¡A©Ò¥HALUªº¾Þ§@³QºÙ°µ4D vector¾Þ§@¡A¤]´N¬O¥Ú¶q¾Þ§@¡C¤@­Óvector(¥Ú¶q)´N¬On­Óscalar(¼Ð¶q)¡A¤@¯ë¨Ó»¡n=4¡C©Ò¥H¡AGPUªºALU«ü¥Oµo®gºÝ¥u¦³¤@­Ó¡A¦ý«o¥i¥H¦P®É­pºâ4­Ó³q¹Dªº¼Æ¾Ú(¦bGPU¤W¤@¯ë¬O3D+1D)¡A³o´N¬OSIMD(³æ«ü¥O¦h¼Æ¾Ú¬y)ªº·N«ä¤F¡C

¹ï¤_¹Ï§Î´è¬V¨Ó»¡¡A³oºØSIMDªº³]­p¯u¬O¦A¦n¤£¹L¤F¡A¦]爲VS©MPS³¡¤À¶i¦æªº¤j³¡¤À¹Bºâ³£¬O4D vector(3D+1D)¡A¥¦¥u­n¥Î¤@­Ó«ü¥OºÝ¤f¡A´N¯à³æ©P´Á§¹¦¨4­¿ªº¹Bºâ¶q¡A©Ò¥H¦Û¥´GPU½Ï¥Í¶}©l¡A°ò¥»ªº¹Bºâ³æ¤¸´N¤@ª½¬O³oºØvector SIMD³]­p¡C
¦ýG80«o¥´¯}¤F³oºØ¶Ç²Î¡A±N³Ì°ò¥»¹Bºâ³æ¤¸²Î²Î§ï¦¨¤Fscalar¡A¤]´N¬O¼Ð¶qALU¡C³o¼Ë¹ï¤_°ò¥»ªºvector¾Þ§@¡A´N»Ý­n¦h­Ó©P´Á¡A©ÎªÌ±N¥¦­Ì©î¤À«á¥Î§ó¦hªº¹Bºâ³æ¤¸¤~¯à§¹¦¨¡C¦³¤°麽¼ËªºªF¦è­È±oNV³o¼Ë«_ÀI©O¡H

­ì¨Ó¡ANV»{爲¡A²{¦bªºGPU«ü¥O¡Aªø«×¨Ã¤£¤@­P¡A¹ï¤_add,mul³o¼Ëªº«ü¥O¡AGPU¯à³æ©P´Á§¹¦¨¡A¦ý¹ï¤_½Ñ¦psqr³o¼Ëªº½ÆÂø«ü¥O¤]»Ý­n¦h­Ó©P´Á¤~¯à§¹¦¨¡A¹ï¤_³o¨Ç»Ý­n¦h­Ó°õ¦æ©P´Áªº«ü¥O¡A¹L¡§¤j¡¨ªº4D ALUÅãµM¡§¤£¦Xºâ¡¨¡C¦ÓGPUªº½s;¹§Y¨Ï¸g¹L¤j¶qÀu¤Æ¡A½sĶ¥X¨Óªºshader¤]«ü¥O¤]·|ªøµu¤£¤@¡A¤­ªá¤Kªù¡A¾Þ§@¼Æ¬J¦³4D¡A¤]¦³1D¡B2D¡B3D¡C¹ï¤_³q±`°õ¦æ¯à¤O爲4DªºALU¨Ó»¡¡AÅý¥¦¶]1D©ÎªÌ2D«ü¥O¡A¦Ó¥Ñ¤_SIMD¤Ñ¥Íªº³æµo®gºÝ¤f­­¨î¡A¤£¥i¯à¦P®É¶]¨â­Ó©Î¦h­Ó¡A¦Ó¶]¤@­Ó³æ©P´Á¤º¥¦ªº¹Bºâ¯à¤O´N¶ñ¤£¹¡¡C³o¼Ë´N«Ü¡§¹º¤£¨Ó¡¨¤F¡C³o´N¬OSIMDªº«ü¥O¨Ã¦æ©Ê°ÝÃD¡C¦bGPU¤¤¡A¦pªG¼Ð¶q©M¥Ú¶q«ü¥O¯à°÷¨Ã¦æ¡A¤ñ¦p3D+1D¡A¨º麽³o³QºÙ°µco-issue¡C¦ý¥¿¦p¤W­±©Ò»¡¡A­±¹ï½ÆÂøªºshaderÀô¹Ò¡Aco-issue¤£¥i¯à¬O¨C®É¨C¨è³£¦³®Äªº¡A¦]¦¹³q±`ªº4D ALU¦b³oùØ´N¦s¦b¤@­Ó®ö¶O°ÝÃD¡C¦Ó¹ï¤_1D ALU¡A´N¤£¦s¦b¤W­z°ÝÃD¤F¡C¦pªG§â1­Ó4D ALU¤À¦¨4­Ó¤pªº1D ALU©ñ¦b¤@°_¶i¦æ¹Ï§Î´è¬V¡A¦]爲¦U¦Û³£¦³¦Û¤vªº«ü¥Oµo®gºÝ¤f©M±±¨î¸ê·½¡A©Ò¥H¯à«OÃÒ²z½×¤W100%ªº¹B¦æ®Ä²v¡C ¦bG80¤W¡ANV²v¥ý¤Þ¤J¤F³oºØ¯Â¼Ð¶qªº´è¬V³æ¤¸¡A©Ò¥HG80ªº©³¼h°õ¦æ³æ¤¸³QºÙ°µMIMD(¦h«ü¥O¦h¼Æ¾Ú¬y)¬[ºc¡C
G80ªº¨C­ÓALUªº­pºâ¯à¤O³£¤£±j¡A¦ý¥¦­Ì¤£¦s¦b¡§®ö¶O¡¨°ÝÃD¡A®Ä²v«Ü°ª¡CµM«á³q¹L¼W¥[¹Bºâ³æ¤¸ªº¼Æ¶q(128SP)¡A´£°ªÀW²v(shader 1.35GHz)¨Ó¼W¥[¹Bºâ¯à¤O¡C

³o¼Ëªº°µªk¡A¬Ý¤W¥h¤@¤Á³£§¹¬ü¡A¬J¦³°ª®Ä²v¡A¤S¦³±j¹Bºâ¯à¤O¡A¦ý¯uªº¬O³o¼Ë¶Ü¡H
¦b¯à°÷co-issueªºµ{§Ç¤¤¡A4­Ó1D Scalar ALU»P4D Vector ALUªº¹Bºâ¯à¤O¬O¤@¼Ëªº¡A¦ý1D Scalar ALU¦]爲¦³4­Óµo®gºÝ¤f¡A4¥÷±±¨î³æ¤¸¡A¨ä¥e¥Îªº´¹ÅéºÞ¼Æ¶q±N»·»·¶W¹L4D Vector ALU¡C«ö·ÓEJIªº»¡ªk¡Aºâ¤WALUªº¨ä¥L»²§U¸ê·½¡A4­Ó1D ALUªºÅé¿n±N¬O1­Ó4D ALUªº2-3­¿¡A¹ï¤_GPU¦Ó¨¥¡A³o¬O¤@­Ó¨aÃø©Êªº¼Æ¦r¡C©ÎªÌ¦³¤H·|»¡¡A¨ºµL©Ò¿×¡A¦b¹Bºâ¯à¤O¬Û¦Pªº±¡ªp¤U¡A1D ALU®Ä²v°ª°Ú¡C¦ý§A¬O§_¦³·Q¹L¡A»P¨ä°µ¤@°ïÃe¤jÁs¸~ªº1D¼Ð¶qALU¡A¤£¦p·F¯Ü¥Î¦P¼Ëªº´¹ÅéºÞ¡A°µ¥¦¤@¥b¼Æ¶q¹Bºâ¯à¤O¶W¹L¥¦¤@­¿ªº4D ALU¤£¬O§ó¦Xºâ¡I ¦Ó¹ê»Ú¤W¡AR600´N¬O³o麽°µªº...


¦A¨Ó¬ÝG80ªº¦h°õ¦æ½ÑÅé¨t(Multi-Threading)

¹ê»Ú¤W³o­Ó¨Ã¤£¯àºâG80ªº­º³Ð(§Úı±o¡A²Ä¤@¶ô¯à°÷¯u¥¿ºÙ±o¤WMulti-ThreadingªºGPU¡AÀ³¸Ó¬ONvidia NV40¡AÁöµMÁ٫ܲ­®¡A¦ý¥¦¦³§¹µ½ªº±±¨îÅé¨t©Mthreading¸ê·½¡A¾ã­Ó¬y¤ô½uªº¤u§@¤]³q¹L½uµ{¤Àµo¾¹¨ÓºÞ²z¡CR4XX¥u¤ä«ùSM2.0¡A¤]¥u°w¹ï½u©Êshader¦Ó³]­p¡AÁaµM¥¦¤]³q¹Lthreading¨Ó±»»\©µ¿ð¡A¦ý¨Ã¤£¯àºâ)¡A¦ýG80«o¬O³Ì§¹µ½ªºMulti-Threading GPU¡A¥¦¦³·¥爲Ãe¤jªºregister¸ê·½¡A¯àºû«ù4096­Ó¥­¦æ½uµ{(¬Ý¬Ý§AªºCPU¡A4®Ö¤ßQX6700¤]¤£¹L¬O4½uµ{¦Ó¤w)¡A¬Æ¦Ü¤Þ¤J¤F¾ã¼Æ«ü¥O¶°¨Ó¤è«KºÞ²z¡C·í¼Æ¾Ú°e¦ÜG80¹Ï§Î®Ö¤ßªº¬y¤ô½u¤§«á¡A·|­º¥ý³Q°e¤J¤@­Ó¥s°µThread Control Unitªº¦a¤è¡A¬Û·í¤_G80¹Ï§Î®Ö¤ß¾ã­Ó¬y¤ô½uªº¥òµô©M±±¨î¾÷ºc¡C³o­ÓÃþ¦ü¤_³B²z¾¹ªº½uµ{ºÞ²z³æ¤¸·|±N©Ò¦³ªºµÛ¦â³æ¤¸ªº¼Æ¾Ú¥­¦æªº©î¦¨¶W¹L4000­Ó¥­¦æªºThreading(½uµ{)¡A¨Ã°ÊºAºÊ´ú¾ã­Óshader array¬y¤ô½uªº¤u§@ª¬ªp¡C¤@¥¹¥¦µo²{¨ä¤U¬Y­ÓµÛ¦â³æ¤¸¥Ñ¤_µ¥«Ý¼Æ¾Ú©Î¤u§@§¹¦¨¦Ó³B¤_¶~¸mª¬ºA¡A´N·|°¨¤W»¼¥æ¤@­Ó·sªº½uµ{¨Ñ¨ä°õ¦æ¡C³o¼ËÅý¾ã­Ó¬y¤ô½u«O«ù·¥°ªªº¹B¦æ®Ä²v¡C

¦Ó¥B¡A´I¸ÎªºThreading¹ï¤_±»»\¬y¤ô½u©µ¿ð©M°ÊºA¤À¤ä³£¦³·¥爲­«­nªº·N¸q¡A¸Ô²Ó¤¶²Ð½Ð¬ÝEji¥Sªº³o½g¤å³¹¡A¦r¤Ó¦h¤£¥´¤F¡C http://we.pcinlife.com/thread-506629-1-1.html

¬Û¤ñ¤§¤U¡AR600¨ÌµMºû«ù512-1024¤§¶¡ªº¤@­ÓThread¼Æ¥Ø¡C

¤@ª½¨ì³oùØ¡A§Ú­Ìµo²{Multi-Threading¤S¬O¤@­Ó´X¥G§¹¬üªºªF¦è¡A¥¦¹ïGPUªº¥ô¦ó¤@­Ó³¡¥óªº®Ä²v´£¤É³£¦³À°§U¡A¦Ó¥Bµ¹¤©¤FGPU§JªA¦sÀx¾¹©µ¿ðªº¤O¶q¡A¨º麽¡A§Ú¨ì©³­n»¡¤°麽©O¡H

¹ê»Ú¤W¡A¸ò¼Ð¶q¤Æ´è¬V³æ¤¸¤@¼Ë¡AMulti-Threading½T¹ê¬O´£°ªGPU¹B¦æ®Ä²vªº¦nªF¦è¡A¦Ó§Ú»{爲¥¦ªº¤£¨¬¤§³B¤]¸ò¼Ð¶q´è¬V³æ¤¸¤@¼Ë¡G¹ê²{°_¨Ó¥N»ù¤Ó±a¡A±N¥Î¨Ó¹ê²{¥¦ªº¸ê·½ªá¨ì§Oªº¦a¤è¡A¹ï¤_¹CÀ¸¨Ó»¡®ÄªG¥i¯à§ó©úÅã¡C

·Q·Q¬Ý§a¡A§Ú­Ì¯à±qG80¦p¦¹¦hªºThread¤¤±o¨ì¤°麽¡H¬y¤ô½u®Ä²v¡H§O§è½Í¤F¡A®Ä²v°ª«ç麽¤F¡AR520¨ã³Æ512threading¡A§C©µ¿ðªºµw¥ó¤Æ½uµ{¤À°t¾¹¡A¤ä«ùbatch¬°³æ¦ìªºthreading¥æ´«¡A®Ä²vÁÙ¤£°ª¡H¦PÀW¤UÁÙ¤£·Ó¼Ë³Q200¦hthreading¡A¤À°tºÞ²zÅé¨t¤]¤£§¹µ½¡A©µ¿ð¤j±o¦h¡A¨Cthreading¯à§ì¨ìªº¸ê·½¤]¤ÖªºG70¥´±oº¡¦a§ä¤ú¡CG70¤£¹L¬O¦h¸Ë¤F8­ÓPixel Shader¦Ó¤w¡C¤£¹L«á¨ÓR580 ATI¤]²M¿ô¤F¡AThreading¸ê·½¨S¦³¥ô¦óÅܤơA¨ÌµM¬O512­Ó¡A¦ýPS¼W¥[3­¿¡A±q16¨ì48¡A²{¦b¦PÀW¤U½ü¨ìG71º¡¦a§ä¤ú¤F¡A¨þ¨þ¡C
OK¡A§Úª¾¹D¨ì³oùبº¨Ç¤ÑźÄҭ̦^¸é¤ß¤£¦º¡A®³R520ªº¤À¤ä©Ê¯à¨Ó»¡¨Æ¡A¨º麽´N¹ý©³Á¿²M·¡¡C¬y¤ô½u¥­¦æ«×ªº°ÝÃD¤w¸g¬O¦Ñ¥Íªø½Í¡A°ÊºA¤À¤ä(Dynamic Branch)¥i¥H¥Î¨Ó¿Ä¦XShader¡A¦ý¤£¥Nªí¨ä¥L´£°ª¥­¦æ«×ªº³~®|¤w¸g§¹³J¡C¤@­Ó¥Rº¡¤À¤ä©M¸õÂ઺Shader¹ï¹CÀ¸ªºÀ°§U²z½×·N¸q¤j¤_¹ê»Ú·N¸q¡C¦b3DMark06³oºØ¤w¸g¦³¥Î¨ì¬Û·í½ÆÂøªºShaderªºµ{§Ç¤¤¡ADynamic Branch¤]¥u¬O·í§@½Õ¨ý¾¯¦Ó¤£¬O¥Dµæ¨Ó¥Îªº¡C¦Ü¤_Branch¦bshadow filterªºedge soft¤¤ªºÀ³¥Î...®¦¡A§Ú·Q»¡ªº¬O¡Aµ´¤j³¡¤À±¡ªp¤Uedge©Ò¥eªº³¡¤À³£¤£¦h¡A¦Ó¥BÀHµÛ¤À¿ë²vªº´£¤É¡A³o­Ó³¡¤Àªº¤ñ¨Ò·|¶V¨Ó¶V¤p¡C¤Þ¥ÎRacingPHT¥Sªº¸Ü¨Ó»¡¡A¤]³\§Ú­ÌÁÙ±o·PÁÂBranch-----¥¦Åý¤@­Ó¥u¯à¶]15FPSªºDEMO´£³t¨ì¤F30FPS-----ÁöµM¥¦¤§«e¯à¶]300FPS¡C°ÝÃD¬O¡GFilter¤@©w­n³o麽°µ¶Ü¡H§Ú·QFEARªºSoftShadow¤w¸gµ¹¤F¤@­Óªí²v¡C


¸É¤WG80 VS R600(¶Ç¨¥)ªº¼Æ¾Ú¹ï¤ñ¡]²Î²Î®Ú¾Ú©x¤è§÷®Æ¦Ó­q¡^
shader§]¦R¯à¤O: G80 1350MHz*128*3flops(mul+mad¨Ã¦æ)=519GFlops VS R600 1000MHz*64*12Flop=(mad+add¨Ã¦æ)=768GFlops
Åã¦s±a¼e: G80 86.4GB/S(384bit GDDR4) VS R600 over140 GB/s (GDDR4 over 1.1GHz)




ºî¤W©Ò­z¡AG80¤£¥i¿×¤£¥ý¶i¡A®Ä²v¤£¥i¿×¤£°ª¡A¦ý¥L­±¹ï"¼É¤O"ªºR600¡]»¡±o¦nÅ¥ÂI´N¬O¡§±N¨C¤@­Ó´¹ÅéºÞ³£¥Î¤_¹CÀ¸¡¨ªºR600¡^¡A³Óºâ¹ê¦b¤£°ª¡C

¤£¹L¡A¤j®a´N¦¹»{爲NV¬O¥Õè³]­p¤F³o麽¤@­Ó¹L¤_²z·Q¤Æªº¬[ºc¡A´N¿ù¤F¡CNV±q¨Ó³£¬O¹ê¥Î¦Ü¤W¡C³o¨Ç¦b¹CÀ¸ùØ«ÜÃø³Q¥Î¨ìªº¡§°ª¯ÅªF¦è¡¨¡A±N·|¥Î¨ì­þ©O¡A¼K¼K¡A§Ú²{¦b¥´¦r¤]¥´±o¤âµh¤F¡A®e³\§Ú¥´¤@¤U¼s§i¡A¹L´X¤Ñ·|¬Yºô¯¸¦³¤@½g¤å³¹¡AÁöµM¨Ã¤£§¹¥þ¬O§Ú¼gªº¡A¦ý§Ú°Ñ»P¤F¨ä¤¤¡A¨ì®É­Ô§Ú¦A¨Ó³»¶K
ÂÂ 2007-04-17, 06:33 PM #6
¦^À³®É¤Þ¥Î¦¹¤å³¹
chanpÂ÷½u¤¤