²é¿´: 860  |  »Ø¸´: 4
µ±Ç°Ö÷ÌâÒѾ­´æµµ¡£

wl1167

½ð³æ (СÓÐÃûÆø)


[×ÊÔ´] ¡¾Ô­´´¡¿GPUͨÓüÆË㣨GPGPU£©¡ª¡ª½«Í¼Ðδ¦ÀíÆ÷ÓÃÓÚ¸ßÐÔÄܼÆËãÁìÓò¡¾ÒÑËÑÎÞÖØ¸´¡¿

²»ÖªµÀÕâÀïÓÐûÓÐÈËÑо¿GPGPU£¨General-Purpose computation on GPU£©¡£¡£¡£ÎÒÑо¿Éú¿ÎÌâ¾ÍÊÇ×öÕâ·½ÃæµÄ£º£©
ÔÚ·¢×ÊÁÏ֮ǰÏȸø´ó¼ÒÀ´µã½éÉÜ£¬Ò²ËãÊÇ×Ô¼ºµÄÒ»µãÌå»á¡£


1.1 Ñо¿±³¾°ºÍÒâÒå
Ëæ×ŵ±Ç°¼ÆËã»úÐÔÄܵIJ»¶ÏÌá¸ß£¬Ó¦Ó÷¶Î§Ô½À´Ô½¹ã·º£¬²»Í¬µÄ¼ÆËãÈÎÎñºÍ¼ÆËãÐèÇó¶¼ÔÚ¿ìËÙÔö³¤£¬Õâ¾Í¾ö¶¨ÁË´¦ÀíÆ÷³¯×ÅͨÓû¯ºÍרÓû¯Á½¸ö·½Ïò·ÉËÙ·¢Õ¹¡£Ò»·½Ã棬ÒÔCPUΪ´ú±íµÄͨÓô¦ÀíÆ÷ÊÇÏÖ´ú¼ÆËã»úµÄºËÐIJ¿¼þ£¬¾­¹ý¶à´ÎÆ÷¼þ»»´úµÄ±äǨ£¬²»½ö¼¯³É¶È´ó´óÌá¸ß£¬ÐÔÄܺ͹¦ÄÜÒ²´óΪ¸ÄÉÆ£¬³ýÁ˸ºÔð½âÊÍ¡¢Ö´ÐÐÖ¸ÁîºÍÍê³É¸÷ÖÖËãÊõÂß¼­ÔËËãÍ⣬»¹¿ØÖƲ¢Ð­µ÷¼ÆËã»ú¸÷²¿·ÖµÄÖ´ÐС£ÁíÒ»·½Ã棬´¦ÀíÆ÷ÔÚÌØ¶¨ÁìÓòÓ¦ÓõÄרÓû¯³Ì¶ÈÒ²Ô½À´Ô½¸ß£¬ÀýÈçÔÚÊÓÆµ¡¢Í¼ÏñºÍÒôƵ´¦ÀíµÈÁìÓò£¬¶¼³öÏÖÁËÏàÓ¦µÄרÓô¦ÀíÆ÷£¨ÈçVPU¡¢GPU¡¢APUµÈ£©¡£ÔÚÕë¶ÔÌØ¶¨Ó¦Ó÷½ÃæÓëͨÓô¦ÀíÆ÷Ïà±È£¬×¨Óô¦ÀíÆ÷Äܹ»¸ü¼Ó¸ßЧµÄÂú×ãÌØ¶¨µÄ¼ÆËãÈÎÎñºÍÐèÇó¡£
½üÄêÀ´£¬¼ÆËã»úͼÐδ¦ÀíÆ÷£¨GPU£¬Graphics Processing Unit£©ÕýÔÚÒÔ´ó´ó³¬¹ýĦ¶û¶¨ÂɵÄËٶȸßËÙ·¢Õ¹£¬¼«´óµÄÌá¸ßÁ˼ÆËã»úͼÐδ¦ÀíµÄËٶȺÍÖÊÁ¿£¬²»µ«´Ù½øÁËͼÏñ´¦Àí¡¢ÐéÄâÏÖʵ¡¢¼ÆËã»ú·ÂÕæµÈÏà¹ØÓ¦ÓÃÁìÓòµÄ¿ìËÙ·¢Õ¹£¬Í¬Ê±Ò²ÎªÈËÃÇÀûÓÃGPU½øÐÐͼÐδ¦ÀíÒÔÍâµÄͨÓüÆËãÌṩÁËÁ¼ºÃµÄÔËÐÐÆ½Ì¨[1]¡£
GPUÓ¦ÓÃÁìÓòµÄÍØ¿íÓëÆäÓ²¼þ·¢Õ¹ÓÐ׿«´ó¹ØÏµ¡£GPU×Ô1999ÄêÊ×ÏÈÓÉNVIDIA¹«Ë¾Ìá³öºó£¬¾ÍÆä·¢Õ¹µÄËٶȶøÑÔ£¬ÊÇCPU¸üÐÂËٶȵÄÈý±¶¡£´Ó1993Ä꿪ʼ£¬GPUµÄÐÔÄÜÒÔÿÄê2.8±¶µÄËÙ¶ÈÔö³¤¡£Ä¿Ç°£¬Í¼Ðδ¦ÀíÆ÷ÒѾ­¾­ÀúÁËÎå´ú·¢Õ¹£¬Æ½¾ùÿ°ëÄê¾ÍÓÐÐÂÒ»´úµÄGPUÎÊÊÀ¡£
2004Ä꣬NVIDIA GeForce 6800 Ultra´¦ÀíÆ÷·åÖµËٶȿɴï40GFLOPS£¬¶Ô±ÈIntel Pentium 4 3.0GHz£¬²ÉÓÃSSE2Ö¸ÁҲֻÄÜ´ïµ½6 GFLOPS[3]¡£NVIDIA×îз¢²¼µÄGeForce 8800ͼÐδ¦ÀíÆ÷¼¯³ÉÁË6.8ÒÚ¸ö¾§Ìå¹Ü£¬ÓµÓÐ128¸öÁ÷´¦Àíµ¥Ôª£¬Æä·åÖµÔËËãÄÜÁ¦³¬¹ý340GFLOPS£¬¶øIntel×îеÄPentium4 Core 2 Extreme X6800Ö»ÓÐ46.88GFLOPS¡£

ͼ 1 GPUÓëCPUµÄ·¢Õ¹ÓëÐÔÄܱȽÏ
ͼÐδ¦ÀíÆ÷¼¼ÊõµÄѸËÙ·¢Õ¹´øÀ´µÄ²¢²»Ö»ÊÇËٶȵÄÌá¸ß£¬»¹²úÉúÁ˺ܶàȫеÄͼÐÎÓ²¼þ¼¼Êõ£¬Ê¹GPU¾ßÓÐÁ÷´¦Àí¡¢¸ßÃܼ¯²¢ÐÐÔËËã¡¢¿É±à³ÌÁ÷Ë®ÏßµÈÌØÐÔ£¬´Ó¶ø¼«´óµÄÍØÕ¹ÁËGPUµÄ´¦ÀíÄÜÁ¦ºÍÓ¦Ó÷¶Î§[2]¡£
ÕýÊÇÓÉÓÚGPU¾ßÓиßЧµÄ²¢ÐÐÐÔºÍÁé»îµÄ¿É±à³ÌÐÔµÈÌØµã£¬Ô½À´Ô½¶àµÄÑо¿ÈËÔ±ºÍÉÌÒµ×éÖ¯¿ªÊ¼ÀûÓÃGPUÍê³ÉһЩ·ÇͼÐλæÖÆ·½ÃæµÄ¼ÆË㣬²¢¿ª´´ÁËÒ»¸öеÄÑо¿ÁìÓò£º»ùÓÚGPUµÄͨÓüÆË㣨GPGPU£¬General-Purpose computation on GPU£©£¬ÆäÖ÷ÒªÑо¿ÄÚÈÝÊÇÈçºÎÀûÓÃGPUÔÚͼÐδ¦ÀíÖ®ÍâµÄÆäËûÁìÓò½øÐиüΪ¹ã·ºµÄ¿ÆÑ§¼ÆËã[4]¡£Ä¿Ç°Òѳɹ¦Ó¦ÓÃÓÚ´úÊý¼ÆËã¡¢Á÷ÌåÄ£Äâ¡¢Êý¾Ý¿âÓ¦Óá¢ÆµÆ×·ÖÎöµÈ·ÇͼÐÎÓ¦ÓÃÁìÓò[5]£¬ÉõÖÁ°üÀ¨ÖÇÄÜÐÅÏ¢´¦ÀíϵͳºÍÊý¾ÝÍÚ¾ò¹¤¾ßµÈÉÌÒµ»¯Ó¦Óá£Í¬Ê±£¬Ò²²úÉúÁËһЩÕë¶ÔGPU¿ª·¢µÄͨÓüÆË㹤¾ß°ü£¬Äܹ»»ùÓÚGPUƽ̨¶ÔFFT¡¢BLAS¡¢ÅÅÐò¼°ÏßÐÔ·½³Ì×éÇó½âµÈ¿ÆÑ§¼ÆËã½øÐÐÓÅ»¯ÊµÏÖ¡£
»ùÓÚGPUµÄͨÓüÆËãÒѳÉΪ½ü¼¸ÄêÈËÃǹØ×¢µÄÒ»¸öÑо¿Èȵ㡣½«GPUÓÃÓÚͨÓüÆËãµÄÖ÷ҪĿµÄÊÇΪÁ˼ÓËÙ¼ÆË㣬¼ÓËٵ͝Á¦À´×ÔGPUÔÚ¸ßÐÔÄܼÆËã·½ÃæËù¾ßÓеÄÓÅÊÆ£º
£¨1£©¸ßЧµÄ²¢ÐÐÐÔ¡£ÕâÒ»¹¦ÄÜÖ÷ÒªÊÇͨ¹ýGPU¶àÌõ»æÖÆÁ÷Ë®ÏߵIJ¢ÐмÆËãÀ´ÌåÏֵġ£ÔÚĿǰÖ÷Á÷µÄGPUÖУ¬ÅäÖöà´ï16¸öƬ¶Î´¦ÀíÁ÷Ë®Ïߣ¬6¸ö¶¥µã´¦ÀíÁ÷Ë®Ïß¡£¶àÌõÁ÷Ë®Ïß¿ÉÒÔÔÚµ¥Ò»¿ØÖƲ¿¼þµÄ¼¯ÖпØÖÆÏÂÔËÐУ¬Ò²¿ÉÒÔ¶ÀÁ¢ÔËÐС£GPUµÄ¶¥µã´¦ÀíÁ÷Ë®ÏßʹÓÃMIMD·½Ê½¿ØÖÆ£¬Æ¬¶Î´¦ÀíÁ÷Ë®ÏßʹÓÃSIMD½á¹¹¡£Ïà¶ÔÓÚ²¢Ðлú¶øÑÔ£¬GPUÌṩµÄ²¢ÐÐÐÔÔÚÊ®·ÖÁ®¼ÛµÄ»ù´¡ÉÏ£¬ÎªºÜ¶àÊʺÏÓÚÔÚGPUÉϽøÐд¦ÀíµÄÓ¦ÓÃÌṩÁËÒ»¸öºÜºÃµÄ²¢Ðз½°¸¡£
£¨2£©¸ßÃܼ¯µÄÔËËã¡£GPUͨ³£¾ßÓÐ128λ»ò256λµÄÄÚ´æÎ»¿í£¬Òò´ËGPUÔÚ¼ÆËãÃܼ¯ÐÍÓ¦Ó÷½Ãæ¾ßÓкܺõÄÐÔÄÜ¡£
£¨3£©³¬³¤Í¼ÐÎÁ÷Ë®Ïß¡£GPU³¬³¤Í¼ÐÎÁ÷Ë®ÏßµÄÉè¼ÆÒÔÍÌÍÂÁ¿µÄ×î´ó»¯ÎªÄ¿±ê£¨ÈçNVIDIA GeForce 3Á÷Ë®ÏßÓÐ800¸ö½×¶Î£©£¬Òò´ËGPU×÷ΪÊý¾ÝÁ÷²¢Ðд¦Àí»ú£¬ÔÚ¶Ô´ó¹æÄ£µÄÊý¾ÝÁ÷²¢Ðд¦Àí·½Ãæ¾ßÓÐÃ÷ÏÔµÄÓÅÊÆ¡£
Èçͼ2Ëùʾ£¬CPUÖеĴ󲿷־§Ìå¹ÜÖ÷ÒªÓÃÓÚ¹¹½¨¿ØÖƵç·£¨Èç·ÖÖ§Ô¤²âµÈ£©ºÍCache£¬Ö»ÓÐÉÙ²¿·ÖµÄ¾§Ìå¹ÜÀ´Íê³Éʵ¼ÊµÄÔËË㹤×÷¡£GPUÓëCPUµÄÉè¼ÆÄ¿±ê²»Í¬£¬Æä¿ØÖƵç·Ïà¶Ô¼òµ¥£¬¶øÇÒ¶ÔCacheµÄÐèÇó½ÏС£¬ËùÒԴ󲿷־§Ìå¹Ü¿ÉÒÔ×é³É¸÷ÀàרÓõ緺ͶàÌõÁ÷Ë®Ïߣ¬Ê¹GPUµÄ¼ÆËãËÙ¶ÈÓÐÁËÍ»ÆÆÐԵķÉÔ¾£¬ÓµÓоªÈ˵Ĵ¦Àí¸¡µãÔËËãµÄÄÜÁ¦¡£

ͼ 2 GPUÓëCPUÄÚ²¿½á¹¹±È½Ï
ÕýÊÇÓÉÓÚGPUÔÚ²¢Ðд¦ÀíºÍ¼ÆËãÃܼ¯ÐÍÎÊÌâÇó½âµÈ·½ÃæËù¾ßÓеÄÖî¶àÓÅÊÆ£¬GPUÒѳÉΪĿǰÆÕͨPC»úËùÓµÓеÄÇ¿´ó¡¢¸ßЧµÄ¼ÆËã×ÊÔ´¡£´Óϵͳ¼Ü¹¹ÉÏ¿´£¬GPUÊÇÕë¶ÔÏòÁ¿¼ÆËã½øÐÐÁËÓÅ»¯µÄ¸ß¶È²¢ÐеÄÊý¾ÝÁ÷´¦Àí»ú¡£ÕâÖÖÒÔÊý¾ÝÁ÷×÷Ϊ´¦Àíµ¥ÔªµÄ´¦Àí»ú£¬ÔÚ¶ÔÊý¾ÝÁ÷µÄ´¦ÀíÉÏ¿ÉÒÔ»ñµÃºÜ¸ßµÄЧÂÊ¡£¸ù¾ÝNVIDIA¹«Ë¾¿ª·¢µÄGPU¹¤¾ß°üCUDA£¨Compute Unified Device Architecture£©µÄ²âÊÔ½á¹ûÏÔʾ£¬ÀûÓÃGPUʵÏÖFFT¡¢BLAS¡¢ÅÅÐò¼°ÏßÐÔ·½³Ì×éÇó½âµÈ¿ÆÑ§¼ÆË㣬Óëµ¥´¿ÒÀ¿¿CPUʵÏÖµÄËã·¨Ïà±È£¬Æ½¾ùÐÔÄÜÌá¸ßÁ˽ü20±¶[7]¡£
Óɴ˿ɼû£¬GPUµÄ·¢Õ¹ËÙ¶È£¨°üÀ¨¼¯³É¶È¡¢¼ÆËãÃܼ¯ÐÍÎÊÌâµÄ´¦ÀíÄÜÁ¦µÈ£©ÒÑÔ¶Ô¶³¬¹ýͨÓô¦ÀíÆ÷£¬ÌرðÊÇËæ×ſɱà³ÌÄÜÁ¦¡¢²¢Ðд¦ÀíÄÜÁ¦ºÍÓ¦Ó÷¶Î§·½ÃæµÃµ½²»¶ÏÌáÉýºÍÀ©Õ¹£¬Ê¹µÃGPUÒѳÉΪµ±Ç°¼ÆËã»úϵͳÖо߱¸¸ßÐÔÄÜ´¦ÀíÄÜÁ¦µÄ²¿¼þ¡£Òò´Ë£¬³ä·ÖÀûÓÃÏÖÓмÆËã×ÊÔ´£¬·¢»ÓGPUµÄ¸ßÐÔÄܼÆËãÄÜÁ¦£¬ÔÚGPUÓëCPUµÄЭ×÷ģʽ¡¢GPUͨÓüÆËãµÄ¼ÆËãģʽÒÔ¼°ÐÔÄÜÓÅ»¯µÈ·½Ãæ½øÐÐÉîÈëÑо¿£¬½«¶Ô½øÒ»²½ÍØÕ¹Ä¿Ç°¸ßÐÔÄܼÆËãÌåϵ½á¹¹£¬Îª¿ÆÑ§¼ÆËãºÍ¹¤³ÌÓ¦ÓÃÌṩÐÂÐ͵ļÆËã×ÊÔ´¾ßÓÐÖØÒªÒâÒå¡£

1.2 ¹úÄÚÍâÑо¿ÏÖ×´
Ŀǰ£¬ÒÔNVIDIAºÍATIΪ´ú±íµÄGPU²úÆ·Õý´¦ÓÚ¿ìËÙ·¢Õ¹µÄ¹ý³Ìµ±ÖУ¬Ã¿¸ô°ëÄê×óÓÒÐÂÒ»´úµÄ²úÆ·±ã»áµ®Éú¡£GPUÔÚÔö¼Ó¸ü¶à¹¦ÄܵÄͬʱ£¬Ò²ÌṩÁ˸üÇ¿µÄ´¦ÀíÄÜÁ¦¡£Ëæ×Å¿ÆÑ§¼ÆËã¿ÉÊÓ»¯¡¢Ò½ÁÆÍ¼Ïñ¡¢ÐéÄâÏÖʵµÈѧ¿ÆµÄ·¢Õ¹ºÍÓéÀÖ²úÒµµÄÍÆ¶¯£¬ÐèÒª¸ßÐÔÄܼÆËãµÄһЩÁìÓòºÍ¼ÆËã»úͼÐÎÁìÓòÔ½À´Ô½½ôÃܵĽáºÏÆðÀ´¡£2003Ä꣬ÊÀ½çͼÐÎѧӲ¼þÄê»á£¨SIGGRAPH/EUROGRAPHICS Graphics Hardware 2003£©Ñ¸ËÙ½«ÆäÖØµãתÏòÁ˼ÆËã»úͼÐδ¦ÀíÆ÷µÄ·ÇͼÐÎÓ¦Óá£Ö®ºó£¬IEEE¡¢SIGGRAPH¡¢SUPERCOMPUTINGµÈ¹ú¼Ê»áÒéÿÄê¶¼ÉèÁ¢ÁËGPGPUÏà¹Ø×¨ÌâµÄÌÖÂÛ×é¡£Ô½À´Ô½¶àµÄ¿ÆÑлú¹¹¿ªÊ¼ÀûÓÃGPUµÄ´¦ÀíÄÜÁ¦½øÐзÇͼÐλæÖÆ·½ÃæµÄ¿ÆÑ§¼ÆËãÑо¿¡£
ÔÚ»ùÓÚGPUͨÓüÆËãµÄÓ¦ÓÃϵͳ·½Ã棬Ö÷Òª°üÀ¨¼¸ºÎ¼ÆËã¡¢Åöײ¼ì²â¡¢Ô˶¯¹æ»®¡¢´úÊýÔËËã¡¢ÓÅ»¯¼ÆË㡢ƫ΢·Ö·½³Ì¡¢ÊýÖµÇó½âµÈ¡£
ÔÚͼÐδ¦ÀíÆ÷³öÏÖµÄÔçÆÚ£¬LarsenµÈÈËÔÚ2001ÄêÀûÓöàÎÆÀí¼¼ÊõʵÏÖÁ˾ØÕóÔËËã²Ù×÷¡£2001Äêºó£¬Ëæ×ÅNVIDIA GeForce 3ͼÐδ¦ÀíÆ÷µÄ³öÏÖ£¬¶¥µã¼¶¿É±à³Ì£¨Vertex Program£©¿ªÊ¼ÆÕ¼°¡£ËäÈ»Õâ¸öʱºòƬ¶Î¼¶ÉÏ»¹Ö»Êǹ̶¨µÄ¼¸ÌõÖ¸Áµ«ÀûÓÃGPU½øÐÐͨÓüÆËã·½ÃæµÄÓ¦ÓÃÒѾ­È«ÃæÕ¹¿ª¡£ThompsonµÈÈËÔÚ¶¥µã¼¶ÊµÏÖÁËÒ»¸ö´úÊýÔËËãµÄ¿ò¼Üϵͳ£¬ÆäÖаüÀ¨Ê¸Á¿ÔËËãºÍ¾ØÕó³Ë·¨µÈ[8]¡£2002Ä꣬ÈËÃÇ¿ªÊ¼ÀûÓÃTexture Shader½áºÏRegister CombinerÀ´Çó½âÀ©É¢·½³Ì[9]¡£2003ÄêÆ¬¶Î¼¶¿É±à³Ì£¨Fragment Program£©³öÏÖ£¬´ó´ó¼ÓËÙÁËGPUͨÓüÆËã·½ÃæµÄÑо¿¡£ºÜ¶àÑо¿ÈËÔ±¿ªÊ¼ÀûÓÃÆ¬¶Î³ÌÐòÀ´Çó½âÒ»°ã´úÊýÎÊÌ⣬°üÀ¨Á÷ÌåÄ£Äâ¡¢ÎïÀíÏÖÏó·ÂÕæ¡¢ÓÐÏÞ²î·Ö·½³Ì×éÇó½âºÍÓÅ»¯µÈ[10]¡£
2004Ä꣬ÃÀ¹úÑÐÖÆµÄGPU¼¯ÈºÏµÍ³£¨The Stony Brook Visual Computing Cluster£©[11]ÔËÓÃÓÚ³ÇÊÐÆøÁ÷Ä£Äâ¡£ÁíÍ⣬ÃÀ¹ú±±¿¨ÂÞÀ³ÄÇ´óѧ½«GPU¼ÆËãÓ¦ÓÃÓÚÊý¾Ý¿âÁìÓò£¬ÀûÓÃGPUÓ²¼þ¶ÔÊý¾Ý¿âµÄ¹ØÏµ²éѯ¡¢ºÏȡѡÔñ¡¢¾Û¼¯²Ù×÷µÈ½øÐмÓËÙºÍÓÅ»¯[2]¡£GPU ÉõÖÁ±»ÓÃÀ´½øÐÐÉùÒôµÄºÏ³ÉÔËË㣬ÒÔʹCPUºÍAPU£¨Audio Processing Unit£©´ïµ½Á¼ºÃµÄ¾ùºâ¡£Í¬Ä꣬ÃÀ¹ú¹ú·À¼¼ÊõÇ鱨ÖÐÐĹ«¿ª·¢²¼ÁË¡¶GPU£ºÎ´À´¸ßÐÔÄܼÆËãÒýÇæ¡·µÄ¿Æ¼¼±¨¸æ£¬ÄÚÈݰüÀ¨¶ÔGPUͨÓüÆËãÓ¦ÓÃÓÚ¸ßÐÔÄܼÆËãÁìÓòµÄ·¢Õ¹Õ¹ÍûºÍδÀ´ÃæÁÙµÄÌôÕ½¡£
2005Äê10ÔÂNVIDIAºÍATI¹«Ë¾Ïà¼Ì¿ª·¢»ùÓÚGPGPUµÄÎïÀí¼ÆËãAPI£¬Ê¹µÃGPUÄܹ»ÀûÓø¡µãƬ¶Î×ÅÉ«Æ÷µ¥Ôª´¦Àí°üº¬´óÁ¿²¢ÐвÙ×÷µÄ¿ÆÑ§¼ÆËãÈÎÎñ¡£
2006Ä꣬·Ö²¼Ê½¼ÆËãÏîÄ¿Folding@HomeÔÚµ°°×ÖÊÕÛµþµÄÑо¿Öгä·Ö·¢»ÓÁËGPUµÄ¸ßÐÔÄÜÓÅÊÆ¡£¸ÃÏîÄ¿ÀûÓÃATI GPU»ñµÃÁËÿ̨¼ÆËã»ú100GFLOPSµÄ¸ßÐÔÄÜ[12]¡£ÁíÍ⣬ATI¹«Ë¾ÔÚSIGGRAPH 2006ÉÏ×öÁËÊý¾Ý²¢ÐÐÐéÄâ»ú£¨Data Parallel Virtual Machine£©µÄÑÝʾ£¬²¢Ê¹ÓÃÁËרÃÅΪGPUͨÓüÆËã¶øÉè¼ÆµÄ¡°Close to the Metal¡±API¡£Í¨¹ýÔÚÒ»¸öÏÔ¿¨ÉÏʹÓöà¸öGPUÀ´ÐγÉÊý¾ÝÁ÷´¦Àí¼¯Èº£¬Í¨¹ýÇ¿´óµÄÊý¾Ý²¢Ðд¦Àí»úµÄÐÔÄÜÀ´½â¾öGPU²¢ÐÐÊý¾Ý¼ÓËÙµÄÎÊÌâ¡£
Ŀǰ£¬¹úÄÚÔÚGPUͨÓüÆËã·½ÃæµÄÑо¿Ò²ÔÚһЩ¿ÆÑлú¹¹ºÍԺУÖ𲽿ªÕ¹ÆðÀ´¡£2004Ä꣬Ç廪´óѧÀûÓÃGPUµÄ²¢ÐмÆËãÄÜÁ¦ºÍÊý¾ÝÁ÷´¦ÀíÄÜÁ¦£¬ÔÚGPUÉÏʵÏÖÁËÒ»ÖÖеķøÉä¶È¼ÆËã·½·¨£¬²¢ÊµÏÖÁËJacobiµü´ú·¨¿ìËÙÇó½âÏßÐÔ·½³Ì×é¡£ÁíÍ⣬ÖпÆÔº¼ÆËã¼¼ÊõÑо¿Ëù¡¢»ªÖпƼ¼´óѧ¡¢Î÷ÄϽ»Í¨´óѧµÈÒ²Ïà¼ÌÕë¶ÔÌØ¶¨Ó¦ÓÃÔÚGPUÉϽøÐÐÁËʵÑéÑéÖ¤¡£
ÔÚGPUͨÓüÆËãµÄÈí¼þ¿ª·¢»·¾³·½Ã棬OpenGL×÷ΪÊÂʵÉϵĹ¤Òµ±ê×¼ÒÑΪѧÊõ½çºÍ¹¤Òµ½çËùÆÕ±é½ÓÊÜ£¬ÆäÖаüÀ¨ÁËGPU³§ÉÌÒÔ¼°OpenGL¼Ü¹¹Î¯Ô±»á£¨ARB£©ËùÀ©³äµÄº¯Êý£¬ÒÔ´ËÀ´ÊµÏÖGPU³§ÉÌÌṩµÄй¦ÄÜ[14]¡£DirectXÔò¸ù¾ÝGPUвúÆ·¹¦ÄܵÄÀ©³äÓë½øÕ¹¼°Ê±µÄ·¢²¼Ðµİ汾¡£¶þÕßÔÚʵÏÖGPUͨÓüÆËã·½Ãæ¶¼ÐèҪʹÓÃÕ߷dz£ÊìϤGPUͼÐλæÖƵÄÔ­ÀíºÍÓ²¼þ½á¹¹µÈÐí¶à¾ßÌåÎÊÌâ¡£
¸ß¼¶»æÖÆÓïÑÔºÍʵʱ»æÖÆÓïÑԵijöÏÖ£¬ÈçNVIDIAµÄCg[14]£¬OpenGL Shading Language£¬High Level Shading Language[21]µÈ£¬Îª±à³ÌÈËÔ±ÌṩÁËÖ±½Ó»ùÓÚͼÐÎAPI£¨OpenGL»òDirectX£©±à³ÌµÄ½ÏΪ·½±ãºÍ¸ß²ã´ÎµÄ¹¤¾ß¡£ÁíÍâ£¬Ëæ×ÅBrook¡¢SHµÈͨÓûæÖÆÓïÑԵijöÏÖ£¬ÔÊÐí¿ª·¢ÈËÔ±ÔÚ²»¿¼ÂÇͼÐλæÖƺÍÓ²¼þ½á¹¹µÄÇé¿öÏ£¬³ä·ÖÀûÓÃGPUµÄ¿É±à³ÌÐÔ±àÐ´ÃæÏòͨÓüÆËãµÄ»æÖƳÌÐò¡£
Ëæ×Åʱ¼äµÄÍÆÒÆ£¬GPUͨÓüÆËãµÄÓ¦ÓÃÒ²½«Ô½À´Ô½¹ã·º¡£È»¶ø£¬Ä¿Ç°ÔÚÈíÓ²¼þ·½ÃæÒÀÈ»´æÔںܶàÐèÒª¿Ë·þµÄÎÊÌâ¡£Ê×ÏÈ£¬GPUÊÇÃæÏòͼÐεģ¬ÔÚÓ²¼þ½á¹¹¡¢Ö¸Áîϵͳ¡¢´¦ÀíÁ÷³ÌµÈ·½ÃæºÍÕæÕýÓÃÓÚͨÓüÆËãµÄCPUÓб¾Öʲî±ð£»Æä´Î£¬ÔÚGPU¼ÆËãµÄÈí¼þ»·¾³·½ÃæÐèÒª½øÐиü¶àµÄÑо¿ºÍ̽Ë÷£¬ÈçÖÆ¶¨Í³Ò»µÄ³éÏó½çÃæ¡¢±à³ÌÄ£ÐÍ¡¢¿ª·¢»·¾³ºÍ¹¤¾ßÈí¼þµÈ[2]£»ÁíÍ⣬GPUͨÓüÆËãÐèÒªÔÚ¼ÆËãģʽÉÏÌá³öÒ»ÖÖÄܹ»ºÜºÃµÄÊÊÓ¦ÓÚÎÊÌâÇó½âµÄ·½·¨¡£

Ŀǰ£¬GPUͨÓüÆËãÔÚÑо¿ÁìÓòͨ¹ýIEEE¡¢SIGGRAPH¡¢SUPERCOMPUTINGµÈ¹ú¼Ê»áÒéÒÔ¼°GPGPU¡¢Folding@HomeµÈ×éÖ¯µÄÈ«Á¦Ö§³Ö£¬ÒѾ­³õÏÖÏòÖ÷Á÷¼ÆËãµÄÇ÷ÊÆ·¢Õ¹¡£ÁíÍâÔÚÉÌÒµ»¯·½Ã棬NVIDIA¡¢AMDµÈ¹«Ë¾Ò²¼Æ»®ÍƳö°üÀ¨GPGPU¿ª·¢¹¤¾ß¡¢È«ÐµÄÁ÷´¦ÀíÓ²¼þÒÔ¼°GPU+CPUµÄË«ºËÌåϵ½á¹¹µÈһϵÁÐÐÂÐ͵ĸßÐÔÄܼÆËã»·¾³£¬Í¬Ê±Ò²²úÉúÁËһЩÓÃÓÚÐÅÏ¢´¦ÀíµÈÁìÓòµÄÉÌÒµ»¯GPGPUÓ¦Óá£ÕâЩ¶¼ÎªGPUͨÓüÆËãÌṩÁËÁ¼ºÃµÄƽ̨ºÍ·¢Õ¹¿Õ¼ä¡£µ«GPUͨÓüÆËã²»ÂÛÊÇÔÚÓ²¼þÉÏ£¬»¹ÊÇÔÚÈí¼þÉÏÈÔÈ»´æÔںܶàÎÊÌ⣬´ÓÑо¿µ½ÊµÓû¹ÒªºÜ³¤µÄ·Ҫ×ß¡£
ÔÚºóÐøµÄÑо¿¹¤×÷ÖУ¬½«¶Ô±¾ÎÄÈÔȻδ½â¾öµÄһЩÎÊÌâ½øÐÐÑо¿£¬°üÀ¨Õë¶ÔGPU¡ªCPUЭ×÷ģʽµÄ¾«È·Ä£Ðͽ¨Á¢ºÍÍêÕûµÄÐÔÄÜÃèÊö£¬GPUÁ÷¼ÆËãģʽ¶ÔGPUͨÓüÆËãµÄ¾ßÌå±à³Ì·½·¨ÉϵĿò¼ÜÄ£ÐÍ£¬ÒÔ¼°¶ÔGPUÁ÷¼ÆËãģʽµÄÐÔÄܽ¨Á¢Ä£ÐÍ£¬×ۺϸ÷ÖÖÒòËØ¶ÔÐÔÄܵÄÓ°Ï죬¶ÔGPUÁ÷¼ÆËãÄ£ÐͽøÐÐÍêÕûµÄÐÔÄÜÆÀ¹ÀºÍ²âÊԵȡ£³ý´ËÒÔÍ⣬ºóÐøµÄÑо¿¹¤×÷½«Î§ÈÆÒÔϼ¸¸ö¹Ø¼üÎÊÌâ½øÐÐÉîÈëÑо¿¡£
£¨1£©ÓëÏÖʵӦÓýôÃܽáºÏ£¬³ä·ÖÀûÓÃGPUͨÓüÆËãµÄÓÅÊÆ£¬½øÒ»²½ÍØÕ¹GPUͨÓüÆËãµÄÓ¦Ó÷¶Î§¡£Í¨¹ý¶Ô¾ßÌåÎÊÌâµÄ¼ÓËÙºÍÓÅ»¯ÊµÏÖ£¬Å¬Á¦Ê¹GPUͨÓüÆËãÓиüºÃµÄʵÓÃÐÔ£¬Äܹ»Îª¸ü¶àµÄÈËËù½ÓÊܺÍÈϿɡ£
£¨2£©ÉîÈëÑо¿GPU-CPUЭ×÷¼ÆËãģʽºÍ¶àGPUÌåϵ½á¹¹£¬½øÒ»²½ÀûÓÃGPUÓëCPUÁ¼ºÃµÄЭ×÷ÐÔ¹¹½¨¾ßÓиßÐÔÄܵļÆËã»·¾³£¬×î´ó³Ì¶ÈÉÏ·¢»ÓרÓô¦ÀíÆ÷ºÍͨÓô¦ÀíÆ÷¸÷×ÔµÄÓÅÊÆ¡£
£¨3£©ÔÚ»ùÓÚGPUͨÓüÆËãµÄËã·¨¹¹Ôì¡¢ÓÅ»¯¡¢ÊµÏֵȷ½ÃæÎª½¨Á¢Á¼ºÃµÄÊý¾Ý½á¹¹×éÖ¯ºÍÓÅ»¯²ßÂÔ¡£
£¨4£©Õë¶ÔGPUͨÓüÆËãµÄ¿ª·¢¹¤¾ß¡¢µ÷ÊÔÆ÷¡¢ÓÅ»¯²ßÂÔ½øÐÐÉîÈëµÄÑо¿£¬ÎªGPUͨÓüÆËãÉè¼Æ²¢ÊµÏÖÒ»¸ö½çÃæÓѺᢿÉÀ©Õ¹ÐÔÇ¿µÄ¿ª·¢»·¾³¡£


ºÃÁË£¬²»ÖªµÀ¿´µ½ÕâÀï´ó¼ÒÓÐûÓÐÐËȤ£¿
ÏÂÃæµÄ×ÊÁÏ´ó¶¼ÊÇÓ¢Îĵģ¬ÀÏÍ⻹ÊDZȽÏÃÍ¡£¡£¡£
µ«ÆäÖÐÖ»ÓÐһƪÖÐÎĵ쬾­µä£¡£¨Îâ¶÷»ª. ͼÐδ¦ÀíÆ÷ÓÃÓÚͨÓüÆËãµÄ¼¼Êõ¡¢ÏÖ×´¼°ÆäÌôÕ½. Èí¼þѧ±¨,2004.£©
Èç¹û´ó¼ÒÓÐÐËȤÎÒ¿ÉÒÔÔÙ·¢Ò»Ð©ºÜºÃµÄ×ÊÁÏ£¡
²»¹ý¡£¡£¡£¡£´ó¶àÊýȨÍþ£¨ºÜ¶àµ¼Ê¦£©ÈÏΪGPUÓÃÓÚͨÓüÆËãÖ»ÊÇÒ»ÖÖ²»ÈëÖ÷Á÷µÄÅÔÃÅ×óµÀ¡£¡£¡£²»ÖªµÀ´ó¼ÒÓкο´·¨£¿»¶Ó­´Í½Ì£¡£¡£¡

http://www.isload.com.cn/store/matz4dobrojr7/GPGPU.rar/downlaod

[ Last edited by wl1167 on 2008-1-31 at 22:39 ]
»Ø¸´´ËÂ¥

» ÊÕ¼±¾ÌûµÄÌÔÌûר¼­ÍƼö

²¢ÐмÆËã

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

wl1167

½ð³æ (СÓÐÃûÆø)


·´¸´ËÑË÷ÁËСľ³æ£¬¾¹È»Á¬¹Ø¼ü×Ö£ºGPGPU¡¢Í¨ÓüÆËã¶¼ÕÒ²»µ½¡£¡£¡£¡£¡£¡£²»Ö¸Íû´ó¼ÒÖ§³ÖÁË£¬µ«»¹ÊÇÏ£Íû´ó¼ÒÄܸøµãÒâ¼û¡£¡£¡£ºÇºÇ£¬ÓôÃÆ
2Â¥2008-01-31 22:47:20
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

kk008

½ð³æ (ÕýʽдÊÖ)


Õâ¸öÎÒ¿´¹ýÒ»µã£¬²»¹ý¸öÈËÈÏΪGPGPUÊÇÒ»¸ö¹¤¾ß£¬¿ÉÄÜÖ÷ÒªµÄ¹¤×÷ÊÇËã·¨ÏòGPUÉϵÄÇ¨ÒÆ¡£Ëã·¨±¾ÉíÓ¦¸ÃºÍÕâ¸ö¹ØÏµ²»´ó°É£¬Ò²ÐíÖ»ÊÇÒ»¸öGPUÉϵÄʵÏÖ·½·¨µÄÎÊÌâ
3Â¥2008-06-01 11:36:33
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

yalefield

½ð³æ (ÎÄ̳¾«Ó¢)


2008-04-15¡¶Ì¸Ì¸GPU°É¡·- ¼ÆËãÄ£Äâ°æ
http://muchong.com/html/200712/672463.html
4Â¥2008-06-02 08:35:22
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ÑÕÁê¾ý

Òø³æ (³õÈëÎÄ̳)


²»´í£¡£¡£¡
5Â¥2008-08-23 20:39:16
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ wl1167 µÄÖ÷Ìâ¸üÐÂ
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©»¯¹¤´óѧ 070300 ѧ˶ 336·Ö Çóµ÷¼Á +5 vvÃÔ 2026-03-22 5/250 2026-03-23 07:36 by Iveryant
[¿¼ÑÐ] ÉúÎïѧ071000 329·ÖÇóµ÷¼Á +5 ÎÒ°®ÉúÎïÉúÎﰮΠ2026-03-17 5/250 2026-03-22 16:42 by tcx007
[¿¼ÑÐ] Çóµ÷¼ÁԺУÐÅÏ¢ +6 CX 330 2026-03-21 6/300 2026-03-22 15:25 by ÎÞи¿É»÷111
[¿¼ÑÐ] ¿¼Ñе÷¼Á +4 À´ºÃÔËÀ´À´À´ 2026-03-21 4/200 2026-03-22 12:15 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] ¹¤¿Æ0856Çóµ÷¼Á +3 ãåÎö͡͡ 2026-03-21 3/150 2026-03-21 18:30 by ѧԱ8dgXkO
[¿¼ÑÐ] 278Çóµ÷¼Á +9 ÑÌ»ðÏÈÓÚ´º 2026-03-17 9/450 2026-03-21 17:47 by ѧԱ8dgXkO
[¿¼ÑÐ] 0703»¯Ñ§297Çóµ÷¼Á +3 Daisy¡î 2026-03-20 3/150 2026-03-21 17:45 by ColorlessPI
[¿¼ÑÐ] 266Çóµ÷¼Á +3 ÍÛºôºßºôºß 2026-03-20 3/150 2026-03-21 16:46 by barlinike
[¿¼ÑÐ] ²ÄÁϹ¤³Ì£¨×¨£©Ò»Ö¾Ô¸985 ³õÊÔ335Çóµ÷¼Á +3 hiloiy 2026-03-17 4/200 2026-03-21 03:04 by JourneyLucky
[¿¼ÑÐ] ¶þ±¾¿ç¿¼Ö£´ó²ÄÁÏ306Ó¢Ò»Êý¶þ +3 z1z2z3879 2026-03-17 3/150 2026-03-21 02:29 by JourneyLucky
[¿¼ÑÐ] »¯Ñ§Çóµ÷¼Á +4 ÁÙÔó¾³llllll 2026-03-17 5/250 2026-03-21 02:23 by JourneyLucky
[¿¼ÑÐ] »ª¶«Ê¦·¶´óѧ-071000ÉúÎïѧ-293·Ö-Çóµ÷¼Á +3 Ñо¿ÉúºÎÑþÃ÷ 2026-03-18 3/150 2026-03-21 01:30 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸ÖØÇì´óѧ085700×ÊÔ´Óë»·¾³×¨Ë¶£¬×Ü·Ö308Çóµ÷¼Á +3 īīĮ 2026-03-18 3/150 2026-03-21 00:39 by JourneyLucky
[¿¼ÑÐ] ²ÄÁÏר˶ӢһÊý¶þ306 +7 z1z2z3879 2026-03-18 7/350 2026-03-20 23:48 by JourneyLucky
[¿¼ÑÐ] 288Çóµ÷¼Á +16 ÓÚº£º£º£º£ 2026-03-19 16/800 2026-03-20 22:28 by JourneyLucky
[¿¼ÑÐ] 295¸´ÊÔµ÷¼Á +8 ¼òľChuFront 2026-03-19 8/400 2026-03-20 20:44 by zhukairuo
[¿¼ÑÐ] ²ÄÁÏѧÇóµ÷¼Á +4 Stella_Yao 2026-03-20 4/200 2026-03-20 20:28 by ms629
[¿¼ÑÐ] 353Çóµ÷¼Á +3 À­¹³²»Ðí±ä 2026-03-20 3/150 2026-03-20 19:56 by JourneyLucky
[¿¼ÑÐ] 298-Ò»Ö¾Ô¸Öйúũҵ´óѧ-Çóµ÷¼Á +9 ÊÖ»úÓû§ 2026-03-17 9/450 2026-03-20 14:24 by ÎÞи¿É»÷111
[¿¼ÑÐ] 328Çóµ÷¼Á£¬Ó¢ÓïÁù¼¶551£¬ÓпÆÑо­Àú +4 ÉúÎ﹤³Ìµ÷¼Á 2026-03-16 12/600 2026-03-19 11:10 by ÉúÎ﹤³Ìµ÷¼Á
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û