KAIST, Àü±â¹×ÀüÀÚ°øÇкΠÀ¯¹Î¼ö ±³¼ö ¿¬±¸ÆÀ, ±¹Á¦ °í¼º´É ÄÄÇ»ÅÍ ±¸Á¶ ÇÐȸ¿¡¼ ÃÖ¿ì¼ö³í¹®»ó(Best Paper Award) ¼ö»ó
- ½ÇÁ¦ »ó¿ëÈµÈ PIM Á¦Ç°À» ±â¹ÝÀ¸·Î ÇÑ ¿ÀǼҽº ½Ã¹Ä·¹ÀÌÅÍ Á¦ÀÛ ¼º°øÇØ Á¦ÃâµÈ
³í¹® 410Æí Áß¿¡¼ 1µî ¼ö»ó
KAIST Àü±â¹×ÀüÀÚ°øÇкΠÀ¯¹Î¼ö ±³¼ö, ÇöºÀÁØ ¹Ú»ç°úÁ¤, À̵¿Àç ¹Ú»ç°úÁ¤, ±èÅÂÈÆ ¹Ú»ç°úÁ¤- |
»óÀå ±×¸² |
KAIST ¿¬±¸ÁøÀÌ ÄÄÇ»ÅÍ ±¸Á¶ ºÐ¾ß ±¹Á¦ ÃÖ¿ì¼ö Çмú´ëȸ¿¡¼ ÃÖ¿ì¼ö³í¹®»óÀ» ±¹³» ÃÖÃÊ·Î ¼ö»óÇß´Ù. ÀÌ´Â Á¦ÃâµÈ ³í¹® 410Æí Áß¿¡¼ »óÀ§ 1Æí¿¡¸¸ ÁÖ¾îÁø ¿µ¿¹´Ù.
KAIST Àü±â¹×ÀüÀÚ°øÇкΠÀ¯¹Î¼ö ±³¼ö ¿¬±¸ÆÀÀÌ ±¹Á¦ ÃÖ¿ì¼ö ÄÄÇ»ÅÍ ¾ÆÅ°ÅØó Çмú´ëȸ ÁßÀÇ ÇϳªÀÎ ‘IEEE ±¹Á¦ °í¼º´É ÄÄÇ»ÅÍ ±¸Á¶ ÇÐȸ(IEEE International Symposium on High-Performance Computer Architecture, HPCA)’¿¡¼ ÃÖ¿ì¼ö³í¹®»ó(Best Paper Award)À» ¼ö»óÇß´Ù°í 21ÀÏ ¹àÇû´Ù.
KAIST Àü±â¹×ÀüÀÚ°øÇкΠÇöºÀÁØ ¹Ú»ç°úÁ¤(Á¦1 ÀúÀÚ), ±èÅÂÈÆ ¹Ú»ç°úÁ¤, À̵¿Àç ¹Ú»ç°úÁ¤À¸·Î ±¸¼ºµÈ À¯¹Î¼ö ±³¼ö ¿¬±¸ÆÀÀº ÇÁ¶û½º ±â¾÷ UPMEM ÞäÀÇ »ó¿ëÈµÈ ÇÁ·Î¼¼½Ì-ÀÎ-¸Þ¸ð¸®(Processing-In-Memory, PIM) ±â¼úÀ» ±â¹ÝÀ¸·Î ÇÑ ‘À¯Çǹķ¹ÀÌÅÍ(uPIMulator)’¶ó´Â ½Ã¹Ä·¹ÀÌ¼Ç ÇÁ·¹ÀÓ¿öÅ©¸¦ Á¦¾ÈÇÏ¿© ÃÖ¿ì¼ö³í¹®»óÀ» ¼ö»óÇß´Ù.
ÃÖ±Ù ÁÖ¸ñ¹Þ°í Àִ êGPT¿Í °°Àº ´ëÇü ¾ð¾î ¸ðµ¨(Large Language Model) ¹× Ãßõ½Ã½ºÅÛÀº ¸¹Àº ¾çÀÇ ¸Þ¸ð¸® ´ë¿ªÆø(¸Þ¸ð¸®¿¡¼ ÇÑ ¹ø¿¡ »©³¾ ¼ö ÀÖ´Â µ¥ÀÌÅÍÀÇ ¾ç)À» ¿ä±¸Çϴ Ư¼ºÀ» Áö´Ñ´Ù. ±âÁ¸ÀÇ CPU ¹× GPU ±â¹Ý ½Ã½ºÅÛÀº ¹°¸®Àû ÇÑ°è·Î ÀÎÇØ ÀÌ·¯ÇÑ Áõ°¡ÇÏ´Â ¸Þ¸ð¸® ´ë¿ªÆøÀÇ ¼ö¿ä¸¦ ÃæÁ·½ÃÅ°´Â µ¥ ÀÖ¾î Á¦¾àÀÌ µû¸¥´Ù.
Á¦ÇÑµÈ ¸Þ¸ð¸® ´ë¿ªÆø ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ, ¸Þ¸ð¸® ³»ºÎ¿¡ ¿¬»ê ÀåÄ¡¸¦ ÅëÇÕÇÏ´Â PIM ±â¼úÀÌ ÁÖ¸ñ¹Þ±â ½ÃÀÛÇß´Ù. PIM ±â¼úÀº Çаè»Ó¸¸ ¾Æ´Ï¶ó »ê¾÷°è¿¡¼ °¢±¤À» ¹ÞÀ¸¸ç, ¸Þ¸ð¸® ¹ÝµµÃ¼¿Í ÀΰøÁö´É ÇÁ·Î¼¼¼°¡ Çϳª·Î °áÇÕÇÑ »ï¼ºÀüÀÚÀÇ HBM-PIM, SK ÇÏÀ̴нºÀÇ »ý¼ºÇü AI Æ¯È °¡¼Ó±âÀÎ AiMX¿Í °°Àº PIM ÇÁ·ÎÅäŸÀÔ Á¦Ç°ÀÇ °ø°³»Ó¸¸ ¾Æ´Ï¶ó, UPMEM ÞäÀÇ UPMEM-PIM Á¦Ç°À» ÅëÇÑ »ó¿ëÈ »ç·Ê·Î ±× °¡´É¼ºÀ» ÀÔÁõÇÏ°í ÀÖ´Ù.
±×·¯³ª ÇöÀç PIM ±â¼úÀº CPU³ª GPU¿Í °°Àº Çϵå¿þ¾î ±¸Á¶ÀÇ ¹ßÀü ¼öÁØ¿¡ ºñÇØ »ó´ëÀûÀ¸·Î Ãʱ⠴ܰ迡 ¸Ó¹°·¯ ÀÖÀ¸¸ç, Æø³ÐÀº Çϵå¿þ¾î ±¸Á¶¿¡ °üÇÑ ¿¬±¸°¡ ¿ä±¸µÈ´Ù. ´Ù¾çÇÑ Çϵå¿þ¾î ¼³°è ¿µ¿ª Ž»öÀ» À§ÇØ Çϵå¿þ¾î¸¦ ¸ð»çÇÏ´Â ½Ã¹Ä·¹ÀÌÅÍ°¡ ÇÐ°è ¹× »ê¾÷°è¿¡¼ ÀÚÁÖ È°¿ëµÇÁö¸¸, PIMÀ» À§ÇÑ ½Ã¹Ä·¹ÀÌÅÍ ¿¬±¸´Â »ó´ëÀûÀ¸·Î ¹ÌºñÇÑ Çö½ÇÀÌ´Ù.
À¯¹Î¼ö ±³¼ö ¿¬±¸ÆÀÀº »ó¿ë PIM ±â¼ú, UPMEM-PIM Á¦Ç°À» ±â¹ÝÀ¸·Î ÇÑ ¼³°è ¹× °ËÁõÀ» °ÅÄ£ ½Ã¹Ä·¹ÀÌÅÍ °³¹ßÀ» ÅëÇØ PIMÀÇ ¼º´É, °ß°í¼º, º¸¾È¼ºÀ» °³¼±ÇÒ ¼ö ÀÖ´Â ´Ù¾çÇÑ Çϵå¿þ¾î ±¸Á¶¸¦ Ž»öÇß´Ù. ÀÌ ¿¬±¸´Â ½ÇÁ¦ PIM Á¦Ç°¿¡ ±Ù°ÅÇÑ ½Ã¹Ä·¹ÀÌÅ͸¦ ÅëÇØ PIM Çϵå¿þ¾î ±¸Á¶¿¡ ´ëÇÑ »ó¼¼ÇÑ ºÐ¼® ¹× ´Ù¾çÇÑ ¼³°è ¹æÇ⼺À» Ž»öÇÏ´Â µ¥ ÀÇÀÇ°¡ ÀÖÀ¸¸ç, °³¹ßµÈ ½Ã¹Ä·¹ÀÌÅÍ´Â ÇöÀç ¿ÀǼҽº·Î °ø°³µÅ(https://github.com/VIA-Research/uPIMulator) ¿¬±¸ ¹× °³¹ß Ä¿¹Â´ÏƼ¿¡ ±â¿©ÇÏ°í ÀÖ´Ù.
»óÀ» ¼ö»óÇÑ KAIST Àü±â¹×ÀüÀÚ°øÇкΠÀ¯¹Î¼ö ±³¼ö´Â “À̹ø ¼º°ú¸¦ ¹ÙÅÁÀ¸·Î ¾ÕÀ¸·ÎÀÇ ¿¬±¸ ¹ßÀü¿¡ ´õ¿í ±â¿©ÇÒ ¼ö ÀÖµµ·Ï ³ë·ÂÇÏ°Ú´Ù. ÇÔ²²ÇÑ ¸ðµç Çлýµé¿¡°Ôµµ °¨»çÀÇ ¸¶À½À» ÀüÇÑ´Ù” ¶ó°í ¼ö»ó ¼Ò°¨À» ÀüÇß´Ù.
ÇÑÆí À̹ø ¿¬±¸´Â Á¤ºÎ(°úÇбâ¼úÁ¤º¸Åë½ÅºÎ)ÀÇ Àç¿øÀ¸·Î Çѱ¹¿¬±¸Àç´Ü, Á¤º¸Åë½Å±âȹÆò°¡¿ø, ±×¸®°í »ï¼ºÀüÀÚÀÇ Áö¿øÀ» ¹Þ¾Æ ¼öÇàµÆ´Ù.
¡à ¿¬±¸°³¿ä
¿¬±¸ ¹è°æ
ÇÁ·Î¼¼½Ì-ÀÎ-¸Þ¸ð¸®(Processing-In-Memory, PIM)´Â ±âÁ¸ ÄÄÇ»ÅÍ ±¸Á¶¿¡¼ ¾²ÀÌ´Â Æù ³ëÀ̸¸ ±¸Á¶ÀÇ ÇѰ踦 ±Øº¹Çϱâ À§ÇØ °³¹ßµÈ ±â¼ú·Î, µ¥ÀÌÅÍ Ã³¸®¸¦ À§ÇÑ ¿¬»ê ÀåÄ¡¸¦ ¸Þ¸ð¸® ³»ºÎ¿¡ ÅëÇÕÇÔÀ¸·Î½á ÇÁ·Î¼¼¼¿Í ¸Þ¸ð¸® °£ µ¥ÀÌÅÍ À̵¿¿¡ ÇÊ¿äÇÑ ½Ã°£ ¹× ¿¡³ÊÁö¸¦ Àý¾àÇÏ¿© ÄÄÇ»Æà ȿÀ²À» Çâ»ó½Ãų ¼ö ÀÖ´Ù. À̴ ƯÈ÷ Àΰø Áö´É, ºò µ¥ÀÌÅÍ ºÐ¼®, °í¼º´É ÄÄÇ»Æà ºÐ¾ß¿Í °°ÀÌ ´ë¿ë·® µ¥ÀÌÅÍÀÇ Ã³¸®¸¦ ¿ä±¸ÇÏ´Â ºÐ¾ß¿¡¼ È°¿ëµµ°¡ ³ôÀ» °ÍÀ¸·Î ±â´ëµÇ¸ç ÀÌ¿¡ ±â¹ÝÇÑ ¿©·¯ ¿¬±¸µéÀÌ ÁøÇàµÇ¾î¿Ô´Ù. ÃÖ±Ù »ï¼ºÀüÀÚ, SK ÇÏÀ̴нº ±×¸®°í UPMEMÞä¿¡¼ PIM ±â¼úÀ» È°¿ëÇÑ Á¦Ç°À» Ãâ½ÃÇÏ¿© PIM¿¡ ´ëÇÑ °ü½ÉÀÌ °íÁ¶µÇ°í ÀÖÀ¸¸ç, ƯÈ÷ UPMEMÞä°¡ Ãâ½ÃÇÑ UPMEM-PIMÀº ³Î¸® »ç¿ëµÇ´Â ¸Þ¸ð¸® ¸ðµâÀÎ DIMM ÆûÆÑÅÍ¿¡ ¹ü¿ë ÇÁ·Î¼¼¼¸¦ ÅëÇÕÇÑ ÇüÅ·Î, ÇÁ·Î±×·¡¹ÖÀÌ °¡´ÉÇÏ¿© ´Ù¾çÇÑ ºÐ¾ß¿¡¼ È°¿ëµÉ ¼ö ÀÖÀ» °ÍÀ¸·Î ±â´ëµÈ´Ù. ±×·¯³ª, »ó¿ëÈµÈ PIM ÇÁ·Î¼¼¼°¡ ¿¬»êÀÇ °úÁ¤¿¡¼ °®´Â Ư¼º ¹× º´¸ñÁ¡À» ÆľÇÇÒ ¼ö ÀÖ´Â µµ±¸ÀÇ ºÎÀç¿Í PIM ÇÁ·Î¼¼¼ÀÇ ±¸Á¶ º¯°æ ½Ã ¼º´É º¯È¸¦ ÆľÇÇϱ⠾î·Æ´Ù´Â Á¦ÇÑÁ¡ÀÌ Á¸ÀçÇÑ´Ù. µû¶ó¼, º» ¿¬±¸´Â ÀÌ·± Á¦ÇÑÁ¡À» ÇØ°áÇϱâ À§ÇØ UPMEM-PIMÀ» ¸ð»çÇÏ´Â ½Ã¹Ä·¹ÀÌ¼Ç ÇÁ·¹ÀÓ¿öÅ©¸¦ °³¹ßÇÏ¿´´Ù.
2. ¿¬±¸ ³»¿ë
À¯¹Î¼ö ±³¼ö ¿¬±¸ÆÀÀÌ °³¹ßÇÑ ½Ã¹Ä·¹ÀÌÅÍ ±¸Á¶ ¸ð½Äµµ |
ÀÌ ¿¬±¸´Â UPMEM-PIMÀ» ¸ð»çÇÑ ½Ã¹Ä·¹ÀÌ¼Ç ÇÁ·¹ÀÓ¿öÅ©(±×¸² 1)À» Á¦¾ÈÇÏ°í, À̸¦ È°¿ëÇØ UPMEM-PIMÀÇ ¼º´ÉÀ» ÃøÁ¤Çϱâ À§ÇØ °³¹ßµÈ º¥Ä¡¸¶Å©¸¦ ½ÇÇàÇÏ¿© ´Ù¾çÇÑ Æ¯¼º ºÐ¼®À» ÁøÇàÇÏ¿´´Ù.
±×¸² 2. ½Ã¹Ä·¹ÀÌ¼Ç ÇÁ·¹ÀÓ¿öÅ©¸¦ È°¿ëÇÑ ÀÚ¿ø È°¿ëµµ ºÐ¼® |
Ư¼º ºÐ¼® °á°ú, ÀüÅëÀûÀÎ Æù ³ëÀ̸¸ ±¸Á¶¿¡¼ ¸Þ¸ð¸® ´ë¿ªÆø¿¡ ÀÇÇØ ¼º´ÉÀÌ Á¦ÇѵǴ ¸Þ¸ð¸®-¹Ù¿îµå(memory-bound)ÀÇ Æ¯¼ºÀ» °®´Â ´Ù¼öÀÇ º¥Ä¡¸¶Å©°¡ ¿¬»ê ÀåÄ¡ÀÇ Ã³¸®·®¿¡ ÀÇÇØ ¼º´ÉÀÌ Á¦ÇѵǴ ÄÄǻƮ-¹Ù¿îµå(compute-bound)ÀÇ Æ¯¼ºÀ» °®´Â °ÍÀ» È®ÀÎÇÔÀ¸·Î½á PIMÀ» È°¿ëÇØ ÀÌ·¯ÇÑ ¿öÅ©·Îµå¸¦ ½ÇÇàÇÏ´Â °ÍÀÌ ÀÌÁ¡ÀÌ ÀÖÀ½À» °ËÁõÇÏ¿´´Ù(±×¸² 2). À̻Ӹ¸ ¾Æ´Ï¶ó, °¢ º¥Ä¡¸¶Å©¸¦ ½ÇÇàÇÏ´Â °úÁ¤¿¡¼ ¿¬»ê ¹× ¸Þ¸ð¸® ÀÚ¿øÀÇ È°¿ëµµ, ½ÇÇàµÈ ¸í·É¾î Á¾·ù µîÀ» ÀÚ¼¼È÷ ºÐ¼®ÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°øÇÏ¿© ÇöÀç PIM ±¸Á¶ÀÇ º´¸ñÁ¡À» ã°í À̸¦ ÇØ°áÇÒ ¼ö ÀÖ´Â Çϵå¿þ¾î ±¸Á¶¿¡ ´ëÇÑ ¿¬±¸¸¦ ÁøÇàÇϴµ¥ Å« µµ¿òÀ» ÁÙ °ÍÀ¸·Î ÆǴܵȴÙ.
±×¸² 3. ILP Çâ»óÀ» À§ÇÑ ¸¶ÀÌÅ©·Î¾ÆÅ°ÅØó º¯È¿¡ µû¸¥ ¼º´É °³¼± Á¤µµ |
ÀÌ·¯ÇÑ °úÁ¤ÀÇ ÀÏȯÀ¸·Î, º» ¿¬±¸´Â ±âÁ¸ÀÇ UPMEM-PIM¿¡ ¸í·É¾î-¼öÁØ º´·ÄÈ(instruction-level parallelism, ILP)¸¦ °ÈÇÏ´Â ±¸Á¶¸¦ Ãß°¡ÇÏ¿© ¼º´É º¯È¸¦ ÃøÁ¤ÇÏ¿´À¸¸ç(±×¸² 3), ±× ¹Û¿¡µµ SRAM ¸Þ¸ð¸® ±¸Á¶ ºñ±³(½ºÅ©·¡Ä¡ ÆÐµå ¸Þ¸ð¸® ´ë ij½Ã ¸Þ¸ð¸®), SIMT ±¸Á¶ÀÇ ¼º´ÉÇâ»ó Á¤µµ¸¦ ÆľÇÇÏ´Â µî ´Ù¾çÇÑ È°¿ëó¸¦ Á¦½ÃÇÏ¿´´Ù.
3. ±â´ë È¿°ú
ÇöÀç PIM ±â¼úÀº CPU/GPU¿Í °°Àº ÇÁ·Î¼¼¼ÀÇ ¹ßÀü ¼öÁØ¿¡ ºñÇØ »ó´ëÀûÀ¸·Î Ãʱ⠴ܰ迡 ¸Ó¹°·¯ ÀÖ¾î, Æø³ÐÀº Çϵå¿þ¾î ±¸Á¶¿¡ ´ëÇÑ ¿¬±¸°¡ ¿ä±¸µÈ´Ù. º» ¿¬±¸¿¡¼ Á¦¾ÈÇÑ ½Ã¹Ä·¹ÀÌ¼Ç ÇÁ·¹ÀÓ¿öÅ©´Â ÇöÀç PIM ±¸Á¶ÀÇ Æ¯¼ºÀ» º¸´Ù ¸é¹ÐÈ÷ ºÐ¼®ÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°øÇÏ¿© ¿©·¯ ¿öÅ©·ÎµåÀÇ º´¸ñÁ¡À» ÆľÇÇϴµ¥ È°¿ë °¡´ÉÇϸç, º´¸ñÁ¡À» ÇØ°áÇϱâ À§ÇÑ Çϵå¿þ¾î ±¸Á¶ Ž»ö °úÁ¤¿¡ µµ¿òÀ» ÁÖ¾î ¹Ì·¡ PIM ±¸Á¶ÀÇ ¹æÇ⼺À» Á¦½ÃÇϴµ¥ À̹ÙÁö¸¦ ÇÒ °ÍÀ¸·Î ±â´ëµÈ´Ù.
KAIST È«º¸½Ç Á¦°ø
³ëº§»çÀ̾𽺠science@nobelscience.co.kr
<ÀúÀÛ±ÇÀÚ © ³ëº§»çÀ̾ð½º, ¹«´Ü ÀüÀç ¹× Àç¹èÆ÷ ±ÝÁö>