Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
GPUµÄ½éÉÜÒÔ¼°Ô­ÀíµÄ·ÖÎö
 
×÷Õߣºjiayuechao
  4718  次浏览      27
 2020-2-10 
 
±à¼­ÍƼö:
±¾ÎĽ²ÊöGPUÉϵľØÕó¼Ó·¨£¬GPUäÖȾ¹ÜÏߣ¬P&D DEMͼÏñÔ¤´¦ÀíËã·¨¼ÓËÙЧ¹ûµÈ£¬Ï£Íû¶ÔÄúÓÐËù°ïÖú
±¾ÎÄÀ´×ÔÓÚcsdnÓÉ»ðÁú¹ûÈí¼þDelores±à¼­ÍƼö¡£

1 GPUÊÇʲô

Èçͼ1Ëùʾ£¬Õą̂PC»úÓëÆÕͨPC»ú²»Í¬µÄÊÇÕâÀï²åÁË7ÕÅÏÔ¿¨£¬×óϽÇÊÇÏÔ¿¨£¬ÔÚÖмäµÄ¾ÍÊÇGPUоƬ¡£ÏÔ¿¨µÄ´¦ÀíÆ÷³ÆÎªÍ¼Ðδ¦ÀíÆ÷£¨GPU£©£¬ËüÊÇÏÔ¿¨µÄ¡°ÐÄÔࡱ£¬ÓëCPUÀàËÆ£¬Ö»²»¹ýGPUÊÇרΪִÐи´ÔÓµÄÊýѧºÍ¼¸ºÎ¼ÆËã¶øÉè¼ÆµÄ¡£

GPU¼ÆËãÄÜÁ¦·Ç³£Ç¿º·£¬¾Ù¸öÀý×Ó£ºÏÖÔÚÖ÷Á÷µÄi7´¦ÀíÆ÷µÄ¸¡µã¼ÆËãÄÜÁ¦ÊÇÖ÷Á÷µÄӢΰ´ïGPU´¦ÀíÆ÷¸¡µã¼ÆËãÄÜÁ¦µÄ1/12¡£

ͼ1 ÏÔ¿¨ÓëGPU

2 ΪʲôGPU¼ÆËãÄÜÁ¦Èç´ËÇ¿º·£¿

ͼ2¶ÔCPUÓëGPUÖеÄÂß¼­¼Ü¹¹½øÐÐÁ˶Աȡ£ÆäÖÐControlÊÇ¿ØÖÆÆ÷¡¢ALUËãÊõÂß¼­µ¥Ôª¡¢CacheÊÇcpuÄÚ²¿»º´æ¡¢DRAM¾ÍÊÇÄÚ´æ¡£¿ÉÒÔ¿´µ½GPUÉè¼ÆÕß½«¸ü¶àµÄ¾§Ìå¹ÜÓÃ×÷Ö´Ðе¥Ôª£¬¶ø²»ÊÇÏñCPUÄÇÑùÓÃ×÷¸´ÔӵĿØÖƵ¥ÔªºÍ»º´æ¡£´Óʵ¼ÊÀ´¿´£¬CPUоƬ¿Õ¼äµÄ5%ÊÇALU£¬¶øGPU¿Õ¼äµÄ40%ÊÇALU¡£ÕâÒ²Êǵ¼ÖÂGPU¼ÆËãÄÜÁ¦³¬Ç¿µÄÔ­Òò¡£

ͼ2 cpuºÍgpuÓ²¼þÂß¼­½á¹¹¶Ô±È

ÄÇÓÐÈ˽²ÁË£¬ÎªÊ²Ã´cpu²»ÏñgpuÄÇÑùÉè¼ÆÄØ£¬ÕâÑù¼ÆËãÄÜÁ¦Ò²Ç¿º·ÁË£¡

Ϊʲô£¿CPUÒª×öµÃºÜͨÓá£CPUÐèҪͬʱºÜºÃµÄÖ§³Ö²¢Ðкʹ®ÐвÙ×÷£¬ÐèÒªºÜÇ¿µÄͨÓÃÐÔÀ´´¦Àí¸÷ÖÖ²»Í¬µÄÊý¾ÝÀàÐÍ£¬Í¬Ê±ÓÖÒªÖ§³Ö¸´ÔÓͨÓõÄÂß¼­Åжϣ¬ÕâÑù»áÒýÈë´óÁ¿µÄ·ÖÖ§Ìø×ªºÍÖжϵĴ¦Àí¡£ÕâЩ¶¼Ê¹µÃCPUµÄÄÚ²¿½á¹¹Òì³£¸´ÔÓ£¬¼ÆËãµ¥ÔªµÄ±ÈÖØ±»½µµÍÁË¡£¶øGPUÃæ¶ÔµÄÔòÊÇÀàÐ͸߶ÈͳһµÄ¡¢Ï໥ÎÞÒÀÀµµÄ´ó¹æÄ£Êý¾ÝºÍ²»ÐèÒª±»´ò¶ÏµÄ´¿¾»µÄ¼ÆËã»·¾³¡£Òò´ËGPUµÄоƬ±ÈCPUоƬ¼òµ¥ºÜ¶à¡£

¾Ù¸öÀý×Ó£¬¼ÙÉèÓÐÒ»¶ÑÏàͬµÄ¼Ó¼õ³Ë³ý¼ÆËãÈÎÎñÐèÒª´¦Àí£¬ÄǰÑÕâ¸öÈÎÎñ½»¸øÒ»¶Ñ£¨¼¸Ê®¸ö£©Ð¡Ñ§Éú¾Í¿ÉÒÔÁË£¬ÕâÀïСѧÉúÀàËÆÓÚGPUµÄ¼ÆËãµ¥Ôª£¬¶ø¶ÔһЩ¸´ÔÓµÄÂß¼­ÍÆÀíµÈÎÊÌ⣬±ÈÈç¹«Ê½ÍÆµ¼¡¢¿Æ¼¼ÎÄÕÂд×÷µÈ¸ß¶ÈÂß¼­»¯µÄÈÎÎñ£¬½»¸øÐ¡Ñ§ÉúÏÔÈ»²»ºÏÊÊ£¬Õâʱ´óѧ½ÌÊÚ¸üÊʺϣ¬ÕâÀïµÄ´óѧ½ÌÊÚ¾ÍÊÇCPUµÄ¼ÆËãµ¥ÔªÁË£¬´óѧ½ÌÊÚµ±È»ÄÜ´¦Àí¼Ó¼õ³Ë³ýµÄÎÊÌ⣬µ¥¸ö½ÌÊÚ¼ÆËã¼Ó¼õ³Ë³ý±Èµ¥¸öСѧÉú¼ÆËãËٶȸü¿ì£¬µ«Êdzɱ¾ÏÔÈ»¸ßºÜ¶à¡£

3 GPU±à³Ì¿â

GPU¼ÆËãÄÜÁ¦Õâôǿ£¬±»¹ã·ºÊ¹Ó㡱ÈÈçÍڿ󣨱ÈÌØ±Ò£©¡¢Í¼ÐÎͼÏñ´¦Àí¡¢ÊýֵģÄâ¡¢»úÆ÷ѧϰË㷨ѵÁ·µÈµÈ£¬ÄÇÎÒÃÇÔõô·¢»ÓGPU³¬Ç¿µÄ¼ÆËãÄÜÁ¦ÄØ£¿---±à³Ì£¡

Ôõô½øÐÐGPU±à³ÌÄØ£¿ÏÖÔÚGPUÐÎÐÎɫɫ£¬±ÈÈçNvidia¡¢AMD¡¢Intel¶¼ÍƳöÁË×Ô¼ºµÄGPU£¬ÆäÖÐ×îΪÁ÷ÐеľÍÊÇNvidiaµÄGPU£¬Æä»¹ÍƳöÁËCUDA²¢Ðбà³Ì¿â¡£È»¶øÃ¿¸öGPUÉú²ú¹«Ë¾¶¼ÍƳö×Ô¼ºµÄ±à³Ì¿âÏÔÈ»ÈÃѧϰ³É±¾ÉÏÉýºÜ¶à£¬Òò´ËÆ»¹û¹«Ë¾¾ÍÍÆ³öÁ˱ê×¼OpenCL£¬Ëµ¸÷¸öÉú²úÉ̶¼Ö§³ÖÎҵıê×¼£¬Ö»ÒªÓÐÒ»Ì×OpenCLµÄ±à³Ì¿â¾ÍÄܶԸ÷ÀàÐ͵ÄGPUоƬÊÊÓᣵ±È»ÁË£¬OpenCL×öµ½Í¨Óò»ÊÇûÓдú¼ÛµÄ£¬»á´øÀ´Ò»¶¨³Ì¶ÈµÄÐÔÄÜËðʧ£¬ÔÚNvidiaµÄGPUÉÏ£¬CUDAÐÔÄÜÃ÷ÏÔ±ÈOpenCL¸ß³öÒ»´ó½Ø¡£Ä¿Ç°CUDAºÍOpenCLÊÇ×îÖ÷Á÷µÄÁ½¸öGPU±à³Ì¿â¡£

´Ó±à³ÌÓïÑԽǶȿ´£¬CUDAºÍOpenCL¶¼ÊÇÔ­ÉúÖ§³ÖC/C++µÄ£¬ÆäËüÓïÑÔÏëÒª·ÃÎÊ»¹ÓÐЩÂé·³£¬±ÈÈçJava£¬ÐèҪͨ¹ýJNIÀ´·ÃÎÊCUDA»òÕßOpenCL¡£»ùÓÚJNI£¬ÏÖ½ñÓи÷ÖÖJava°æ±¾µÄGPU±à³Ì¿â£¬±ÈÈçJCUDAµÈ¡£ÁíÒ»ÖÖ˼·¾ÍÊÇÓïÑÔ»¹ÊÇÓÉjavaÀ´±àд£¬Í¨¹ýÒ»ÖÖ¹¤¾ß½«javaת»»³ÉC¡£

ͼ3 GPU±à³Ì¿â

LWJGL

JOCL

JCUDA

Aparapi

JavaCL

4 CUDA³ÌÐòÁ÷³Ì

ͼ4 CUDA³ÌÐòÁ÷³Ì

5 ʵ¼ù---ÒÔͼÏñ´¦ÀíΪÀý

¼ÙÉèÎÒÃÇÓÐÈçÏÂͼÏñ´¦ÀíÈÎÎñ£¬¸øÃ¿¸öÏñËØÖµ¼Ó1¡£²¢Ðз½Ê½ºÜ¼òµ¥£¬ÎªÃ¿¸öÏñËØ¿ªÒ»¸öGPUỊ̈߳¬ÓÉÆä½øÐмÓ1²Ù×÷¡£

ͼ5 Àý×Ó

ͼ6 ºËº¯Êý

ͼ7 Ö÷Á÷³Ìº¯Êý

6 GPU¼ÓËÙЧ¹û

ÏÂͼÊÇÎÒʵÏֵĻùÓÚCUDAµÄP&D DEMͼÏñÔ¤´¦ÀíË㷨ʹÓÃGPUµÄ¼ÓËÙЧ¹û£¬GeForce GT 330ÊÇ¿éÆǪ̃ͨʽ»úÉϵÄÏÔ¿¨£¬ÏÖÔÚ¼Û¸ñÒ²¾Í500ÈËÃñ±Ò×óÓÒ£¬ÓÃËü´ïµ½ÁË20±¶µÄ¼ÓËٱȣ¬Tesla M2075ÊDZȽÏרҵµÄÏÔ¿¨£¬¼Û¸ñÒ»Íò×óÓÒ£¬ÓÃËü´ïµ½Á˽«½ü°Ù±¶µÄ¼ÓËٱȣ¬Õâ¸ö³ÌÐòi7 CPUµ¥½ø³Ìµ¥Ïß³ÌÒªÅÜ2¸öСʱ£¬¶øÓÃTesla M2075 GPUÖ»»¨ÁËÒ»·Ö¶àÖÓ¾ÍÍê³É¼ÆËã¡£

ͼ8 P&D DEMͼÏñÔ¤´¦ÀíËã·¨¼ÓËÙЧ¹û

GPUÓ¢ÎÄÈ«³ÆGraphic Processing Unit£¬ÖÐÎÄ·­ÒëΪ¡°Í¼Ðδ¦ÀíÆ÷¡±¡£

ÓÉÓÚGPU¾ßÓи߲¢Ðнṹ£¨highly parallel structure£©£¬ËùÒÔGPUÔÚ´¦ÀíͼÐÎÊý¾ÝºÍ¸´ÔÓËã·¨·½ÃæÓµÓбÈCPU¸ü¸ßµÄЧÂÊ¡£Í¼1 GPU VS CPUչʾÁËGPUºÍCPUÔڽṹÉϵIJîÒ죬CPU´ó²¿·ÖÃæ»ýΪ¿ØÖÆÆ÷ºÍ¼Ä´æÆ÷£¬ÓëÖ®Ïà±È£¬GPUÓµÓиü¶àµÄALU£¨Arithmetic Logic Unit£¬Âß¼­ÔËËãµ¥Ôª£©ÓÃÓÚ Êý¾Ý´¦Àí£¬¶ø·ÇÊý¾Ý¸ßËÙ»º´æºÍÁ÷¿ØÖÆ£¬ÕâÑùµÄ½á¹¹Êʺ϶ÔÃܼ¯ÐÍÊý¾Ý½øÐв¢Ðд¦Àí¡£CPUÖ´ÐмÆËãÈÎÎñʱ£¬Ò»¸öʱ¿ÌÖ»´¦ÀíÒ»¸öÊý¾Ý£¬²»´æÔÚÕæÕýÒâÒåÉϵIJ¢ÐУ¬¶øGPU¾ßÓжà¸ö´¦ÀíÆ÷ºË£¬ÔÚÒ»¸öʱ¿Ì¿ÉÒÔ²¢Ðд¦Àí¶à¸öÊý¾Ý¡£

GPU²ÉÓÃÁ÷ʽ²¢ÐмÆËãģʽ£¬¿É¶Ôÿ¸öÊý¾Ý½øÐжÀÁ¢µÄ²¢ÐмÆË㣬Ëùν¡°¶ÔÊý¾Ý½øÐжÀÁ¢¼ÆË㡱£¬¼´£¬Á÷ÄÚÈÎÒâÔªËØµÄ¼ÆËã²»ÒÀÀµÓÚÆäËüͬÀàÐÍÊý¾Ý£¬ÀýÈ磬¼ÆËãÒ»¸ö¶¥µãµÄÊÀ½çλÖÃ×ø±ê£¬²»ÒÀÀµÓÚÆäËû¶¥µãµÄλÖ᣶øËùν¡°²¢ÐмÆË㡱ÊÇÖ¸¡°¶à¸öÊý¾Ý¿ÉÒÔͬʱ±»Ê¹Ó㬶à¸öÊý¾Ý²¢ÐÐÔËËãµÄʱ¼äºÍ1¸öÊý¾Ýµ¥¶ÀÖ´ÐеÄʱ¼äÊÇÒ»ÑùµÄ¡±¡£

ͼ2 GPUÉϵľØÕó¼Ó·¨

ͼ3 GPUäÖȾ¹ÜÏß

ÉÏͼ3ÊÇÒ»ÕŵäÐ͵Ŀɱà³ÌGPUµÄÁ÷Ë®ÏßʾÒâͼ£¬ÆäÖпɱà³ÌµÄ¶¥µã´¦ÀíÆ÷(Vertex Shader)¸ºÔð´¦Àí¶¥µãÊý¾ÝÁ÷(°üÀ¨Î»Öá¢ÑÕÉ«£¬¹âÕÕµÈ)¡£ÒòΪ¶¥µã´¦Àí²Ù×÷¶¼ÊÇÔÚ¿Õ¼äµÄ¼¸ºÎµãÉϽøÐУ¬Òò´ËVertex Shader¶ÔÓÚͨÓüÆËã¶øÑԷdz£ÊʺÏÓÚ¼¸ºÎ²Ù×÷ÀàµÄ¼ÆËã¡£¿É±à³ÌƬ¶Î×ÅÉ«Æ÷(Fragment Processor)ÔÚ¼¸ºÎ´¦ÀíºÍת»»Íê³Éºó£¬¸ºÔðΪÿ¸öÏóËØ¡°»­¡±ÉÏÕýÈ·µÄÉ«²Ê£¬ËüµÄISA(ϵͳÌåϵ½á¹¹)ÀàËÆÓÚDSP»òSSEÖ¸Á£¬ÓÉFolat4µÄSIMDÖ´Ðе¥ÔªºÍ¼Ä´æÆ÷×é³É£¬´¦ÀíµÄʱºò½ÓÊÜÏÈ´Ó´æ´¢Æ÷ÖÐÈ¡³ö2¸ö´ý¼ÓÔªËØ£¬¸ù¾ÝƬ¶ÎµÄλÖýøÐÐÏòÁ¿Ïà¼Ó£¬ÏòÁ¿ºÍÒÔÑÕÉ«µÄÐÎʽ±»±£´æµ½´æ´¢Æ÷ÖУ¬¿ÉÒÔµ±×÷½á¹ûÊä³ö»òÔÚÏÂÒ»²½ÔËËãÖÐÖ±½Ó±»Ê¹Óᣴ¦ÀíµÄÒ»°ãΪ4¸öµ¥ÔªµÄÏòÁ¿£¬ÒòΪRGBÈýÖÖÉ«²Ê¼ÓÉÏAlphaͨµÀÊý¾ÝÕýºÃÊÇ4¡£Æ¬¶Î×ÅÉ«Æ÷°üº¬µÄTMU(Texture Mapping Unit)µ¥ÔªÄÜÒÔÌùͼµÄÐÎʽ´æÈ¡ÏԴ棬Òò´Ë¿ÉÒÔ±»¿´×÷Ò»¸öÖ»¶Á´æÈ¡½çÃæ¡£

²¹³ä£ºÏÂÃæÎªÎÒ¿´µ½µÄÎÄÕÂÖÐдµÄ¡£¡£ÏȼǼÏÂ

ÏñËØ×ÅÉ«Æ÷¸ºÔðÎÆÀí²ÉÑùºÍÆäËü¸ß¼¶ÖðÏñËØ´¦Àí£¬ÔÚNVIDIA SDK 9.5 µÄʾÀý VideoFilter ÖУ¬ ÔËÓÃÏñËØ×ÅÉ«Æ÷µÄ²¢ÐмÆËãÄÜÁ¦¶ÔÊÓÆµ½øÐжàÖָ߼¶Í¼Ïñ´¦Àí¼¼Êõ¡£ ÖîÈ磺 Ä£ºý¡¢Èñ»¯¡¢ ÊÓÆµ»ìºÏµÈ.

Ïà¹ØÊµÏÖ²½ÖèÈçÏ£º

(1) ´´½¨ÊÓÆµÎÆÀí¹ÜÀí¶ÔÏó£»

(2) ÔØÈëÊÓÆµÎļþ£¬ DirectShow ¸ºÔð¹ÜÀíµ÷¶ÈÊÓÆµÊý¾Ý£»

(3) ¹ØÁª DirectShow ÊÓÆµÊý¾ÝÓë Direct3D ÎÆÀí¶ÔÏó£»

(4) GPU ³õʼ»¯£¬ ¹ØÁª CPU ¶¥µãÊý¾ÝÓë GPU Íⲿ±äÁ¿£¬ ÌØ±ðÊÇ DirectShow ´¦ÀíÍêµÄÖ¡Êý¾ÝÓë GPU ÖеÄÎÆÀíÊý¾Ý¹ØÁª£»

(5)¶¥µã×ÅÉ«Æ÷½øÐÐÎÆÀí×ø±êת»»ºÍÆäËü»ùÓÚ¶¥µãµÄ²¢ÐÐËã·¨£»

(6) ÏñËØ×ÅÉ«Æ÷½øÐÐÎÆÀí²ÉÑùÒÔ¼°ÆäËüÏóËØ¼¶²¢ÐÐËã·¨¡£

 
   
4718 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤