½ñÌ죬СµÜºÍ´ó¼Ò̸һ̸ij¹ú²úFPAIоƬµÄAIϵͳ·½°¸ÒÔ¼°²Î¿¼Éè¼ÆÊµÀý¡£
1£©FPAIоƬ¼Ü¹¹£º²©²ÉÖÚ³¤¡¢¼æÈݲ¢Ðî
Ê×ÏÈ£¬ÎÒÃǼòµ¥Á˽âÏÂFPAI£¨Field Programmable AI£©Ð¾Æ¬¡£FPAIоƬ£¬´´ÐÂÐԵزÉÓÃÁËÒì¹¹Èںϼܹ¹£¬¼´ÔÚÒ»¿ÅdieÉϼ¯³ÉÁ˸ßÐÔÄÜSOC£¨PS£©¡¢´óÈÝÁ¿FPGA£¨PL£©¡¢AI¼ÓËÙÒýÇæ£¨AI£©Èý´óÄ£¿é¡£¸ÃÒì¹¹Èںϼܹ¹£¬¿Éν¡°²©²ÉÖÚ³¤¡¢¼æÈݲ¢Ð£¬ÈÚºÏÁ˸÷Ò칹ģ¿éÓÅÊÆ£¬ÌرðÊʺÏAI¼ÆËã¡£ÆäÖУ¬¸ßÐÔÄÜSOCÓÅÊÆÔÚÓÚ¿ØÖƺÍͨÓüÆË㣬ʹµÃÄÜÔÚµ¥Ð¾Æ¬ÉÏÔËÐÐÍê³ÉÍêÕûµÄAI¼ÆË㣻´óÈÝÁ¿FPGAÓÅÊÆÔÚÓÚ¿ÉÖØ¹¹ºÍ¸ßËÙ½Ó¿Ú£¬½â¾öÁ˳¤Î²Ëã×ÓµÄÄÑÌ⣬ÊÊÓ¦ÁËAIËã·¨²»¶ÏµÄµü´úÉý¼¶Ç÷ÊÆ£»AI¼ÓËÙÒýÇæÓÅÊÆÔÚÓÚ¸ßÐÔÄÜ¡¢µÍ¹¦ºÄµØÍê³É¾í»ýµÈ¼ÆËãÃܼ¯ÐÍËã×ӵļÆËã¡£
ͼ1 FPAIоƬ¼Ü¹¹£ºÒì¹¹ÈÚºÏ
¾ßÌåµÄ£¬ÒÔÏÂÊÇij¿î¹ú²úFPAIоƬ£¬¸ÃоƬ×ÊÔ´ºÜ·á¸»¡£PS²¿·Ö£¬ÓÐËĺ˴¦ÀíÆ÷CPU¡¢ÊÓÆµ±à½âÂëÄ£¿éVPU¡¢Í¼Ïñ´¦ÀíÄ£¿éGPUµÈ£»PL²¿·Ö£¬ÓÐ444KµÄÂß¼×ÊÔ´£¬16¸ö¸ßËÙ½Ó¿ÚGTX£»AI²¿·Ö£¬Óиߴï27.52TOPSµÄint8ËãÁ¦£¬¾«¶ÈÖ§³Öint8ºÍint16£¬ÅäºÏAI±àÒëÆ÷Ö§³Ö¿ìËÙ²¿Êð
ͼ2 ij¹ú²úFPAIоƬ×ÊÔ´
×ÛÉÏ£¬¸Ã¿ÅFPAIоƬ֧³Ö·á¸»µÄAIÓ¦Óó¡¾°£¬ÌرðÊʺϱßÔµÈں϶˵ÄAIÓ¦Óó¡¾°¡£
2£©FPAIϵͳ·½°¸£ººÃÂíÅäºÃ°°£¬ºÃ´¬ÅäºÃ·«
´ÓоƬµ½ÏµÍ³²úÆ·£¬»¹ÐèÉè¼ÆÓ²¼þ£¬¿ª·¢FPGA³ÌÐò£¬¿ª·¢Èí¼þ³ÌÐò£¬²¿ÊðAIÍøÂçµÈ¡£ÏµÍ³·½°¸¼°¶ÔÓ¦µÄ²Î¿¼ÊµÏÖ£¬ÌṩÁËÒ»ÕûÌ×ÍêÕûµÄ½â¾ö·½°¸²Î¿¼£¬Äܹ»°ïÖúÓû§·½±ã¡¢¿ìËÙ¡¢¸ßЧ¡¢¿É¿¿µØÍê³É×Ô¼º²úÆ·µÄÉè¼Æ¡£ Ëùν¡°ºÃÂíÅäºÃ°°£¬ºÃ´¬ÅäºÃ·«¡±£¬²»Í¬Ð¾Æ¬ÐèÒªÊʺϵÄϵͳ·½°¸ÒÔ¼°¶ÔÓ¦µÄ²Î¿¼Éè¼Æ¡£
Ê×ÏÈ£¬FPAIоƬÊÇPS+PL+AIµÄ¼Ü¹¹£¬¶ÔÍâ½Ó¿Ú¹Ü½ÅλÓÚPS¡¢PLÄ£¿é£¬Òò´ËÒÀ¾ÝÍⲿÊý¾ÝÁ÷ÊäÈëµÄ¹Ü½Å£¬Éè¼ÆÁËPS_IN¡¢PL_INµÄϵͳ·½°¸£¬ÒԴ˶ÔÓ¦²»Í¬µÄÄÚ²¿¿ØÖÆÁ÷Êý¾ÝÁ÷·½°¸£»È»ºó£¬FPAIоƬµÄAI·åÖµËãÁ¦´ï27.52Tops£¬Äܹ»Ö§³Ö¶à·Êý¾ÝÁ÷µÄ²»Í¬µÄAI¼ÆË㣬ÊÓÆµ±à½âÂëÄ£¿éÄÜÖ§³Ö¶à·ÊÓÆµÁ÷µÄѹËõ£¬¿É±à³ÌÂß¼×ÊÔ´Ò²Ö§³Ö¶àÊäÈëµÄ¸ßËÙÊý¾ÝÁ÷½Ó¿Ú£¬Òò´ËÒÀ¾ÝÒÔÉÏËãÁ¦Ìص㣬Éè¼ÆÁ˶àÔ´µÄϵͳ·½°¸£¬ÒÔ´ËÒ²·ûºÏÁ˱ßÔµÈں϶˵ÄAIÓ¦ÓÃÌØµã£»´ËÍ⣬PCIe¼ÓËٰ忨µÄϵͳ·½°¸£¬ÅäºÏÖ÷»ú·þÎñÆ÷£¬Íê³ÉAIµÄÍÆÀí¼ÆËã¼ÓËÙ¡£
×ÛÉÏ£¬»ùÓÚFPAIоƬµÄ¼Ü¹¹¡¢ËãÁ¦¡¢×ÊÔ´¡¢ÊäÈëÊý¾ÝÁ÷À´Ô´¡¢Ó¦Óó¡¾°µÈÌØµã£¬·Ö±ðÖÆ¶¨ÁËÈçÏÂ4ÖÖϵͳ·½°¸£¬»ù±¾Äܹ»º¸ÇFPAIµ¥Ð¾Æ¬Ïµĸ÷ÖÖÓ¦Óó¡¾°¡£
£¨1£©PS_INϵͳ·½°¸
£¨2£©PL_INϵͳ·½°¸
£¨3£©¶àԴϵͳ·½°¸
£¨4£©PCIe¼ÓËÙ¿¨ÏµÍ³·½°¸
ͼ3 FPAIоƬµÄϵͳ·½°¸ Ò»¸öϵͳ·½°¸¿ÉÄÜÓжà¸ö¾ßÌåµÄ²Î¿¼ÊµÏÖ£¬µ«¶ÔÓ¦µÄÉè¼Æ¼Ü¹¹ÊÇÒ»Öµģ¬¿ÉÄÜÖ»ÊǾßÌåÄÚ²¿ÊµÏÖÓÐÇø±ð¡£²Î¿¼Éè¼Æ»áÌṩһÕûÌײο¼·½°¸£¬°üÀ¨Ó²¼þÉè¼Æ¡¢FPGAÉè¼Æ¡¢Èí¼þÉè¼ÆµÄ´úÂëºÍÏàÓ¦Îĵµ¡£Òò´Ë£¬ÏëÒª»ùÓÚFPAIÉè¼ÆÏµÍ³µÄÅóÓÑ£¬¿ÉÒÔÒÀ¾Ý×ÔÉíµÄÓ¦Óó¡¾°ÐèÇó£¬Ñ¡ÔñÉÏÊöϵͳ·½°¸µÄ²Î¿¼Éè¼Æ¡£
3£©¶à·PL_IN+VPU±àÂëµÄ²Î¿¼Éè¼ÆÊµÀý
ºÃÁË£¬ËµÁËÕâô¶à£¬´ó¼ÒµÈ²»¼°Òª¿´¾ßÌåµÄ²Î¿¼Éè¼ÆÊµÀý°É¡£ÒÔÏ»á½éÉܶàԴϵͳ·½°¸µÄÒ»¸ö²Î¿¼Éè¼ÆÊµÀý£º¶à·PL_IN+VPU±àÂëµÄ²Î¿¼Éè¼Æ£¬·Ö±ð´Ó²Î¿¼Éè¼Æ¸ÅÊö¡¢Ó²¼þ°å¿¨½éÉÜ¡¢FPGA¹¤³Ì½éÉÜ¡¢Èí¼þ¹¤³Ì½éÉÜ¡¢ÊµÀý¹¦ºÄ½éÉܵÈ5²¿·ÖÀ´½éÉܸÃʵÀý¡£
3.1 ²Î¿¼Éè¼Æ¸ÅÊö
ÊäÈ룺4·SDIÉãÏñÍ·£¬Ä¬ÈÏ·Ö±æÂʺÍÖ¡ÂÊÉèÖÃ1080p@30Hz£»
Êä³ö£ºSD¿¨£¬H.265/H.264¸ñʽÎļþ¸ñʽ£»
VPU£º·Ö±æÂÊ1080p£¬YUV422ÊäÈë, Êä³ö H.265/H.264£¬Ä¬ÈϱàÂëÖ¡ÂÊÉèÖÃ30Hz£»
¼ì²â£ºÔËÐÐʾÀýÍøÂçYolov5s AI¼ì²â£¬´ø¼ì²â½á¹ûµÄÊÓÆµÑ¹Ëõµ½SD¿¨¡£
ÐÔÄÜ£º4·1080p@30HzÊäÈ룬AI+VPU±àÂ룬ÿһ·30fps¡£
ͼ4 ¶à·PL_IN+VPU±àÂëµÄ²Î¿¼ÊµÏÖ¿òͼ
3.22 Îò¿ÕÓ²¼þ¿ª·¢°å¼ò½é
ÈçÏÂͼ£¬²ÉÓÃSDI½Ó¿ÚÉãÏñÍ·ÊäÈë4·ÊÓÆµµ½°å¿¨£¬Îò¿ÕÓ²¼þ°å¿¨ÉÏÖ÷оƬFPAIоƬ£»SD¿¨£¬´¢´æºÍÆô¶¯Linux²Ù×÷ϵͳÆô¶¯ÎļþºÍ¸ùÎļþϵͳ£»1GB PS DDRºÍ2GB PL DDR£¬ÓÃÓÚÔËÐвÙ×÷ϵͳºÍAI£»Í¨¹ý×Ó¿¨½ÓÈëµÄ4·SDIÊÓÆµ½Ó¿Ú£»Íø¿Ú¡¢´®¿Ú¡¢JTAGµ÷ÊԽӿڵȡ£
ͼ5 Îò¿ÕÓ²¼þ¿ª·¢°å
3.32 FPGAÉè¼Æ½éÉÜ
Ê×ÏÈ£¬ÕûÌåÊý¾ÝÁ÷ÈçͼËùʾ£º
ͼ6 ¶à·PL_IN+VPU±àÂëµÄÊý¾ÝÁ÷
Step1£º¶ÔӦͼÖеÄÊý¾ÝÁ÷1£¬Cam0~Cam3Ϊ4·²»Í¬µÄSDIÉãÏñÍ·ÊÓÆµÁ÷£¬Ö¡ÂÊ1080p@30Hz¡£¶ÔÓÚÿһ·SDIÉãÏñÍ·ÊÓÆµÁ÷£¬¸´ÖƳÉÁ½Â·£¬Ò»Â·¾¹ýresize¡¢image_makeÄ£¿éÍê³ÉAIÔ¤´¦Àíºó´æÈëPL_DDR£¬¹©AI¼ì²âʹÓã»Áíһ·¾¹ýresize¡¢rgb565תΪyuv422£¨¿ÉÑ¡£©Í¨¹ýHP½Ó¿Ú´æÈëPS_DDR£¬¹©ºóÐø»Éϼì²â½á¹ûºóVPUѹËõÓûòÕßHDMIÏÔʾÓá£
Step2£º¶ÔӦͼÖеÄÊý¾ÝÁ÷2£¬Æô¶¯AI·ÃÎÊPL_DDRÍê³ÉAIµÄ¼ÆËã¡£
Step3£º¶ÔӦͼÖеÄÊý¾ÝÁ÷3£¬×îºóÒ»²ãÌØÕ÷ͼ£¬¾¹ýicore_postÄ£¿é´¦Àíºó£¬Í¨¹ýHP½Ó¿ÚдÈëPS_DDR¡£PSÍê³ÉÊ£Óàºó´¦Àí¼ÆË㣬µÃ³öAI¼ì²â½á¹û£¬»ÔÚPS DDRÉϵÄÊÓÆµÖ¡ÉÏ¡£
Step4£º¶ÔӦͼÖеÄÊý¾ÝÁ÷4£¬Æô¶¯VPU£¬¶Ôº¬Óнá¹ûµÄÊÓÆµÖ¡Ñ¹Ëõ³ÉH.264/H.265¸ñʽ¡£
Step5£º¶ÔӦͼÖеÄÊý¾ÝÁ÷5£¬½«Ñ¹ËõÊÓÆµÁ÷д»ØSD¿¨¡£ Step6£¨¿ÉÑ¡£©£º¶ÔӦͼÖÐÊý¾ÝÁ÷6£¬½«¼ì²â¿òµÄÊÓÆµÏÔʾµ½HDMIÏÔʾÆÁ¡£
Æä´Î£¬½éÉÜÒÔÏÂ×ÓÊý¾ÝÁ÷ͨ·µÄʵÏÖ
£¨1£©Camera -> PLDDRµÄÂ߼ͨ·ʵÏÖ
ͼ7 ×ÓÂ߼ͨ·Camera -> PLDDR
ÊäÈëµÄ4·ÊÓÆµÁ÷Ö¡ÂÊΪ1080p@30Hz£¬¾ùÒÔserdes ²î·Ö¶Ô½ÓÈëFPGA¶Ë¿Ú£¬Í¨¹ýrx_sdiÄ£¿é½âÎöΪrgb888Êý¾Ý¸ñʽ¡£È»ºó¾¹ýframe_transÄ£¿éresize³ÉAI¼ÆËãËùÐèÒªµÄ³ß´ç¡£ ÔÚһЩӦÓó¡¾°ÖУ¬ÊäÈëÊý¾Ý¿ÉÄÜÔ¤ÏÈ´æ´¢ÔÚÁËPS DDRÖУ¬Òò´Ë±¾¹¤³ÌÒ²Ô¤ÁôÁË2·¶ÀÁ¢µÄPSINÊý¾Ýͨ·£¬Í¨¹ýHP¿Ú¶ÁÈ¡Êý¾Ý£¬×ª±ä³ÉAI_MATE½Ó¿Ú¹æ·¶ºÃµÄÊý¾Ý×ÜÏ߸ñʽ¡£ÕâÁ½Â·PSINÊý¾Ýͨ¹ýimg_data_crossbar_0/1Ä£¿é·Ö±ðÓëCAM2/3ÊÓÆµÁ÷Êý¾Ý½øÐÐÖٲ㬸÷×ÔÑ¡³ö1·ÊäÈë¸øAI_MATE¶Ë¡£
£¨2£©Camera -> PSDDRµÄÂ߼ͨ·ʵÏÖ
ͼ8 ×ÓÂ߼ͨ·Camera -> PSDDR ½«CAMÊÓÆµÁ÷Êý¾Ýresize³ÉVPUѹËõÐèÒªµÄ³ß´ç£¬×¢Òâ´Ë´¦µÄresizeÓëCAM->PL DDRͨ·ÖеÄresizeÏ໥¶ÀÁ¢£¬¼´AI¼ÆËã³ß´çºÍVPUѹËõ³ß´ç¶ÀÁ¢ÅäÖá£ÎªÁ˼õÉÙдÈëPS DDRµÄÊý¾ÝÁ¿£¬ÕâÀォrgb565Êý¾Ý¸ñʽתΪyuv422£¨16bit£©£¬Ïà±ÈÓÚrgba£¨32bit£©¸ñʽ£¬Êý¾ÝÁ¿¿É¼õÉÙ50%£¬¶øÍ¼ÏñÉ«¶È·ÖÁ¿ÍêÕû±£Áô£¬»ù±¾²»Ó°ÏìͼÏñÖÊÁ¿¡£
ÿһ·CAMÊý¾Ý¾ùÐèҪͨ¹ýHP¿ÚдÈëPS DDR£¬PS¶Ë¹²ÓÐ4¸öHP¿Ú£¬ÓкܶàÄ£¿é»á¶ÔËü·¢ÆðÇëÇó£¬Òò´Ë¹¤³ÌÖÐÔÚBlockDesignÖе÷ÓÃaxi interconnect IP½øÐÐÖٲá£
×îÖÕ£¬ÊµÏÖµÄFPGA×ÊÔ´Õ¼ÓÃÇé¿öÈçÏÂËùʾ£º
ͼ9 FPGAʵÏÖ×ÊÔ´Õ¼ÓÃÇé¿ö
3.42 Èí¼þÉè¼Æ½éÉÜ
²Î¿¼ÊµÏÖÈí¼þÕûÌåÁ÷³Ì¿ÉÒÔ¹é½áÈçÏ£º ÉãÏñÍ·ÊäÈëÊÓÆµÊý¾Ý > AI¼ì²â > AI½á¹û»æÖÆ > vpu±àÂëh264/h265ÊÓÆµ > Êä³öÊý¾ÝÁ÷
Èí¼þÖа´¹¦Äܽ«´úÂë·âװΪ¶à¸öÄ£¿é£ºÉãÏñÍ·Ä£¿é¡¢Éñ¾ÍøÂçÄ£¿é¡¢VPUÄ£¿é¡£ÔòÔÚʵÏÖÒ»´ÎÍêÕûÊý¾ÝÁ÷ͨ·¶ÔÓ¦µÄÄ£¿éµ÷ÓÃΪ£ºÉãÏñÍ·Ä£¿éȡ֡ > Éñ¾ÍøÂçÄ£¿é¼ÆËãÓëºó´¦Àí > ÉãÏñÍ·Ä£¿éµÃµ½Í¼ÏñÊý¾Ý > vpuÄ£¿éѹËõ > vpuÄ£¿éÊä³öÊý¾Ý¡£
ÔÚAIµ÷¶È¹ý³ÌÖУ¬²ÉÓÃÁËÈÎÎñ¶ÓÁеÄʵÏÖ·½Ê½¡£Ö÷Òª²Î¿¼ÁËÉú²úÕßÏû·ÑÕßÉè¼ÆÄ£Ê½£¬Ç°´¦Àí¡¢icoreǰÏò¡¢ºó´¦ÀíÔËÐÐÔÚ¸÷×ÔµÄÏß³ÌÖУ¬»¥ÏàÖ®¼äͨ¹ýÈÎÎñ¶ÓÁеķ½Ê½Í¨ÐÅ¡£
¶ÔÓÚ¶à·µÄÇé¿ö£¬Ôò»áʹÓöà¸öǰ´¦ÀíÏß³ÌÓë¶à¸öºó´¦ÀíỊ̈߳¬ÒÔ4·ΪÀý£¬4·²»Í¬µÄÊäÈëͼÏñÊý¾Ý¡¢icoreÍÆÀí½á¹û»á´æ·ÅÔÚddrµÄ²»Í¬Î»Ö㬲»Í¬Â·Ö®¼äÊý¾Ý²»»áÏ໥¸ÉÈÅ¡£ÈÎÎñ¶ÓÁл¹ÌṩÁË¿ÉÒÔ¿ØÖƲ»Í¬Â·ÊÇ·ñ×öAI»òÕßÉèÖÃÓÅÏȼ¶µÄ¹¦ÄÜ¡£
ͼ10 Èí¼þÈÎÎñ¶ÓÁе÷¶È¿òͼ
¾ßÌåµÄAIÉñ¾ÍøÂ粿Ê𣬻ùÓÚicraft±àÒëÆ÷£¬Ö±½Ó±àÒëÉú³ÉjsonºÍrawÎļþ£¬¾ÍÄܹ»¸üвο¼Éè¼ÆµÄAIÍøÂ粿Êð¡£
3.52 ʵÀý½á¹û½éÉÜ
ÐÔÄÜ£ºÄܹ»Îȶ¨Íê³É4·1080p@30HzÊÓÆµµÄAI¼ì²âºÍÊÓÆµ±àÂë¡£
¹¦ºÄ£ºÕûÌåоƬ¹¦ºÄ£¨º¬DDR£©ÊÇ12.32W¡£
±í1 ¶à·PL_IN+VPU±àÂëµÄ¹¦ºÄ
4£©Ð¡½á£ºº£À«Æ¾ÓãÔ¾£¬Ìì¸ßÈÎÄñ·É
ºÃÁË£¬¾¹ýÒÔÉϵIJο¼Éè¼ÆÊµÀýµÄ½éÉÜ£¬ÏàÐÅ´ó¼Ò¶ÔFPAIоƬµÄϵͳ·½°¸ÒÔ¼°²Î¿¼Éè¼ÆÓÐÁ˸üÉî²ã´ÎµÄÁ˽⡣
½ü¼¸Ä꣬±ßÔµ¶ËAI¼ÆËãµÄÊг¡·Ý¶îÖðÄêÔö³¤Ã÷ÏÔ£¬Ô½À´Ô½¶àµÄÂ䵨ӦÓÃÐèÇóÌá³ö¡£¡°º£À«Æ¾ÓãÔ¾£¬Ìì¸ßÈÎÄñ·É¡±£¬ÈçºÎÑ¡ÔñÒ»¿îAIоƬ¼°ÏµÍ³·½°¸£¬Äܹ»Âú×ã±ßÔµÈں϶˵ĸ÷ÖÖÓ¦Óó¡¾°£¬Äܹ»ÊÊÓ¦Ëã·¨µü´úµÄÐèÇó£¬Äܹ»½â¾ö³¤Î²Ëã×ÓµÄÎÊÌ⣬ÐγɸßÐÔÄÜ¡¢µÍ¹¦ºÄ¡¢Áé»î¿É¿¿µÄ²úÆ·£¿ÏàÐÅFPAIоƬ¼°ÏµÍ³·½°¸£¬»áÊÇÒ»¸ö²»´íµÄÑ¡Ôñ£¡
ÉóºË±à¼£ºÁõÇå
-
´¦ÀíÆ÷
+¹Ø×¢
¹Ø×¢
68ÎÄÕÂ
19935ä¯ÀÀÁ¿
236300 -
FPGA
+¹Ø×¢
¹Ø×¢
1646ÎÄÕÂ
22070ä¯ÀÀÁ¿
619739 -
soc
+¹Ø×¢
¹Ø×¢
38ÎÄÕÂ
4406ä¯ÀÀÁ¿
223192 -
±àÒëÆ÷
+¹Ø×¢
¹Ø×¢
1ÎÄÕÂ
1663ä¯ÀÀÁ¿
50348 -
GPUоƬ
+¹Ø×¢
¹Ø×¢
1ÎÄÕÂ
306ä¯ÀÀÁ¿
6217
ÔÎıêÌ⣺Âþ̸FPAIоƬµÄAIϵͳ·½°¸
ÎÄÕ³ö´¦£º¡¾Î¢Ðźţº¹ú²úFPGAÖ®¼Ò£¬Î¢ÐŹ«Öںţº¹ú²úFPGAÖ®¼Ò¡¿»¶ÓÌí¼Ó¹Ø×¢£¡ÎÄÕÂ×ªÔØÇë×¢Ã÷³ö´¦¡£
·¢²¼ÆÀÂÛÇëÏÈ µÇ¼
ÆÀÂÛ