Znn3bq.jpeg
ÉÇÍ·´óѧº£Ñó¿ÆÑ§½ÓÊܵ÷¼Á
²é¿´: 884  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] RY£ºÖйú²ú³öµÄ¿ÆÑ§À¬»øÂÛÎÄ£¬¾ø¶ÔÊýÁ¿ºÍ±ÈÀý¶¼ÊÀ½çµÚÒ» +5 zju2000 2026-04-14 16/800 2026-04-14 11:55 by colck
[¿¼ÑÐ] 279ѧ˶ʳƷרҵÇóµ÷¼ÁԺУ 20+6 ¹Â¶ÀµÄÀǰ®³ÔÑò 2026-04-12 26/1300 2026-04-14 09:04 by zs92450
[¿¼ÑÐ] 085404 298·ÖÇóµ÷¼Á +11 ºôÀ²ºôÀ²ºôºôºô 2026-04-10 12/600 2026-04-14 08:38 by wfj257
[¿¼ÑÐ] ²ÄÁÏÏà¹Ø×¨Òµ344Çóµ÷¼ÁË«·Ç¹¤¿ÆÑ§Ð£»ò¿ÎÌâ×é +19 hualkop 2026-04-12 20/1000 2026-04-14 07:02 by laoshidan
[¿¼ÑÐ] 0856ר˶Çóµ÷¼Á Ï£ÍûÊÇaÇøÔºÐ£ +24 ºÃºÃÐÝÏ¢ºÃ²»ºÃ 2026-04-09 27/1350 2026-04-13 22:22 by pies112
[¿¼ÑÐ] 293Çóµ÷¼Á +16 ÎÒ°®¸ßÊý¸ßÊý°®Î 2026-04-12 18/900 2026-04-13 21:47 by ѧԱJpLReM
[¿¼ÑÐ] 211±¾¿Æ²ÄÁÏ»¯¹¤Çóµ÷¼Á +17 YHLAH 2026-04-11 20/1000 2026-04-13 08:46 by Sammy2
[¿¼ÑÐ] µçÆø¹¤³Ìר˶320Çóµ÷¼Á +5 СÂé×Ó111 2026-04-10 5/250 2026-04-12 10:47 by zhouyuwinner
[¿¼ÑÐ] ҩѧר˶µ÷¼Á +8 ? һ·Éú?»¨? 2026-04-10 10/500 2026-04-11 21:21 by zhouxiaoyu
[¿¼ÑÐ] 291·Öµ÷¼Á +5 Éϰ¶Ð¡Ó¨¼ÓÓÍ 2026-04-09 6/300 2026-04-11 21:06 by ÄæË®³Ë·ç
[¿¼ÑÐ] 086003µ÷¼ÁÇóÖú +21 ËÕß®Íò 2026-04-09 22/1100 2026-04-11 20:25 by dongdian1
[¿¼ÑÐ] 0859£¬337Çóµ÷¼Á +4 ÑÐs. 2026-04-10 4/200 2026-04-11 11:34 by caotw2020
[¿¼ÑÐ] 288Çóµ÷¼Á +15 ´úfish 2026-04-09 16/800 2026-04-11 10:26 by wwj2530616
[¿¼ÑÐ] 346£¬¹¤¿Æ0854Çóµ÷¼Á£¬×¨Ë¶ +7 moser233 2026-04-10 8/400 2026-04-11 08:52 by Öí»á·É
[¿¼ÑÐ] Ò»Ö¾Ô¸±±Àí¹¤298Ó¢Ò»Êý¶þÒÑÉϰ¶£¬¸Ðл¸÷λÀÏʦ +14 Reframe 2026-04-10 16/800 2026-04-10 23:07 by caotw2020
[¿¼ÑÐ] 263ÄÜÔ´¶¯Á¦×¨Ë¶Çóµ÷¼Á +4 ¼Ó´óºÅ·¹ºÐ´ü 2026-04-10 4/200 2026-04-10 20:52 by gong120082
[¿¼ÑÐ] 278Çóµ÷¼Á +27 ·¶æÃÄÈ 2026-04-07 31/1550 2026-04-09 20:49 by zhouxiaoyu
[¿¼ÑÐ] ²ÄÁÏ»¯¹¤×Ü·Ö334Çóµ÷¼Á +16 Riot2025 2026-04-08 17/850 2026-04-09 20:19 by maddjdld
[¿¼ÑÐ] Ò»Ö¾Ô¸ÖпÆÔº105500רҵ×Ü·Ö315Çóµ÷¼Á +6 lallalh 2026-04-09 7/350 2026-04-09 17:51 by lallalh
[¿¼ÑÐ] 085801 ×Ü·Ö275 ±¾¿ÆÐÂÄÜÔ´ Çóµ÷¼Á +8 bradoner 2026-04-08 9/450 2026-04-09 13:43 by onlyÖÜ
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û