¿£ºñµð¾Æ°¡ 17ÀϺÎÅÍ 22ÀϱîÁö(ÇöÁö½Ã°£) ¹Ì±¹ ¾ÖƲ·£Å¸¿¡¼ °³ÃֵǴ ½´ÆÛÄÄÇ»Æà 2024(Supercomputing 2024, SC24) ÄÜÆÛ·±½º¿¡¼ ¿£ºñµð¾Æ cuÆÄÀÌ´º¸Þ¸¯(NVIDIA cuPyNumeric) °¡¼Ó ÄÄÇ»Æà ¶óÀ̺귯¸®¸¦ ÅëÇØ µ¥ÀÌÅÍ Ã³¸® °¡¼ÓÈ¿¡ ³ª¼±´Ù°í ¹àÇû´Ù.
¸¹Àº °úÇÐÀÚµéÀº ³ª³ë ±Ô¸ðÀÇ ÀüÀÚ °Åµ¿À» ¿¬±¸Çϵç, ¼ö¹é¸¸ ±¤³â ¶³¾îÁø º°ÀÌ Ãæµ¹ÇÏ´Â Çö»óÀ» °üÂûÇÏµç °øÅëÀÇ °úÁ¦¸¦ ¾È°í ÀÖ´Ù. ¹Ù·Î Æ䟹ÙÀÌÆ®±Þ µ¥ÀÌÅ͸¦ ºÐ¼®ÇØ ÀÚ½ÅÀÇ ºÐ¾ß¸¦ ¹ßÀü½Ãų ¼ö ÀÖ´Â ÀλçÀÌÆ®¸¦ ÃßÃâÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.
ÀÌÁ¦ ¿¬±¸¿øµéÀº ¿£ºñµð¾Æ cuÆÄÀÌ´º¸Þ¸¯ °¡¼Ó ÄÄÇ»Æà ¶óÀ̺귯¸®¸¦ ÅëÇØ µ¥ÀÌÅÍ Ã³¸®¿ë ÆÄÀ̽ã(Python) Äڵ带 CPU ±â¹Ý ³ëÆ®ºÏ, GPU °¡¼Ó ¿öÅ©½ºÅ×À̼Ç, Ŭ¶ó¿ìµå ¼¹ö ¶Ç´Â ´ë±Ô¸ð ½´ÆÛÄÄÇ»ÅÍ¿¡¼ ¼Õ½±°Ô ½ÇÇàÇÒ ¼ö ÀÖ´Ù. µ¥ÀÌÅ͸¦ ´õ ºü¸£°Ô ó¸®ÇÒ¼ö·Ï À¯¸ÁÇÑ µ¥ÀÌÅÍ Æ÷ÀÎÆ®, Á¶»çÇÒ °¡Ä¡°¡ ÀÖ´Â Æ®·»µå, ½ÇÇè Á¶Á¤¿¡ ´ëÇÑ ÀÇ»ç °áÁ¤À» ´õ »¡¸® ³»¸± ¼ö ÀÖ´Ù.
¿¬±¸ÀÚµéÀº °¡¼Ó ÄÄÇ»ÆÃÀ¸·Î ÀüȯÇϱâ À§ÇØ ÄÄÇ»ÅÍ °úÇп¡ ´ëÇÑ Àü¹® Áö½ÄÀ» °®Ãâ ÇÊ¿ä°¡ ¾ø´Ù. Àͼ÷ÇÑ ³ÑÆÄÀÌ(NumPy) ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇØ Äڵ带 ÀÛ¼ºÇϰųª, ±âÁ¸ Äڵ忡 cuÆÄÀÌ´º¸Þ¸¯À» Àû¿ëÇØ ¼º´É°ú È®À强À» À§ÇÑ ¸ð¹ü »ç·Ê¸¦ µû¸¦ ¼ö ÀÖ´Ù.
cuÆÄÀÌ´º¸Þ¸¯À» Àû¿ëÇϸé ÄÚµå º¯°æ ¾øÀÌ Çϳª ¶Ç´Â ¼öõ °³ÀÇ GPU¿¡¼ Äڵ带 ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
cuÆÄÀÌ´º¸Þ¸¯ÀÇ ÃֽŠ¹öÀüÀº ÇöÀç ÄÜ´Ù(Conda)¿Í ±êÇãºê(GitHub)¿¡¼ Á¦°øµÈ´Ù. ÀÌ´Â ¿£ºñµð¾Æ GH200 ±×·¹À̽º È£ÆÛ ½´ÆÛĨ(Grace Hopper Superchip)¿¡ ´ëÇÑ Áö¿ø, ½ÇÇà ½Ã ÀÚµ¿ ¸®¼Ò½º ±¸¼º, Çâ»óµÈ ¸Þ¸ð¸® È®À强À» Á¦°øÇÑ´Ù. ¶ÇÇÑ, °úÇа迡¼ ³Î¸® »ç¿ëµÇ´Â ÆÄÀÏ Çü½ÄÀÎ HDF5¸¦ Áö¿øÇØ Å©°í º¹ÀâÇÑ µ¥ÀÌÅ͸¦ È¿À²ÀûÀ¸·Î °ü¸®ÇÒ ¼ö ÀÖ´Ù.
¿©·¯ ¿¬±¸¿øµéÀÌ cuÆÄÀÌ´º¸Þ¸¯À» ÅëÇÕÇØ µ¥ÀÌÅÍ ºÐ¼® ¿öÅ©Ç÷ο츦 Å©°Ô °³¼±Çß´Ù. ±× ¿¹½Ã·Î ¹Ì±¹ ½ºÅÄÆÛµå´ë SLAC ±¹¸³°¡¼Ó±â ¿¬±¸¼Ò(SLAC National Accelerator Laboratory), ·Î½º ¾Ù·¯¸ð½º ±¹¸³ ¿¬±¸¼Ò(Los Alamos National Laboratory), È£ÁÖ ±¹¸³ ´ëÇб³(Australian National University), ¸Å»çÃß¼¼Ã÷ÁÖ¸³´ë º¸½ºÅÏÄ·ÆÛ½º(UMass Boston), ½ºÅÄÆÛµå´ë ³±â·ù ¿¬±¸¼¾ÅÍ(the Center for Turbulence Research at Stanford University), Àεµ±¹¸³Áö±Þ°ø»ç(National Payments Corporation of India, NPCI) µîÀÌ ÀÖ´Ù.
ÆÄÀ̽ãÀº µ¥ÀÌÅÍ °úÇÐ, ¸Ó½Å ·¯´×, ¼öÄ¡ ÄÄÇ»ÆÃÀ» À§ÇÑ °¡Àå ÀϹÝÀûÀÎ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î, õ¹®ÇÐ, ½Å¾à °³¹ß, Àç·á °úÇÐ, ÇÙ ¹°¸®ÇÐ µî °úÇÐ ºÐ¾ßÀÇ ¼ö¹é¸¸ ¸íÀÇ ¿¬±¸ÀÚµéÀÌ »ç¿ëÇÏ°í ÀÖ´Ù. ±êÇãºê¿¡´Â ¼ö¸¸ °³ÀÇ ÆÐÅ°Áö°¡ ³ÑÆÄÀÌ ¼öÇаú Çà·Ä ¶óÀ̺귯¸®¿¡ ÀÇÁ¸ÇÏ°í ÀÖÀ¸¸ç, Áö³´Þ¿¡´Â 3¾ï °ÇÀÌ ³Ñ´Â ´Ù¿î·Îµå Ƚ¼ö¸¦ ±â·ÏÇß´Ù. ÀÌ·¯ÇÑ ¸ðµç ¾ÖÇø®ÄÉÀ̼ÇÀº cuÆÄÀÌ´º¸Þ¸¯À» ÅëÇØ °¡¼Ó ÄÄÇ»ÆÃÀÇ ÇýÅÃÀ» ´©¸± ¼ö ÀÖ´Ù.
¸¹Àº °úÇÐÀÚµéÀº ³ÑÆÄÀ̸¦ »ç¿ëÇØ ´ÜÀÏ CPU Àü¿ë ³ëµå¿¡¼ ½ÇÇàµÇ´Â ÇÁ·Î±×·¥À» ±¸ÃàÇÑ´Ù. ÀÌ ¶§¹®¿¡ ÀüÀÚ Çö¹Ì°æ, ÀÔÀÚ Ãæµ¹±â, ÀüÆÄ ¸Á¿ø°æ°ú °°Àº ±â±â¿¡¼ ¼öÁýµÈ Á¡Á¡ ´õ Å« µ¥ÀÌÅÍ ¼¼Æ®¸¦ ó¸®ÇÏ´Â ¾Ë°í¸®ÁòÀÇ Ã³¸®·®ÀÌ Á¦ÇѵȴÙ.
cuÆÄÀÌ´º¸Þ¸¯Àº ¿¬±¸ÀÚµéÀÌ µ¥ÀÌÅÍ ¼¼Æ®ÀÇ Å©±â¿Í º¹À⼺ÀÌ Áõ°¡ÇÏ´Â »óȲ¿¡ ÀûÀÀÇÒ ¼ö ÀÖµµ·Ï µ½´Â´Ù. ³ÑÆÄÀÌÀÇ ´ëüÀ縦 Á¦°øÇØ ¼öõ °³ÀÇ GPU·Î È®ÀåÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. cuÆÄÀÌ´º¸Þ¸¯Àº ´ÜÀÏ GPU¿¡¼ Àüü ½´ÆÛÄÄÇ»ÅÍ·Î È®ÀåÇÒ ¶§ ÄÚµå º¯°æÀÌ ÇÊ¿äÇÏÁö ¾Ê±â ¶§¹®¿¡ ¿¬±¸ÀÚµéÀº ±Ô¸ð¿¡ »ó°ü¾øÀÌ °¡¼Ó ÄÄÇ»Æà ½Ã½ºÅÛ¿¡¼ ºÐ¼®À» ½±°Ô ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
½ºÅÄÆÛµå ´ëÇб³¿¡¼ ¿î¿µÇÏ´Â ¹Ì±¹ ¿¡³ÊÁöºÎ(U.S. Department of Energy) »êÇÏ ¿¬±¸¼ÒÀÎ SLAC ±¹¸³°¡¼Ó±â ¿¬±¸¼ÒÀÇ ¿¬±¸¿øµéÀº cuÆÄÀÌ´º¸Þ¸¯ÀÌ LCLS(Linac Coherent Light Source)¿¡¼ ¼öÇàµÇ´Â X-¼± ½ÇÇèÀÇ ¼Óµµ¸¦ ³ôÀÌ´Â µ¥ µµ¿òÀÌ µÈ´Ù´Â »ç½ÇÀ» ¹ß°ßÇß´Ù.
¹ÝµµÃ¼ Àç·á °úÇÐ ¹ß°ß¿¡ ÁßÁ¡À» µÐ SLAC ÆÀÀº cuÆÄÀÌ´º¸Þ¸¯ÀÌ µ¥ÀÌÅÍ ºÐ¼® ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼Óµµ¸¦ 6¹è Çâ»ó½ÃÄÑ, ½ÇÇà ½Ã°£À» ¸î ºÐ¿¡¼ ¸î ÃÊ·Î ÁÙÀδٴ »ç½ÇÀ» ¹ß°ßÇß´Ù. ÀÌ·¯ÇÑ ¼Óµµ Çâ»ó ´öºÐ¿¡ ÆÀÀº °íµµ·Î Àü¹®ÈµÈ ½Ã¼³¿¡¼ ½ÇÇèÀ» ¼öÇàÇÏ´Â µ¿½Ã¿¡ Áß¿äÇÑ ºÐ¼®À» ½ÇÇàÇÒ ¼ö ÀÖ°Ô µÆ´Ù.
À̵éÀº ½ÇÇè ½Ã°£À» º¸´Ù È¿À²ÀûÀ¸·Î »ç¿ëÇÔÀ¸·Î½á »õ·Î¿î Àç·á Ư¼ºÀ» ¹ß°ßÇÏ°í, °á°ú¸¦ °øÀ¯Çϸç, ¿¬±¸ °á°ú¸¦ ´õ »¡¸® ¹ßÇ¥ÇÒ ¼ö ÀÖÀ» °ÍÀ¸·Î ±â´ëÇÏ°í ÀÖ´Ù.
cuÆÄÀÌ´º¸Þ¸¯À» »ç¿ëÇÏ´Â ´Ù¸¥ ±â°üÀ¸·Î´Â ´ÙÀ½°ú °°Àº °÷µéÀÌ ÀÖ´Ù:
È£ÁÖ ±¹¸³ ´ëÇб³: ¿¬±¸¿øµéÀº È£ÁÖ ±¹°¡ ÄÄÇ»Æà ÀÎÇÁ¶ó(National Computational Infrastructure, NCI)ÀÇ ¸ÖƼ GPU ½Ã½ºÅÛ¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï LM(Levenberg-Marquardt) ÃÖÀûÈ ¾Ë°í¸®ÁòÀ» È®ÀåÇϱâ À§ÇØ cuÆÄÀÌ´º¸Þ¸¯À» »ç¿ëÇß´Ù. ÀÌ ¾Ë°í¸®ÁòÀº ´Ù¾çÇÑ ¾ÖÇø®ÄÉÀ̼ǿ¡ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, ¿¬±¸ÁøÀÇ Ãʱ⠸ñÇ¥´Â ´ë±Ô¸ð ±âÈÄ¿Í ±â»ó ¸ðµ¨ÀÌ´Ù.
·Î½º ¾Ù·¯¸ð½º ±¹¸³ ¿¬±¸¼Ò: ¿¬±¸¿øµéÀº µ¥ÀÌÅÍ °úÇÐ, °è»ê °úÇÐ, ¸Ó½Å ·¯´× ¾Ë°í¸®ÁòÀ» °¡¼ÓÈÇϱâ À§ÇØ cuÆÄÀÌ´º¸Þ¸¯À» Àû¿ëÇÏ°í ÀÖ´Ù. cuÆÄÀÌ´º¸Þ¸¯Àº 2,500°³ ÀÌ»óÀÇ ¿£ºñµð¾Æ GH200 ±×·¹À̽º È£ÆÛ ½´ÆÛĨÀ» žÀçÇÑ ½ÅÁ¦Ç° º£³ªµµ(Venado) ½´ÆÛÄÄÇ»Å͸¦ È¿°úÀûÀ¸·Î »ç¿ëÇϱâ À§ÇÑ Ãß°¡ µµ±¸¸¦ Á¦°øÇÒ ¿¹Á¤ÀÌ´Ù.
½ºÅÄÆÛµå´ë ³±â·ù ¿¬±¸ ¼¾ÅÍ: ¿¬±¸¿øµéÀÌ cuÆÄÀÌ´º¸Þ¸¯À» »ç¿ëÇØ ÆÄÀ̽㠱â¹Ý Àü»ê À¯Ã¼ ¿ªÇÐ ¼Ö¹ö(solver)¸¦ °³¹ß ÁßÀÌ´Ù. ¼Ö¹ö´Â ´ë±Ô¸ð °¡¼Ó ÄÄÇ»Æà Ŭ·¯½ºÅÍ¿¡¼ ´ë±Ô¸ð·Î ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ÀÌ ¼Ö¹ö´Â ´ë±Ô¸ð À¯Ã¼ ½Ã¹Ä·¹ÀÌ¼Ç Ä÷º¼ÇÀ» ÆÄÀÌÅäÄ¡(PyTorch)¿Í °°Àº Àαâ ÀÖ´Â ¸Ó½Å ·¯´× ¶óÀ̺귯¸®¿Í ¿øÈ°ÇÏ°Ô ÅëÇÕÇÑ´Ù. À̸¦ ÅëÇØ ¿Â¶óÀÎ ÈƷðú °È ÇнÀÀ» ºñ·ÔÇÑ º¹ÀâÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» Áö¿øÇÑ´Ù.
¸Å»çÃß¼¼Ã÷ÁÖ¸³´ë º¸½ºÅÏÄ·ÆÛ½º: ¿¬±¸ÆÀÀÌ Çö¹Ì°æ ¿µ»óÀ» ºÐ¼®ÇÏ°í È°¼º ¹°ÁúÀÌ ¹ß»êÇÏ´Â ¿¡³ÊÁö¸¦ ÃøÁ¤Çϱâ À§ÇØ ¼±Çü ´ë¼ö °è»êÀ» °¡¼ÓÈÇÏ°í ÀÖ´Ù. ¿¬±¸ÆÀÀº cuÆÄÀÌ´º¸Þ¸¯À» »ç¿ëÇØ 1,600¸¸ °³ÀÇ Çà°ú 4,000°³ÀÇ ¿·Î ÀÌ·ç¾îÁø Çà·ÄÀ» ºÐÇØÇß´Ù.
NPCI: ¾à 2¾ï 5õ¸¸ ¸íÀÇ ÀεµÀÎÀÌ ¸ÅÀÏ »ç¿ëÇÏ°í ÀÖÀ¸¸ç Àü ¼¼°è·Î È®Àå ÁßÀÎ ½Ç½Ã°£ µðÁöÅÐ °áÁ¦ ½Ã½ºÅÛÀ» ¿î¿µÇÑ´Ù. NPCI´Â º¹ÀâÇÑ Çà·Ä °è»êÀ» »ç¿ëÇØ Áö±ÞÀΰú ¼öÃëÀÎ °£ÀÇ °Å·¡ °æ·Î¸¦ ÃßÀûÇÑ´Ù. ÇöÀç ¹æ½ÄÀ¸·Î´Â CPU ½Ã½ºÅÛ¿¡¼ 1ÁÖÀÏ°£ÀÇ °Å·¡ ±â°£ µ¥ÀÌÅ͸¦ ó¸®ÇÏ´Â µ¥ ¾à 5½Ã°£ÀÌ ¼Ò¿äµÈ´Ù. ½ÇÇè¿¡ µû¸£¸é ¸ÖƼ ³ëµå ¿£ºñµð¾Æ DGX ½Ã½ºÅÛ¿¡¼ °è»êÀ» °¡¼ÓÈÇϱâ À§ÇØ cuÆÄÀÌ´º¸Þ¸¯À» Àû¿ëÇϸé Çà·Ä °ö¼À ¼Óµµ¸¦ 50¹è±îÁö ³ôÀÏ ¼ö ÀÖ´Ù. À̸¦ ÅëÇØ NPCI´Â 1½Ã°£ À̳»¿¡ ´õ Å« °Å·¡ ±â°£À» ó¸®ÇÏ°í °ÅÀÇ ½Ç½Ã°£À¸·Î ÀÚ±Ý ¼¼Å¹ ÀÇ½É »ç·Ê¸¦ ŽÁöÇÒ ¼ö ÀÖ´Ù.