Znn3bq.jpeg
²é¿´: 873  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 335Çóµ÷¼Á +13 ÏëÉϰ¶Ñ½£¡£¡ 2026-04-12 13/650 2026-04-12 11:37 by ²ñС°×
[¿¼ÑÐ] 085410 273Çóµ÷¼Á +10 X1999 2026-04-09 10/500 2026-04-12 09:24 by ÄæË®³Ë·ç
[¿¼ÑÐ] 0854µ÷¼Á +8 ³¤¹­°Á 2026-04-11 9/450 2026-04-11 21:44 by À¶ÔÆË¼Óê
[¿¼ÑÐ] Çóµ÷¼Á +6 СÄô°®Ñ§Ï° 2026-04-11 9/450 2026-04-11 21:20 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 295Çóµ÷¼Á +6 ?ÒªÉϰ¶? 2026-04-05 7/350 2026-04-11 19:02 by laoshidan
[¿¼ÑÐ] 352 Çóµ÷¼Á +6 yzion 2026-04-11 8/400 2026-04-11 16:24 by Ã÷Ô´ËʱÓÐ
[¿¼ÑÐ] ±¾ÈËÅ®º¢ +7 ºðºð£¬ 2026-04-10 9/450 2026-04-11 14:45 by ACS Nano¡ª¡ª
[¿¼ÑÐ] Ò»Ö¾Ô¸085502£¬267·ÖÇóµ÷¼Á +11 ÔÙæҲҪ³Ô·¹°¡ 2026-04-08 12/600 2026-04-11 11:08 by zhq0425
[¿¼ÑÐ] 085404 293Çóµ÷¼Á +9 ÓÂÔ¶¿â°®314 2026-04-06 10/500 2026-04-11 10:36 by ×ÏêØ×ÏÆå
[¿¼ÑÐ] 22408 327·ÖÇóµ÷¼Á +4 ÔÏ·çkon 2026-04-10 4/200 2026-04-11 09:51 by Öí»á·É
[¿¼ÑÐ] 22408 366·Ö£¬±¾¿Æ211£¬Ò»Ö¾Ô¸Î÷¹¤´ó +4 Rubt 2026-04-09 4/200 2026-04-10 19:51 by chemisry
[»ù½ðÉêÇë] Óб¬ÁÏ£¬Ò»¸öÇàÄê½ÌʦÂô·¿µÃ400Íò£¬È»ºó»»ÁËÒ»¸öËÄÇàñ×Ó +9 babu2015 2026-04-08 9/450 2026-04-10 11:43 by ËÕ¶«ÆÂ¶þÊÀ
[¿¼ÑÐ] »·¾³×¨Ë¶µ÷¼Á +16 »á˵»°µÄÖâ×Ó 2026-04-06 16/800 2026-04-10 10:30 by asy1wn
[¿¼ÑÐ] 085501»úеӢ¶þ77×Ü·Ö294Çóµ÷¼Á£¬½ÓÊÜ¿çרҵѧϰ +6 ÊØ·¨¹«ÃñØÁ¼Í 2026-04-08 6/300 2026-04-09 15:55 by wp06
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£© +13 ÏàÐűػá¹ââÍòÕ 2026-04-06 16/800 2026-04-09 13:54 by ÐìÁ¼°×ü´óÏÀ
[¿¼ÑÐ] Ò»Ö¾Ô¸Î÷ÄÏ´óѧÉúÎïѧѧ˶344 ÇóÉúÎïѧÏà¹Øµ÷¼Á/ÉúÎïÓëÒ½Ò© +7 ³¬È˲»»á·É@ 2026-04-08 7/350 2026-04-09 09:35 by gong120082
[¿¼ÑÐ] 275 Çóµ÷¼Á +8 Lei812514 2026-04-07 8/400 2026-04-08 12:46 by chemisry
[¿¼ÑÐ] 277Çóµ÷¼Á +4 ¿¼Ñе÷¼Álxh 2026-04-06 6/300 2026-04-08 10:40 by ÄæË®³Ë·ç
[¿¼ÑÐ] 338Çóµ÷¼Á +5 СÖíºìÉ« 678 2026-04-06 6/300 2026-04-07 21:18 by ÇÇßÕßÕßÕ
[¿¼ÑÐ] Ò»Ö¾Ô¸±±½»´ó²ÄÁϹ¤³Ì×Ü·Ö358Çóµ÷¼Á +10 cs0106 2026-04-05 12/600 2026-04-06 19:41 by Î޼ʵIJÝÔ­
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û