¸¶ÀÌÅ©·ÎĨ, ¼Õ½¬¿î ÀúÀü·Â FPGA ½º¸¶Æ® ÀÓº£µðµå ºñÀü ¼Ö·ç¼Ç °³¹ßÀ» À§ÇÑ ¼ÒÇÁÆ®¿þ¾î °³¹ß Å°Æ® ¹× ½Å°æ¸Á IP Ãâ½Ã

¸Ó´ÏÅõµ¥ÀÌ ´õ¸®´õ Á¤¹Î±Ô ±âÀÚ ÀÔ·Â : 2020.05.21 15:38
ÀΰøÁö´É(AI), ¸Ó½Å·¯´×(ML) ¹× »ç¹°ÀÎÅͳÝ(IoT)ÀÇ µîÀå¿¡ µû¶ó ¾ÖÇø®ÄÉÀ̼ǵéÀº µ¥ÀÌÅ͸¦ ¼öÁýÇÏ´Â ³×Æ®¿öÅ© ¿§Áö·Î À̵¿ÇÏ°í ÀÖÀ¸¸ç, µû¶ó¼­ ´õ¿í ¼ÒÇüÈ­µÇ°í ¿­ Á¦ÇÑÀûÀÎ ÆûÆÑÅÍ¿¡¼­ º¸´Ù ¶Ù¾î³­ ÄÄÇ»Æà ¼º´ÉÀ» ±¸ÇöÇÏ°íÀÚ ¿ì¼öÇÑ Àü·Â È¿À²À» °®´Â ¼Ö·ç¼ÇÀÇ Çʿ伺ÀÌ ³ô¾ÆÁ³´Ù. 

¸¶ÀÌÅ©·ÎÄÁÆ®·Ñ·¯, È¥ÇÕ ½ÅÈ£, ¾Æ³¯·Î±× ¹ÝµµÃ¼ ¹× Ç÷¡½Ã-IP ¼Ö·ç¼Ç ºÐ¾ßÀÇ ¼¼°èÀûÀÎ ¸®´õÀÎ ¸¶ÀÌÅ©·ÎĨÅ×Å©³î·ÎÁö(ºÏ¾Æ½Ã¾Æ ÃÑ°ý ¹× Çѱ¹´ëÇ¥: ÇѺ´µ·)´Â ½º¸¶Æ® ÀÓº£µðµå ºñÀü À̴ϼÅƼºê¸¦ ÅëÇØ ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚ°¡ PolarFire¢ç FPGA¿¡¼­ ¾Ë°í¸®ÁòÀ» ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖµµ·Ï ÇÔÀ¸·Î½á, ¿§Áö ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ¿ì¼öÇÑ Àü·Â È¿À²Àû Ãß·Ð ±â´É¿¡ ´ëÇÑ ³ôÀº ¼ö¿ä¸¦ ÃæÁ·½ÃÅ°°í ÀÖ´Ù. 

ÇØ´ç ºÎ¹®ÀÇ ¼Ö·ç¼Ç Æ÷Æ®Æú¸®¿À¿¡ Ãß°¡µÈ ¸¶ÀÌÅ©·ÎĨÀÇ VectorBlox¢â Accelerator SDK(Software Development Kit)´Â °³¹ßÀÚ°¡ FPGA ÅøÀ» ÀÌ¿ëÇÑ °³¹ß ÇÁ·Î¼¼½º¸¦ ¸¹ÀÌ ¹è¿ìÁö ¾Ê°íµµ ¸¶ÀÌÅ©·ÎĨ PolarFire FPGA¸¦ È°¿ëÇÏ¿© ÀúÀü·ÂÀÇ À¯¿¬ÇÑ ¿À¹ö·¹ÀÌ ±â¹Ý ½Å°æ¸Á ¾ÖÇø®ÄÉÀ̼ÇÀ» »ý¼ºÇÒ ¼ö ÀÖµµ·Ï µµ¿òÀ» ÁØ´Ù.

FPGA´Â CPU³ª GPU ´ëºñ ´õ¿í ¿ì¼öÇÑ Àü·Â È¿À²¼ºÀ¸·Î ÃÊ´ç ±â°¡ ¿¬»ê(giga operations per second) À» ´õ ¸¹ÀÌ ¼öÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î Àü·Â Á¦¾àÀûÀÎ ÄÄÇ»Æà ȯ°æ¿¡¼­ÀÇ Ãß·Ð ±â´É µî ¿§Áö AI ¾ÖÇø®ÄÉÀ̼ǿ¡ ÀÌ»óÀûÀÌÁö¸¸, Àü¹®ÀûÀÎ Çϵå¿þ¾î ¼³°è ±â¼úÀ» ÇÊ¿ä·Î ÇÑ´Ù. 

¸¶ÀÌÅ©·ÎĨÀÇ VectorBlox Accelerator SDK´Â FPGA ¼³°è¿¡ ´ëÇÑ »çÀü °æÇè ¾øÀ̵µ C/C++·Î ÄÚµùÇÏ°í Àü·Â È¿À²ÀûÀÎ ½Å°æ¸ÁÀ» ÇÁ·Î±×·¡¹Ö ÇÒ ¼ö ÀÖµµ·Ï ¼³°èµÆ´Ù.


ÃÖ°í·Î À¯¿¬ÇÑ ÀÌ Åø Å°Æ®´Â TensorFlow ¹× ONNX(open neural network exchange) Æ÷¸ËÀ¸·Î ¸ðµ¨À» ½ÇÇàÇÏ¿© °¡Àå ±¤¹üÀ§ÇÑ ÇÁ·¹ÀÓ¿öÅ© »óÈ£¿î¿ë¼ºÀ» Á¦°øÇÑ´Ù. 

ONNX´Â Caffe2, MXNet, PyTorch ¹× MATLAB¢ç¿Í °°Àº ¿©·¯ ÇÁ·¹ÀÓ¿öÅ©¸¦ Áö¿øÇÑ´Ù. 

¸¶ÀÌÅ©·ÎĨÀÇ VectorBlox Accelerator SDK´Â ¿©Å¸ FPGA ¼Ö·ç¼Ç°ú´Â ´Þ¸® Linux¢ç¿Í Windows¢ç ¿î¿µ üÁ¦¿¡¼­ Áö¿øµÇ¸ç, ¼ÒÇÁÆ®¿þ¾î ȯ°æ¿¡¼­ Çϵå¿þ¾îÀÇ Á¤È®¼ºÀ» °ËÁõÇÏ´Â bit-accurate ½Ã¹Ä·¹ÀÌÅ͵µ Æ÷ÇÔÇÏ°í ÀÖ´Ù. 

Å°Æ®¿¡ Æ÷ÇÔµÈ ½Å°æ¸Á IP´Â ·±Å¸ÀÓ ¸ðµå¿¡¼­ ¼­·Î ´Ù¸¥ ³×Æ®¿öÅ© ¸ðµ¨À» ºÒ·¯¿À´Â ±â´Éµµ Á¦°øÇÑ´Ù.


¸¶ÀÌÅ©·ÎĨÀÇ FPGA »ç¾÷ºÎ ºÎ»çÀå ºê·ç½º ¿ÍÀ̾î(Bruce Weyer)´Â ¡°¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚ°¡ FPGAÀÇ Àü·Â È¿À²¼ºÀ» Àß È°¿ëÇÏ·Á¸é »õ·Î¿î FPGA ¾ÆÅ°ÅØó¿Í µ¶Á¡ÀûÀÎ Åø È帧¿¡ °üÇÑ Àü¹® Áö½Ä ¾øÀ̵µ ¸ÖƼ ÇÁ·¹ÀÓ¿öÅ©¿Í ¸ÖƼ ³×Æ®¿öÅ© ¼Ö·ç¼ÇÀ» Æ÷ÆÃÇÒ ¼ö ÀÖ´Â À¯¿¬¼ºÀ» Á¦°øÇØ¾ß ÇÑ´Ù¡±¶ó¸ç, ¡°¸¶ÀÌÅ©·ÎĨÀÇ VectorBlox Accelerator SDK ¹× ½Å°æ¸Á IP ÄÚ¾î´Â ¼ÒÇÁÆ®¿þ¾î ¹× Çϵå¿þ¾î °³¹ßÀÚ ¸ðµÎ¿¡°Ô PolarFire FPGA¿¡¼­ ÃÖ°í·Î À¯¿¬ÇÑ Äܺ¼·ç¼Ç ½Å°æ¸Á(convolutional neural network) ¾ÆÅ°ÅØó¸¦ ±¸ÇöÇÏ´Â ¹æ¹ýÀ» Á¦°øÇϹǷÎ, µ¿±Þ ÃÖ°íÀÇ ÆûÆÑÅÍ, ¿­ ¹× Àü·Â Ư¼ºÀ» Áö´Ñ AI±â¹Ý ¿§Áö ½Ã½ºÅÛÀ» ´õ¿í °£ÆíÇÏ°Ô ±¸¼ºÇÏ°í ±¸ÇöÇÒ ¼ö ÀÖ´Ù¡±°í ¼³¸íÇß´Ù.



¿§Áö ³» Ãß·Ð ±â´ÉÀ» À§ÇØ PolarFire FPGA´Â ´Ù¸¥ °æÀï»ç µð¹ÙÀ̽º ´ëºñ ÃÖ´ë 50% ³·Àº ÃÑ Àü·ÂÀ» Á¦°øÇÏ´Â µ¿½Ã¿¡, ÃÖ´ë 1.5 TOPS(tera operations per second)±îÁö Á¦°ø °¡´ÉÇÑ 25% ´õ ³ôÀº ¿ë·®ÀÇ math block(µÎ °³ÀÇ °ªÀ» »çÄ¢ ¿¬»êÇØÁÖ´Â block)À» Áö¿øÇÑ´Ù. 

¶ÇÇÑ, °³¹ßÀÚ´Â FPGA¸¦ »ç¿ëÇÔÀ¸·Î½á µð¹ÙÀ̽º °íÀ¯ÀÇ ¾÷±×·¹ÀÌµå ±â´É°ú ´ÜÀÏ Ä¨ ÅëÇÕ ±â´ÉÀ» Åä´ë·Î Ä¿½ºÅ͸¶ÀÌ¡ ¹× Â÷º°È­ÇÒ ¼ö ÀÖ´Ù. 


PolarFire FPGA ½Å°æ¸Á IP´Â ¾ÖÇø®ÄÉÀÌ¼Ç ¼º´É, Àü·Â ¹× ÆÐÅ°Áö Å©±â Æ®·¹À̵å¿ÀÇÁ(trade-off)¿¡ ¸Â°Ô ´Ù¾çÇÑ Å©±â·Î Á¦°øµÇ¹Ç·Î °í°´Àº 11x11mm ÀÇ ÀÛÀº ÆÐÅ°Áö Å©±â·Î ¼Ö·ç¼ÇÀ» ±¸ÇöÇÒ ¼ö ÀÖ´Ù.



¸¶ÀÌÅ©·ÎĨÀÇ ½º¸¶Æ® ÀÓº£µðµå ºñÀü À̴ϼÅƼºê´Â ¼ÒÇÁÆ®¿þ¾î ¹× Çϵå¿þ¾î °³¹ßÀÚ ¸ðµÎ¿¡°Ô ¿§Áö ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¿­ Á¦¾à ¹× ¼ÒÇü ÆûÆÑÅÍ ¿ä°ÇÀ» ÃæÁ·½ÃÅ°±â À§ÇÑ Åø, IP ¹× º¸µå¸¦ Á¦°øÇÏ°íÀÚ ÀÛ³â 7¿ù¿¡ Ãâ½ÃµÆ´Ù. 


PolarFire FPGA°¡ ´Ù¸¥ ¼Ö·ç¼Ç°ú ºñ±³ÇØ ³·Àº Àü·ÂÀ» Á¦°øÇϹǷΠÀÎŬ·ÎÀú ³» ÆÒÀ» º°µµ·Î ±¸ºñÇÒ ÇÊ¿ä°¡ ¾ø´Ù. 

¶ÇÇÑ, PolarFire FPGA´Â »ç¿ëÀÚÀÇ ¼³°è¸¦ µ½±â À§ÇØ ´õ¿í ´Ù¾çÇÑ ±â´É ÅëÇÕ¼ºÀ» Á¦°øÇÑ´Ù. 


ÀÏ·Ê·Î ½º¸¶Æ® Ä«¸Þ¶ó¿Í °°Àº ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ PolarFire FPGA´Â ¸Ó½Å·¯´× Ãß·ÐÀ» ÅëÇÕÇϸ鼭 ¼¾¼­ ÀÎÅÍÆäÀ̽º, DDR ÄÁÆ®·Ñ·¯, ISP(image signal processing) IP ¹× ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¸¦ Æ÷ÇÔÇÏ´Â À̹ÌÁö ½ÅÈ£ ÆÄÀÌÇÁ¶óÀÎ ¶óÀÎÀ» ÅëÇÕÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù.

¸¶ÀÌÅ©·ÎĨÀÇ VectorBlox Accelerator SDK´Â 2020³â 3ºÐ±â¿¡ Ãâ½ÃµÉ ¿¹Á¤À̸ç, 6¿ù¿¡´Â ¾ó¸®¾×¼¼½º°¡ ÁøÇàµÈ´Ù. 

¶ÇÇÑ, PolarFire FPGA´Â ÇöÀç ±¸ÀÔÇÒ ¼ö ÀÖ´Ù. ´õ¿í ÀÚ¼¼ÇÑ ³»¿ëÀº ½º¸¶Æ® ÀÓº£µðµå ºñÀü À¥»çÀÌÆ®¸¦ ÅëÇØ È®ÀÎÇÒ ¼ö ÀÖ´Ù.





¸¶ÀÌÅ©·ÎĨÅ×Å©³î·ÎÁö¿¡ ´ëÇÏ¿©

¸¶ÀÌÅ©·ÎĨÅ×Å©³î·ÎÁö´Â ½º¸¶Æ®, Ä¿³ØƼµå, ½ÃÅ¥¾î ÀÓº£µðµå ÄÁÆ®·Ñ ¼Ö·ç¼ÇÀ» Á¦°øÇÏ´Â ¹ÝµµÃ¼ ºÐ¾ßÀÇ ¼±µµ¾÷üÀÌ´Ù. »ç¿ëÇϱ⠽¬¿î °³¹ß µµ±¸¿Í Æ÷°ýÀûÀÎ Á¦Ç° Æ÷Æ®Æú¸®¿À¸¦ ÅëÇØ, °í°´Àº Á¦Ç° °³¹ß À§ÇèÀÌ Àû°í Àüü½Ã½ºÅÛ ºñ¿ë°ú Ãâ½Ã ±â°£À» ´ÜÃàÇÏ´Â ÃÖÀûÀÇ ¼³°è¸¦ ±¸ÇöÇÒ ¼ö ÀÖ´Ù. ¸¶ÀÌÅ©·ÎĨÀÇ ¼Ö·ç¼ÇÀº »ê¾÷, ÀÚµ¿Â÷, ¼ÒºñÀç, ¿ìÁÖ Ç×°ø ¹× ±¹¹æ, Åë½Å ¹× ÄÄÇ»Æà ½ÃÀå¿¡¼­ 120,000¿© °÷ÀÌ ³Ñ´Â °í°´¿¡°Ô ¼­ºñ½º¸¦ Á¦°øÇÏ°í ÀÖ´Ù. ¹Ì±¹ ¾Æ¸®Á¶³ª ÁÖ Ã¦µé·¯¿¡ º»»ç¸¦ µÐ ¸¶ÀÌÅ©·ÎĨÀº ½Å·ÚÇÒ ¼ö ÀÖ´Â Á¦Ç° °ø±Þ ´É·Â ¹× Ç°Áú°ú ÇÔ²² Ź¿ùÇÑ ±â¼ú Áö¿ø ¿ª·®À» ÀÚ¶ûÇÑ´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â ¸¶ÀÌÅ©·ÎĨ À¥»çÀÌÆ®¿¡¼­ È®ÀÎÇÒ ¼ö ÀÖ´Ù.
jmg1905@mt.co.kr
PDF Áö¸éº¸±â