¼ÓÈëÊÕ²Ø | ÉèΪÊ×Ò³ | »áÔ±ÖÐÐÄ | ÎÒҪͶ¸å Æ´×ÖÍø - ºËÐÄÍø £¨https://www.hexinwang.cn/£©- ¿Æ¼¼¡¢½¨Õ¾¡¢¾­Ñé¡¢ÔƼÆËã¡¢5G¡¢´óÊý¾Ý,Õ¾³¤Íø!
µ±Ç°Î»Ö㺠Ê×Ò³ > ×ۺϾ۽¹ > Òƶ¯»¥Áª > Ó¦Óà > ÕýÎÄ

ΪʲôҪʹÓÃFPGAÈ¡´úCPUºÍGPU£¿

·¢²¼Ê±¼ä£º2022-12-06 16:02:33 ËùÊôÀ¸Ä¿£ºÓ¦Óà À´Ô´£º»¥ÁªÍø
µ¼¶Á£º Èç¹ûÐèÒª¼ÆËãһЩÊý¾Ý£¬×î³£Óõķ½·¨ÊÇÕë¶Ô CPU »ò GPU ÕâÑù»ùÓÚÖ¸ÁîµÄ¼Ü¹¹±àд¼ÆËãËùÐèµÄÈí¼þ¡£»òÕß²ÉÈ¡Ò»ÖÖ¸üÂé·³µÄ°ì·¨£¬×¨ÃÅÕë¶ÔÌض¨µÄ¼ÆËãÐèÇóÉè¼Æ³öÒ»Ì×רÓõç·£¬¶ø·ÇÃæÏò CPU ºÍ G

Èç¹ûÐèÒª¼ÆËãһЩÊý¾Ý£¬×î³£Óõķ½·¨ÊÇÕë¶Ô CPU »ò GPU ÕâÑù»ùÓÚÖ¸ÁîµÄ¼Ü¹¹±àд¼ÆËãËùÐèµÄÈí¼þ¡£»òÕß²ÉÈ¡Ò»ÖÖ¸üÂé·³µÄ°ì·¨£¬×¨ÃÅÕë¶ÔÌض¨µÄ¼ÆËãÐèÇóÉè¼Æ³öÒ»Ì×רÓõç·£¬¶ø·ÇÃæÏò CPU ºÍ GPU ÕâÑùµÄͨÓõç·±àдָÁî¡£

ÔÚÉè¼Æ³ö×Ô¼ºµÄµç·ºó£¬»¹ÒªÉ跨ʵÏÖËùÐèÉè¼Æ£¬ÒÔ±ãÕæÕý¿ªÊ¼¼ÆËã¡£´Ëʱ¿ÉÒÔ¿¼ÂǵÄÒ»ÖÖ·½Ê½£¬ÐèÒª·Ç³£ÉîºñµÄ¼¼ÊõÄÜÁ¦£¬ÄãÐèÒªÕæÕý´´½¨³öÄÜʵÏÖËùÐèÉè¼ÆµÄµç·£¨ÕâÖÖ·½Ê½Ò²½Ð×ö ASIC£¬¼´×¨Óü¯³Éµç·£©¡£

µ«´Ëʱ»¹ÓÐÒ»ÖÖ¸ü¼òµ¥µÄ·½·¨£¬ÕâÒ²ÊDZ¾ÎĵÄÖص㣺ʹÓÃÏÖ³¡¿É±à³ÌÃÅÕóÁУ¨Field Programmable Gate Array£¬FPGA£©ÕâÖÖ¿ÉÖع¹µÄ¼¯³Éµç·À´ÊµÏÖ×Ô¼ºµÄµç·Éè¼Æ¡£ÎÒÃÇ¿ÉÒÔ½« FPGA ÅäÖÃΪ×Ô¼ºÐèÒªµÄÈκεç·£¨Ö»Òª FPGA Äܹ»ÈÝÄÉÏ£©¡£ÕâÓëºÜ¶à³ÌÐòÔ±ÒѾ­ÊìϤµÄ£¬»ùÓÚ CPU¡¢GPU Ö¸ÁîµÄÓ²¼þ±à³Ì·½Ê½ÓÐןܴó²îÒì¡£»ùÓÚÖ¸ÁîµÄÓ²¼þÊÇͨ¹ýÈí¼þÅäÖõģ¬¶ø FPGA ÊÇͨ¹ýÖ¸¶¨ËùÐèÓ²¼þµç·ÅäÖõġ£

FPGA µÄÓÅÁÓ

ΪºÎÒªÓà FPGA À´Íê³É¼ÆËãÈÎÎñ£¬¶ø·ÇÑ¡Ôñ¸üͨÓÃµÄ CPU »ò GPU£¿ÕâÖÖ·½Ê½Óë CPU ºÍ GPU µÄ²îÒìÖ÷ÒªÌåÏÖÔÚÏÂÁм¸·½Ã棺

ÏÂÎĽ«ÉîÈë̽ÌÖÉÏÊöÕ⼸¸ö²îÒì¡£

µÍÑÓ³Ù

Èç¹ûÐèҪΪÅçÆøʽս¶·»úµÄÎÞÈ˼ÝÊ»¹¦ÄܼÆËãÊý¾Ý£¬»ò¿ª·¢¸ßƵËã·¨½»Ò×ÒýÇ棬µÍÑӳٿ϶¨ÊDZØÐëµÄ£¬´ËʱÐèÒªÈÃÊäÈëÊý¾ÝºÍµÃ³ö½á¹ûÖ®¼äµÄµÈ´ýʱ¼ä¾¡¿ÉÄ̡ܶ£ÕâЩÁìÓòÖÐ FPGA ԶԶʤ¹ý CPU£¨»ò GPU£¬ÒòΪ GPU Ò²ÐèҪͨ¹ý CPU ½øÐÐͨÐÅ£©¡£

FPGA ºÜÈÝÒ׿ÉÒÔʵÏÖ 1 ºÁÃë×óÓÒ£¬ÉõÖÁµÍÓÚ 1 ºÁÃëµÄÑÓ³Ù£¬¶ø¾ÍËã±íÏÖ×îºÃµÄ CPU£¬ÆäÑÓ³Ùͨ³£Ò²ÔÚ 50 ºÁÃë×óÓÒ¡£¸üÖØÒªµÄÊÇ£¬FPGA µÄÑÓ³ÙÍùÍùÊÇÈ·¶¨µÄ¡£ÄÜʵÏÖÈç´ËµÍµÄÑÓ³Ù£¬Ö÷ÒªÔ­ÒòÖ®Ò»ÔÚÓÚ FPGA ͨ³£×¨ÓÃÐÔ¸üÇ¿£ºÎÞÐèÒÀÀµÍ¨ÓòÙ×÷ϵͳ£¬Ò²ÎÞÐèͨ¹ýͨÓÃ×ÜÏߣ¨ÀýÈç USB »ò PCIe£©Í¨ÐÅ¡£

ʲôÊÇcpu¿¨ cpu¿¨ºÍm1µÄ°²È«ÐԱȽÏ_cpuÓ¦ÓÃ_Ôõô¿´cpuζȺÍcpu·çÉÈתËÙ

£¨Ò²Ðí£©ÕýÔÚÌìÉÏ·ÉÏèµÄ FPGA

Á¬½ÓÐÔ

ÎÒÃÇ¿ÉÒÔ½èÖú FPGA ½«ÈκÎÊý¾ÝÔ´cpuÓ¦Óã¬ÀýÈçÍøÂç½Ó¿Ú»ò´«¸ÐÆ÷Ö±½ÓÁ¬½Óµ½Ð¾Æ¬¡£¶ø CPU ºÍ GPU µÄ×ö·¨Óë´Ë´óΪ²»Í¬£¬ËüÃDZØÐëͨ¹ý±ê×¼»¯×ÜÏߣ¨Èç USB »ò PCIe£©ÓëÊý¾ÝÔ´½¨Á¢Á¬½Ó£¬²¢ÒÀÀµ²Ù×÷ϵͳÏòÓ¦ÓóÌÐòÌṩÊý¾Ý¡£ÓëоƬֱ½ÓÁ¬½Ó¿É»ñµÃ¸ü¸ß´ø¿í£¨ÒÔ¼°¸üµÍÑÓ³Ù£©¡£

ÓÐЩ³¡ºÏÖУ¬ÕâÑùµÄ¸ß´ø¿íÊDZز»¿ÉÉٵģ¬ÀýÈç LOFAR ºÍ SKA ÕâÑùµÄÉäµçÌìÎÄѧӦÓóÌÐò¡£´ËÀàÓ¦Óó¡¾°ÐèÒªÔÚÏÖ³¡²¿Êð´óÁ¿×¨Óô«¸ÐÆ÷£¬²¢²úÉúº£Á¿Êý¾Ý¡£µ«ÎªÁËÌá¸ßÕû¸öϵͳµÄ¿É¹ÜÀíÐÔ£¬±ØÐë´ó·ù¼õÉÙ´«¸ÐÆ÷Éú³ÉµÄÊý¾ÝÁ¿£¬Ëæºó´«µÝ¸øÓ¦ÓóÌÐò½øÐд¦Àí¡£Òò´ËºÉÀ¼ÉäµçÌìÎÄÑо¿Ëù ASTRON Éè¼ÆÁË Uniboard?£¬ÕâÊÇÒ»ÖÖ°üº¬ËÄ¿é FPGA оƬµÄ»ù°å£¬ÆäÿÃë¿É´¦ÀíµÄÊý¾ÝÁ¿ÉõÖÁ³¬¹ýÁËλÓÚ°¢Ä·Ë¹Ìص¤µÄ»¥ÁªÍø½»»»ÖÐÐÄ£¡

cpuÓ¦ÓÃ_Ôõô¿´cpuζȺÍcpu·çÉÈתËÙ_ʲôÊÇcpu¿¨ cpu¿¨ºÍm1µÄ°²È«ÐԱȽÏ

ÕâЩ¿´ËÆСÇɵÄÉäµçÌìÏß»áÉú³Éº£Á¿Êý¾Ý¡££¨Í¼Ô´£ºSvenlafe£¬en.wikipedia£©

¹¤³Ì³É±¾

ÔÚÉîÈëÌÖÂÛÄÜЧÎÊÌâÇ°£¬ÏÈÀ´¿´¿´ FPGA Ò»¸ö×î´óµÄÁÓÊÆ£ºÏà±È»ùÓÚÖ¸ÁîµÄ¼Ü¹¹£¨Èç CPU ºÍ GPU£©£¬ËüÃǵıà³Ì / ÅäÖù¤×÷ʵÔÚÊÇÌ«ÄÑÁË£¡Ò»°ãÀ´Ëµ£¬ÕâЩӲ¼þµç·ÊÇͨ¹ýÓ²¼þÃèÊöÓïÑÔ£¨Hardware Description Languages£¬HDL£©ÃèÊöµÄ£¬Èç VHDL ºÍ Verilog£¬¶øÈí¼þÔò¿Éͨ¹ý¸÷ÖÖ±à³ÌÓïÑÔ£¬ÀýÈç Java¡¢C ºÍ Python ±à³Ì¶øÀ´¡£

´ÓÀíÂ۽ǶÈÀ´¿´£¬Ó²¼þÃèÊöÓïÑԺͱà³ÌÓïÑÔ¶¼¿ÉÓÃÓÚ±í´ïÈκμÆË㣨ÕâÁ½Õ߶¼ÊÇͼÁéÍ걸µÄ£©£¬µ«¹¤³Ì·½ÃæµÄϸ½ÚÈ´´æÔÚ¼«´ó²îÒì¡£

¸ÃÁìÓòÄ¿Ç°ÓÐÒ»¸öÐÂÇ÷ÊÆ£º¸ß¼¶ºÏ³É£¨High Level Synthesis£¬HLS£©£¬ÕâÊÇָʹÓÃÖîÈç OpenCL »ò C++ µÈ³£¹æ±à³ÌÓïÑÔΪ FPGA ±à³Ì£¬½è´ËÒ²¿ÉʵÏÖ¸ü¸ß¼¶µÄ³éÏó¡£È»¶ø¾ÍËãʹÓôËÀà±à³ÌÓïÑÔ£¬FPGA ±à³ÌµÄÀ§Äѳ̶ÈÒÀȻҪ±ÈΪ»ùÓÚÖ¸ÁîµÄϵͳ±à³Ì¸ß³öÒ»¸öÊýÁ¿¼¶¡£

FPGA ±à³Ì×îÀ§ÄѵIJ¿·ÖÔÚÓÚÂþ³¤µÄ±àÒë¹ý³Ì¡£ÀýÈçÔÚʹÓÃÓ¢Ìضû OpenCL ±àÒëÆ÷µÄÇé¿öÏ£¬µäÐ굀 FPGA ³ÌÐò±àÒëͨ³£ÐèÒª 4-12 Сʱ£¬ÕâÊÇÒòΪҪ½øÐз±ËöµÄ¡°²¼¾ÖºÍ²¼Ïߣ¨Place-and-route£©¡±²Ù×÷£¬½«ÎÒÃÇÐèÒªµÄ×Ô¶¨Òåµç·ӳÉäµ½ FPGA ×ÊÔ´£¬Í¬Ê±È·±£ÒÔ¾¡¿ÉÄ̵ܶÄ·¾¶ÊµÏÖËùÐè½á¹û¡£ÕâÊÇÒ»Öַdz£¸´ÔÓµÄÓÅ»¯ÎÊÌ⣬Õû¸ö¹ý³ÌÐèҪͶÈë¾Þ´óµÄÔËËãÄÜÁ¦¡£ËäȻӢÌضûÌṩÁËÒ»ÖÖ·ÂÕæÆ÷£¬ÈÃÎÒÃÇ¿ÉÒÔÓý϶Ìʱ¼ä²âÊÔ×îÖÕ½á¹ûµÄÕýÈ·ÐÔ£¬µ«È·¶¨²¢ÓÅ»¯ÐÔÄܵĹý³ÌÒÀȻҪ¾­ÀúÈß³¤µÄ±àÒë¹ý³Ì¡£

ʲôÊÇcpu¿¨ cpu¿¨ºÍm1µÄ°²È«ÐԱȽÏ_Ôõô¿´cpuζȺÍcpu·çÉÈתËÙ_cpuÓ¦ÓÃ

±àÒë¹ý³ÌΪÄãµÄ͵ÀÁÌṩÁËÒ»¸öºÃ½è¿Ú£¨Í¼Ô´£ºXKCD£©¡£

ÄÜЧ

ÔÚ¶ÔÍâ½»Á÷ÖУ¬Ó¢ÌضûʼÖÕ½«ÄÜЧÊÓ×÷ FPGA µÄÒ»´óÏÔÖøÓÅÊÆ¡£È»¶øʵ¼ÊÇé¿ö²¢²»ÄÇôÃ÷ÏÔ£¬¸¡µã¼ÆËã·½ÃæÓÈÆäÈç´Ë¡£²»¹ýÎÒÃÇÊ×ÏÈ»¹ÊÇÀ´¿´¿´ FPGA ÔÚÄÜЧ·½ÃæԶԶʤ¹ý CPU ºÍ GPU µÄÓ¦Óó¡¾°¡£

FPGA µÄ¸ßÄÜЧÖ÷ÒªÌåÏÖÔÚÂß¼­¼ÆËãºÍ¹Ì¶¨¾«¶È¼ÆËãÁìÓò£¨¶ø·Ç¸¡µã¼ÆËãÁìÓò£©¡£ÔÚÃÜÂëѧ»õ±Ò£¨Èç±ÈÌرң©ÍÚ¿ó·½Ã棬ÕâÒ»ÌصãÈà FPGA ³ÊÏÖ³ö¾Þ´óÓÅÊÆ¡£Ê±ÖÁ½ñÈÕ£¬¼¸ºõÿ¸öÈ˶¼ÒѾ­Ï°¹ßÓÚͨ¹ý FPGA ÍÚ¿óÁË¡£

˳´øÒ»ÌᣬĿǰ¼¸ºõËùÓÐÈËÔÚÍÚ¿óʱ¶¼»áʹÓà ASIC£¨×¨Óü¯³Éµç·£©£¬Õâ¾ÍÊÇÒ»ÖÖÕë¶ÔijÖÖ¾ßÌåÓ¦ÓÃרÃÅÉè¼ÆµÄÌØÊ⼯³Éµç·¡£ASIC ÊÇÒ»ÖÖÄÜЧ¸ü¸ßµÄ½â¾ö·½°¸£¬µ«Ç°ÆÚÐèÒª¸¶³ö¸ü¶àͶ×ÊÀ´Éè¼ÆоƬ£¬Í¬Ê±Ð¾Æ¬µÄ²úÁ¿±ØÐë×ã¹»´ó²ÅÄÜ·Ö̯¸ß°º³É±¾¡£½Ó×Å»¹ÊǼÌÐø˵»Ø FPGA °É¡£

ʲôÊÇcpu¿¨ cpu¿¨ºÍm1µÄ°²È«ÐԱȽÏ_Ôõô¿´cpuζȺÍcpu·çÉÈתËÙ_cpuÓ¦ÓÃ

FPGA ÔÚÄÜЧ·½ÃæµÄÁíÒ»¸öÓÅÊÆÔÚÓÚ£¬FPGA »ù°åÎÞÐèÖ÷»ú¼´¿ÉÖ±½ÓͨµçÔËÐУ¬ËüÓÐ×Ô¼ºµÄÊäÈë / Êä³ö£¬Òò´Ë»¹¿ÉÒÔÔÚÖ÷»ú·½Ãæ½ÚÔ¼ÄܺĺÍ×ʽð¡£ÕâÒ»µãÓë GPU ¼ÆËãÍêÈ«²»Í¬£¬GPU ÐèÒª½èÖú PCIe »ò NVLink ÓëÖ÷»úϵͳͨÐÅ£¬Òò´Ë±ØÐë×°ÔÚÖ÷»úÖз½ÄÜÔËÐС££¨²»¹ýÒ²ÓÐÒ»¸öÀýÍ⣬NVidia Jetson ÎÞÐèÖ÷»ú¼´¿ÉÔËÐУ¬µ«Õâ²¢²»ÊÇʲô¸ß¶Ë GPU¡££©

¸¡µãÔËËãÄÜЧ¡ª¡ªFPGAvsGPU

ÖîÈçÉî¶ÈѧϰµÈºÜ¶à¸ßÐÔÄܼÆËãÓÃÀýÖУ¬Í¨³£ÐèÒªÒÀÀµ¸¡µãËã·¨£¬ÕâÊÇ GPU ×îÉó¤µÄÁìÓòÖ®Ò»¡£ÒÔÇ°£¬FPGA ¸¡µãÔËËãЧÄܷdz£µÍ£¬ÒòΪ±ØÐëͨ¹ýÂß¼­¿é×é×°¸¡µãµ¥Ôª£¬ÕâÒ»¹ý³Ì»áºÄ·Ñ´óÁ¿×ÊÔ´¡£

һЩÐÂÐÍ FPGA£¬ÀýÈç Arria 10 ºÍ Stratix 10 ÔÚ FPGA ¹¹ÔìÖÐÖ±½ÓÄÚÖÃÁ˸¡µãµ¥Ôª£¬¸¡µãÔËËãÄÜÁ¦ÓÐÁËÏÔÖøÌáÉý¡£¶îÍâÔö¼ÓµÄ¸¡µãÔËËãµ¥ÔªÊÇ·ñ¿ÉÒÔ¸ÄÉÆ FPGA µÄ¸¡µã¼ÆËãÄÜЧ£¿ÊÇ·ñÄÜ±È GPU ÄÜЧ¸ü¸ß£¿

ÄÇÎÒÃǾÍÓÃ×îÏȽøµÄ GPU ºÍ FPGA ¶Ô±È¿´¿´°É¡£Ä¿Ç°ÊÐÃæÉÏ×îÏȽøµÄרҵ¼¶ GPU ¾ÍÊÇ Tesla V100 ÁË£¬ÀíÂÛÉÏ×î´óÔËËãËٶȿɴï 15 TFLOPS£¨ÍòÒڴθ¡µãÔËËã / Ã룬һÖÖºâÁ¿¸¡µãÔËËãÄÜÁ¦µÄ±ê×¼µ¥Î»£©£¬¸Ã GPU ¹¦ºÄÔ¼ 250 ÍßÌØ¡£¶øÄ¿Ç°ÊÐÃæÉÏ×îÏȽøµÄ FPGA Ó¦¸ÃÊÇ Nallatech 520C£¬ÆäÖдîÔØÁË Altera/ Ó¢ÌضûÁªºÏÑз¢µÄ Statix 10 оƬ£¬¸Ã»ù°åµÄÀíÂÛ×î´óÔËËãËÙ¶ÈΪ 9.2 TFLOPS£¬¹¦ºÄԼΪ 225 ÍßÌØ¡£

Èç¹û´ÓÄÜЧ½Ç¶È¶Ô±ÈÕâÁ½¸öÉ豸£¬GPU µÄÄÜЧÎÞÒɸü¸ß£¬ÀíÂÛÉÏ¿ÉʵÏÖ 56 GFLOP/W£¨Ê®Òڴθ¡µãÔËËã / ÍßÌØ£¬ÕâÊÇÒ»ÖÖºâÁ¿¸¡µãÔËËãÄÜЧµÄ±ê×¼µ¥Î»£©£¬¶ø FPGA ½öΪ 40.9 GFLOP/W¡£Òò´ËÈç¹ûÄãÄ¿Ç°¾ÍÐèÒª¹ºÂòеĸ¡µãÔËËãÓ²¼þÉ豸£¬²¢ÇÒÐèÒªÅäºÏÖ÷»úʹÓã¬GPU òËÆ»áÊǸüºÃµÄÑ¡Ôñ£¬ÖÁÉÙ´ÓÉÏÊöÕâÖֲִڵĶԱÈÖпÉÒԵóöÕâÑùµÄ½áÂÛ¡£

È»¶øÁ½ÕߵIJî¾à²¢²»´ó£¬²¢ÇÒºóÐø·¢²¼µÄпî FPGA£¬ÀýÈçÕâ¿é¼´½«·¢²¼µÄ»ùÓÚ Stratix 10 µÄ FPGA ÔÚ¸¡µãÔËËã·½ÃæºÜ¿ÉÄÜ»áʵÏÖ±È Volta£¨Òë×¢£ºTesla V100 µÄ¿ª·¢´úºÅ£©¸ü¸ßÄÜЧ¡£¸üÖØÒªµÄÊÇ£¬ÉÏÊö¶Ô±ÈÉæ¼°µÄÁ½ÖÖ²úÆ·±¾ÉíÒ²Óб¾ÖʲîÒ죬±Ï¾¹ Tesla V100 ʹÓÃÁË 12 ÄÉÃ×ÖƳ̣¬¶ø Stratix 10 ʹÓÃÁ˸ü¹ÅÀ쵀 14 ÄÉÃ×ÖƳ̡£

¸ù¾ÝÉÏÊö¶Ô±È£¬Èç¹ûÐèÒªÄÜЧ¸ü¸ßµÄ¸¡µãÔËËãÉ豸£¬ÄÇôÏֽ׶ÎÒÀÈ»ÓбØÒª¼ÌÐø¼á³ÖÑ¡Ôñ GPU£¬µ«Õâ¸ö¶Ô±È²¢²»ÄÜÖ¤Ã÷ GPU ÔÚ¸¡µãÔËËã·½ÃæÄÜЧʼÖÕ¸ü³öÉ«¡£¸¡µãÔËËãÄÜЧÕⳡսÒÛ£¬Ä¿Ç°µÄʤÕßÊÇ GPU£¬µ«²»¾ÃµÄ½«À´Õ½¹û¿ÉÄÜ»áÓÐËù±ä»¯¡£

ʲôÊÇcpu¿¨ cpu¿¨ºÍm1µÄ°²È«ÐԱȽÏ_cpuÓ¦ÓÃ_Ôõô¿´cpuζȺÍcpu·çÉÈתËÙ

£¨±à¼­£ºÆ´×ÖÍø - ºËÐÄÍø£©

¡¾ÉùÃ÷¡¿±¾Õ¾ÄÚÈݾùÀ´×ÔÍøÂ磬ÆäÏà¹ØÑÔÂÛ½ö´ú±í×÷Õ߸öÈ˹۵㣬²»´ú±í±¾Õ¾Á¢³¡¡£ÈôÎÞÒâÇÖ·¸µ½ÄúµÄȨÀû£¬Ç뼰ʱÓëÁªÏµÕ¾³¤É¾³ýÏà¹ØÄÚÈÝ!