
- TOP
- ã¿ã°äžèЧ
- ã¯ãŒã¯ã·ã§ãã
ã¯ãŒã¯ã·ã§ãã
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
ããã«ã¡ã¯ãResearchããŒã ã®ã¢ãããšçŠåã§ãã å
é±ããã£ãã£ïŒCADDiïŒã¯ECCV2026ã«åå ããäŒæ¥ç޹ä»ãç ç©¶å
容ã«é¢ãããã¹ã¿ãŒãçºè¡šããŠããŸãããåŒç€ŸãšããŠã¯ãåããŠã®åœéåŠäŒã§ã®ãã¹ã¿ãŒçºè¡šãšãªããŸããã ä»åã¯åœéã¯ãŒã¯ã·ã§ããã®ã¹ãã³ãµãŒãšããŠåå ãã以äžã®2ã€ã®ã¯ãŒã¯ã·ã§ããããªãŒã¬ãã€ãºããŸããã FOUND: Foundation Data for Industrial Tech Transfer Foundation Modelãå®äžçã®ç£æ¥é åã§æŽ»çšããäžã§å¿
èŠãšãªãããã¡ã€ã³åºæã®ããŒã¿ãæè¡ç§»è»¢ãããŒããšããã¯ãŒã¯ã·ã§ããã§ããç¹ã«ãFoundation DataãPhysical AIãWorld Modelã«çŠç¹ãåœãŠãç ç©¶ææãå®éã®çŸå Žã«ã€ãªããããã®èª²é¡ãè°è«ãããŸããã LIMIT : Representation Learning with Very Limited Resources éãããããŒã¿ãã©ãã«ãèšç®è³æºãªã©ã®å¶çŽäžã§ãã©ã®ããã«å¹æçãªè¡šçŸåŠç¿ãå®çŸããããæ±ãã¯ãŒã¯ã·ã§ããã§ããèªå·±æåž«ããåŠç¿ãFew-shot LearningãSynthetic Dataãªã©ãéããããªãœãŒã¹ãåæãšããããŸããŸãªã¢ãããŒããè°è«ãããŸãã æ¬èšäºã§ã¯ãã¯ãŒã¯ã·ã§ããéå¶ã®çµéšãECCVã«åå ããææ³ãæ°ã«ãªã£ãè«æã»çºè¡šã«ã€ããŠã¬ããŒãããŸãã ECCVãšã¯ ã¯ãŒã¯ã·ã§ããã«ã€ã㊠FOUND Workshop The Path to Manufacturing: Evolving 3D Generation to Intelligent Computer-Aided Design ç¹ã«å°è±¡ã«æ®ã£ãçºè¡š MolmoPoint: Better Pointing for VLMs with Grounding Tokens DreamCAD: Scaling Multi-modal CAD Generation using Differentiable Parametric Surfaces Steerable Visual Representations Make Geometry Matter for Spatial Reasoning Understanding Geometric Representations in Self-Supervised Vision Transformers via Subspace Intervention MeshFM: 2D Features Are All You Need for 3D Shape Understanding Yann LeCunæ°ã®KeynoteãWorld Models:Enabling the Next AI revolutionã ãŸãšã ECCVãšã¯ ECCVïŒEuropean Conference on Computer VisionïŒã¯ãCVPRãICCVãšäžŠã¶ãã³ã³ãã¥ãŒã¿ããžã§ã³åéã®äž»èŠãªåœéäŒè°ã®äžã€ã§ãã2幎ã«äžåºŠéå¬ãããä»å¹Žã¯ã¹ãŠã§ãŒãã³ã®ãã«ã¡ã§éå¬ãããŸãããäžçäžããç ç©¶è
ããšã³ãžãã¢ãéãŸããäŒå Žã§ã¯æ°å€ãã®ç ç©¶çºè¡šãã¯ãŒã¯ã·ã§ããããã¹ã¿ãŒã»ãã·ã§ã³ãªã©ãè¡ãããŠããŸããã ECCVã§ã¯ãç»åèªèã»çæã3Dããžã§ã³ããã«ãã¢ãŒãã«åŠç¿ãVision-Language ModelïŒVLMïŒãªã©ãã³ã³ãã¥ãŒã¿ããžã§ã³ã«é¢ããå¹
åºãç ç©¶ãçºè¡šãããŸãã ECCV2026ã®äŒå Ž ä»å¹Žã®æ¬äŒè°(main conference)ã§ã¯ãã¯ãŒã¯ã·ã§ãããé€ããŠã2,800æ¬ãè¶
ããè«æãæ¡æãããŠãããç¹ã«Physical AIãWorld Modelãžã®æ³šç®åºŠãé«ãã£ãå°è±¡ã§ããã ä»åã®åå ã§ã¯ããã£ãã£ã§åãçµãã§ããããŒããšã®é¢é£æ§ãæèããªãããCADã»B-Repã»3Dã»ç©ºéææ¡ã»VLMã®è§£éæ§ãªã©ã®ç ç©¶ãäžå¿ã«èŠãŠåããŸããã ã¯ãŒã¯ã·ã§ããã«ã€ã㊠æ¬ç« ã§ã¯ããã£ãã£ããªãŒã¬ãã€ãºããFOUNDã¯ãŒã¯ã·ã§ããã®éå¶çµéšãšãæ®æ®µåãçµãã§ããç ç©¶ããŒãã«é¢é£ããã¯ãŒã¯ã·ã§ãããThe Path to Manufacturingããäžå¿ã«ç޹ä»ããŸãã ã¯ãŒã¯ã·ã§ããã®ãã¹ã¿ãŒã»ãã·ã§ã³ã§çºè¡šãããã£ãã£ã®ç 究玹ä»ãã¹ã¿ãŒ FOUND Workshop åºç€ããŒã¿ãšç£æ¥å¿çšãäžå¿çãªãããã¯ãšããã¯ãŒã¯ã·ã§ããã§ãICCV 2025ã«ç¶ããŠ2åç®ã®éå¬ã§ä»åãçŠåãPrimary Organizerãæ
åœããŸãããåºç€ã¢ãã«ã¯CVã倧ããåé²ãããŸããããå®äžçã®ãã¡ã€ã³åºæãªéçšã«æã¡èŸŒããšãlong-tailãªååžãdomain shiftããã©ã€ãã·ãŒãå®å
šæ§ãã³ã¹ããšãã£ãå¶çŽã«ãã£ãŠãæåŸ
ããã»ã©ã®ä¿¡é Œæ§ãåºãŸããããã®"last-mile"ãåããããã«å¿
èŠãªãã¡ã€ã³ç¹åã®ããŒã¿ã®éåãåºç€ããŒã¿ïŒFoundation DataïŒãšåŒãã§ããŸãã FOUNDã¯ãŒã¯ã·ã§ããã®ãã©ã€ã€ãŒ Opening Remarksã§ã¯ã1幎åã®ç¬¬1åã§æããåããAre we fully delivering the value of foundation models across industries?ïŒç§ãã¡ã¯åºç€ã¢ãã«ã®äŸ¡å€ããç£æ¥ã®ãã¿ãã¿ãŸã§å±ããããŠããã ãããïŒãããããäžåºŠæãããšããããå§ããŸãããåãåãã§ãããã®1幎ã§è¶³å
ã®å°é¢ã¯åããŠããŸããç§ãã¡ãåãçµãã§ããCADã®é åã§ããMLLMã䜿çšããŠ1幎åãšã¯æ¯ã¹ãã®ã«ãªããªã粟床ã§ãå³é¢ãã3D CADãèµ·ããããšãã§ããããã«ãªããŸããããã ãç£æ¥ã®å°ºåºŠã§æž¬ããšè©±ã¯å€ãããçŽåã«å
¬éãããRealCADBenchãšãããã³ãããŒã¯ïŒãã¬ããªã³ãïŒã§ã¯ãã³ãŒããå®è¡ã§ããå²åã57ã81%ããäžæ¹ã§ãSurface IoUã¯11ã22%ã«ãšã©ãŸããŸããåãããšãšã䜿ããããšã¯åãã§ã¯ãªããæ¯è²ã¯å€ãã£ãããã©åãã¯ãŸã çããŠããããšããã®ã2åç®ã®åºçºç¹ã§ããã çŠåã«ããOpening Remarks ä»åãã©ãŒã«ã¹ãåœãŠãã®ã¯ãWorld ModelsãšPhysical AIã§ãããã®1幎ã§é²å±ããã£ãšãéãã£ãé åã§ããäžæ¹ãåºç€ããŒã¿ãšãã芳ç¹ã§ã¯ã®ã£ããã倧ããé åã§ããããŸããèšèªã¢ãã«ãæ°å
ããŒã¯ã³ã§åŠç¿ãããŠããã®ã«å¯ŸããŠãããããã®åŠç¿ããŒã¿ã¯çŽ100äžè»è·¡ãæ¡ã倧ããéããŸãã æåŸ
è¬æŒã«ã¯ã以äžã®4åããè¿ãããŸããã Iro Armeniæ°ïŒStanford UniversityïŒ Amir Baræ°ïŒImperial College London / AMI LabsïŒ Anastasia Varavaæ°ïŒSEBx / LinkïŒ Marc Pollefeysæ°ïŒETH Zurich / Microsoft Mixed Reality and AI LabïŒ ãšãã«å°è±¡ã«æ®ã£ãã®ã¯ãIro Armeniæ°ã®è¬æŒã§ãããéè·¯ããæ®åœ±ãããGoogleãããã®ãããªç»åãããšã«ãVLMã䜿ã£ãŠäœå®
ã建ç¯ç©ãäœã§äœãããŠããã®ããã©ã®ãããã®èä¹
æ§ãããã®ããæšå®ãããããããäžé£ã®ç ç©¶ã玹ä»ããŠãããŸããã建ç©ã®å€å£ã®çŽ æãæšå®ããFacade Material Mappingãšããã¿ã¹ã¯ã§ã¯8å²ã»ã©ã®ç²ŸåºŠãåºãŠããŠããã®çšéã§ã¯ããã§ååã«æçšã ãšããããšã§ãããåºç€ã¢ãã«ããã®ãŸãŸæã¡èŸŒãã ã ãã§ã¯ç²ŸåºŠãå±ããªãå Žé¢ããããŸãããããã«å€§ããªã³ã¹ãããããã«ç²ŸåºŠãåŒãäžãã工倫ãéããŠããŠãæ±çšã®ã¢ãã«ããã¡ã€ã³ã®èª²é¡ã«ã©ãå±ããããšããåããžã®å
·äœçãªçãã«ãªã£ãŠããŸãããæã
ãåãçµãã§ããè£œé æ¥ã®åéã§ããããããã¢ã€ãã¢ã¯éåžžã«æçšã ãšæããŸããã ã¯ãŒã¯ã·ã§ããã®åæ¥ã«ããã9æ8æ¥ã®å€ã«ã¯ãåãé±ã«éå¬ããLIMITãšã®ååã¬ã»ãã·ã§ã³ãããã«ã¡äžå€®é§
åã®ã¬ã¹ãã©ã³ã§éããŸãããè²»çšã¯ãäž¡ã¯ãŒã¯ã·ã§ããã®ã¹ãã³ãµãŒã§ããSansanãSB IntuitionsããããŠåŒç€Ÿãã£ãã£ã®3ç€Ÿã§æã¡ãåå è
ã¯ç¡æã§åå ã§ãã圢ã«ããŠããŸããè³ãããªé£²ã¿äŒã§ã¯ãªãç ç©¶è
ãèœã¡çããŠè°è«ã§ããå Žã«ãããã£ãã®ã§ã座ã£ãŠãã£ããé£äºãã§ããããšãç«ã¡äžãã£ãŠèªç±ã«äº€æµã§ããã¹ããŒã¹ãããããšãåŠäŒäŒå Žããã®ç§»åãè² æ
ã«ãªããªãããšããšããæ¡ä»¶ã§äŒå Žãæ¢ããŸãããåœæ¥ã¯ãäž¡ã¯ãŒã¯ã·ã§ããã®æåŸ
è¬æŒè
ãã¯ãããèåãªç ç©¶è
ã®æ¹ã
ã«æ°å€ãåå ããŠããã ããŸãããã¯ãŒã¯ã·ã§ããã®ããã°ã©ã ã®äžã§ã¯æéãåããªã話é¡ãŸã§ãã£ãã話ãããšãã§ããéå¶ããåŽãšããŠãåŸããã®ã®å€§ããæéã«ãªããŸããã ã¯ãŒã¯ã·ã§ããã®ç«ã¡äžãããåœæ¥ã®éå¶ãçµäºåŸã®ãã©ããŒãŸã§ãå®éã«ãã£ãããšã¯ããã¥ã¢ã«ã®åœ¢ã§ãŸãšããŠå
¬éããŠããŸããããããŒã¶ã«ã®æåºãããCFPã®èšèšãç»å£è
ãã¹ãã³ãµãŒãžã®å£°ãããåœæ¥ã®é²è¡ãã¬ã»ãã·ã§ã³ã®æé
ãŸã§ãå幎ãããã®ãããžã§ã¯ããšããŠæç³»åã§æžãããã®ã§ãã第1åïŒICCV2025ïŒã®çµéšãããšã«ãããã®ã§ãããããããåœéäŒè°ã§ã¯ãŒã¯ã·ã§ããããªãŒã¬ãã€ãºããŠã¿ãããšããæ¹ã«ã¯åèã«ãªããããããŸãããèå³ã®ããæ¹ã¯ãã¡ããã芧ãã ããã åœéäŒè°ã¯ãŒã¯ã·ã§ããã®ãªãŒã¬ãã€ãºã»å®è·µããã¥ã¢ã«ïŒnote, 2025幎12æïŒ https://note.com/gatheluck/n/ndf49c03bdb8a The Path to Manufacturing: Evolving 3D Generation to Intelligent Computer-Aided Design æ¬ã¯ãŒã¯ã·ã§ããã¯ãçæAIãè£œé æ¥ã«å¿çšããŠããäžã§ã3Dã¢ãã«ãã©ããŸã§å®éã®è£œé ã«äœ¿ãããã®ãšããŠçæã§ããããæ±ãã¯ãŒã¯ã·ã§ããã§ãã 3D Foundation Modelã«ããçææè¡ãçºå±ããäžæ¹ã§ã補é çšéã§ã¯ãèŠãç®ããããããã ãã§ã¯äžååã§ã幟äœåŠçãªæ£ç¢ºæ§ãã補é å¯èœãªåœ¢ç¶ã§ããããšãæ±ããããŸãã ãã®ããã補é ã«ããã3Dã¢ããªã³ã°ã®åºç€ã§ããCADããCADã®èšèšæé ãããã°ã©ã ãšããŠæ±ããããªçæAIã®æŽ»çšã«ã€ããŠè°è«ãããŠããŸããã The Path to Manufacturingã¯ãŒã¯ã·ã§ãã æåã®Keynoteã§ã¯ãSimon Fraser Universityã®Hao (Richard) Zhangæ°ãã3Dçæã®çºå±ãæ¯ãè¿ããªããã補é ãŸã§ãèŠæ®ãããªããåã«åœ¢ç¶ãçæããã ãã§ã¯ãªããæ§é åãããCAD衚çŸãå¿
èŠã«ãªããšãã話ããããŸãããç¹ã«ãéšåã®æ§é ã ãã§ãªããã¢ã»ã³ããªãæ©èœãŸã§èæ
®ãã衚çŸããSpatial AIãPhysical AIãEmbodied AIãWorld Modelã«ãããŠéèŠã«ãªããšããç¹ãå°è±¡çã§ããã ç ç©¶äŸãšããŠã建ç¯ç©ãããã°ã©ã ãšããŠè¡šçŸããArcProãªã©ã玹ä»ããã3Dã®ã圢ããããããæå³ã®ããæ§é å衚çŸãžãšé²ãã§ããæµããæããŸãããArcProã§ã¯ãå»ºç¯æ§é ãç¬èªã®DSLã«ããããã°ã©ã ãšããŠè¡šçŸããçãªç¹çŸ€ãããã®ããã°ã©ã ãæšå®ããŠããŸãã CADã®èšèšæé ãããã°ã©ã ãšããŠè¡šçŸããLLMã«ãã®ããã°ã©ã ãçæãããããšã§ãCADçæãã³ãŒãçæãšããŠæãããšããã¢ã€ãã£ã¢ã¯é¢çœããšæããŸããã Niloy J. Mitraæ°ã®Keynoteã§ã¯ã4D GeometryãããŒãã«ã3Dã¢ãã«ã«æéãåããå ãã衚çŸã«ã€ããŠç޹ä»ãããŸãããActionMeshãªã©ã®ç ç©¶ã«å ããèªç¶èšèªã«ããB-Rep CADç·šéã®ç ç©¶ã«ãè§ŠããããŠããŸããã Xin Tongæ°ã®Keynoteã§ã¯ã3Dçæããshapeããããtopologyããžãšçºå±ãããæ¹åæ§ã玹ä»ãããŸããã2Dã¹ã±ããããã®3DçæããCADã®B-Repã®æ§é ã»ããããžãŒãæ±ãç ç©¶ãåãäžããããŸããã Dinesh Manochaæ°ã®Keynoteã§ã¯ãèŠãç®ãšããŠã¯æ£ãã3Dã¢ãã«ã§ããç©ççã«ã¯æ£ãããªãããšããããšããåé¡ãåãäžããããŸãããããã§ãåŸæ¥ã®ãžãªã¡ããªãå€èгãåçŸããã ãã®3Dã¢ãã«ããç©ççãªæ§è³ªãã€ã³ã¿ã©ã¯ã·ã§ã³ãŸã§æ±ããã¢ãã«ãžçºå±ãããããçŸå®äžçã«è¿ãDigital Twinãäœãããšãç®æããŸãããã®äžæ¹ã§ãç»åã ãããåŸãããæ
å ±ã«ã¯éçããããèŠèŠæ
å ±ã ãã§ã¯å€æã§ããªãç©ççãªæ§è³ªããããšããç¹ã玹ä»ãããŸããã Panelã§ã¯ãLLMãç ç©¶ãã¢ã€ãã¢åµåºãŸã§æ
ãããã«ãªã£ãŠããäžã§ãç ç©¶è
ã¯ä»åŸã©ã®ãããªæ¹åã«é²ãã¹ããããšããåŠçããã®è³ªåããããŸããã ããã«å¯ŸããŠã以äžã®ãããªã¢ããã€ã¹ããããŸããã LLMã§ã¯æ±ãã«ãããšããžã±ãŒã¹ã«åãçµã ååŸãé£ããããŒã¿ãå¿
èŠãšããåé¡ã«åãçµã¿ãããŒã¿ãèç©ãã ææ°ã®ç ç©¶ã ãã§ãªããéå»ã®è«æã«ãç®ãåãã LLMæä»£ã«ç ç©¶ãé²ããäžã§åèã«ãªãå
容ã§ãå人çã«ãå匷ã«ãªããŸããã ç¹ã«2ç¹ç®ã¯ã補é çŸå Žã«èç©ãããå³é¢ã»æè¡ããŒã¿ãšããããã£ãã£ãªãã§ã¯ã®è²ŽéãªããŒã¿è³ç£ã«ãã€ãªãã話ã§ããã®åŒ·ã¿ãæ¹ããŠå®æã§ããå
容ã§ããã æ¬ã¯ãŒã¯ã·ã§ããã®Paper Spotlightã»ãã·ã§ã³ã§ç޹ä»ãããç ç©¶ã®äžã§ããDacheng Qiãã«ãããPointer-CAD v2ããç¹ã«å°è±¡ã«æ®ããŸããã å代Pointer-CADã§ã¯ãB-Repã®åœ¢ç¶æ
å ±ãšCADã®ã³ãã³ãåãçµã¿åãããæ¢åã®é¢ããšããžãçŽæ¥æå®ããªããCADã¢ãã«ãçæããææ³ãææ¡ãããŠããŸãã ä»å玹ä»ãããŠããPointer-CAD v2ã§ã¯ãããã«å¯žæ³ãæèããCADçæã«å¯Ÿå¿ãããPlan-Then-Constructããšããæ§æã«ãã£ãŠããã©ã¡ãŒã¿ã®æšè«ãšå¹Ÿäœåœ¢ç¶ã®æ§ç¯ãåé¢ããŠããŸãã ãŸããv2ã§ã¯æ°å€ãã©ã¡ãŒã¿ã颿£åãããé£ç¶å€ãšããŠçŽæ¥äºæž¬ããããšã§ãéååã«ãã誀差ãé¿ãã寞æ³ãæ£ç¢ºã«ä¿ã£ãCADçæãç®æããŠããŸãã çæããã圢ç¶ã ãã§ãªãããã©ã®å¯žæ³ã§äœããããæç€ºçã«æ±ããç¹ãã補é ãåæãšããCADçæãšãã芳ç¹ã§ãè峿·±ããšæããŸããã ä»åã®ã¯ãŒã¯ã·ã§ãããéããŠã3Dçæã®ç ç©¶ããããããã圢ãäœããã ãã§ãªããæ§é ã»ããããžãŒã»å¯žæ³ã»æ©èœã»ç©çç¹æ§ãªã©ãçŸå®äžçã®ãªããžã§ã¯ããæ§æããæ
å ±ãã©ããŸã§æ±ããããšããæ¹åã«åºãã£ãŠããããšã宿ããŸããããŸããå
šäœãéããŠãPhysical AIã«ã€ããŠã¯ãŸã çºå±éäžã§ãå®äžçã§æ¬åœã«æ©èœãããã®ãäœãã«ã¯ããŸã å€ãã®èª²é¡ããããšããå°è±¡ãåããŸããã Dinesh Manochaæ°ã®Keynoteã§ãYou can't cheat physicsããšããèšèããããèŠãç®ãšããŠæ£ãããã®ãäœãã ãã§ã¯ãªããå®éã«æ©èœãããã®ãäœãã«ã¯ãç©ççãªæ£ãããŸã§èããå¿
èŠããããšããè¶£æšãç¹ã«å°è±¡ã«æ®ããŸããã ç¹ã«å°è±¡ã«æ®ã£ãçºè¡š MolmoPoint: Better Pointing for VLMs with Grounding Tokens Christopher Clark, Yue Yang, Jae Sung Park, Zixian Ma, Jieyu Zhang, Rohun Tripathi, Mohammadreza Salehi, Sangho Lee, Taira Anderson, Winson Han, Ranjay Krishna åŸæ¥ã®ããã«åº§æšãããã¹ããšããŠåºåããã®ã§ã¯ãªããç»åäžã®visual tokenãçŽæ¥éžæããããšã§pointingãè¡ãææ³ã§ããå人çã«ã¯ãããããpointingã®ä»çµã¿ã䜿ã£ãŠãæ¢åã®æ€åºã¿ã¹ã¯ã®äžéšããæ€åºãã§ã¯ãªããpointingããšããŠæãçŽããªããããšããç¹ã«èå³ãæã¡ãŸããã DreamCAD: Scaling Multi-modal CAD Generation using Differentiable Parametric Surfaces Mohammad Sadil Khan, Muhammad Usama, Rolandos Alexandros Potamias, Didier Stricker, Muhammad Zeshan Afzal, Jiankang Deng, Ismail Elezi CADãBezier surfaceãšããŠè¡šçŸããCADã¢ãããŒã·ã§ã³ã®ãªã倧éã®3D meshãåŠç¿ã«å©çšã§ããããã«ããç ç©¶ã§ãã1.3M以äžã®meshã䜿ãããããåŸæ¥ã®CADçæã§ããã«ããã¯ã«ãªããããã£ãã¢ãããŒã·ã§ã³ã«äŸåããã¹ã±ãŒã«ãããããšããçºæ³ãé¢çœããšæããŸããã å®éã«èè
ã®æ¹ãšãã話ãããŸããããè€éãªCADçæã«ã¯ãŸã 課é¡ããããšã®ããšã§ãããããã§ããæ¢åã®å€§éã®3D meshãšããããããŸã§ååã«æŽ»çšã§ããŠããªãã£ãããŒã¿ãCADçæã«åã蟌ããšããæ¹åæ§ã¯è峿·±ãã£ãã§ãã Steerable Visual Representations Jona Ruthardt, Manu Gaur, Deva Ramanan, Makarand Tapaswi, Yuki M. Asano ç»åäžã®ãã©ãã«æ³šç®ãããããèªç¶èšèªã§æå®ã§ããèŠèŠè¡šçŸãææ¡ããŠããŸãã æ±çšçãªViTã®ç¹åŸŽãä¿ã¡ãªããã察象ã屿§ã«å¿ããŠèŠèŠè¡šçŸãã®ãã®ãsteerã§ãããããç®çã«å¿ããŠèŠãããã®ãæå®ãããã¿ã¹ã¯ãžã®å¿çšãæåŸ
ã§ããŸãã ãã¡ã€ã³åºæã®åŠç¿ããŒã¿ãéãããæ±çšVision Modelã«å¯ŸããŠããèšå·ã®èŠãç®ãèšèªã§èª¬æããããšã§ãè£œé æ¥ã®å³é¢ãªã©ã«å«ãŸããèšå·ã®èå¥ã«æŽ»çšã§ããã®ã§ã¯ãªãããšæããè峿·±ãæ¹åæ§ã ãšæããŸããã Make Geometry Matter for Spatial Reasoning Shihua Zhang, Qiuhong Shen, Shizun Wang, Tianbo Pan, Xinchao Wang VLMã«3Dã®geometry tokenãå
¥ããã ãã§ã¯ãã¢ãã«ãå®éã«ã¯2Dã®èŠãç®ã«é Œã£ãŠããŸããšããåé¡ã«çç®ããç ç©¶ã§ãã2Dæ
å ±ãžã®äŸåãæããgeometryãå®éã®ç©ºéæšè«ã«äœ¿ãããããšã§ãéçã»åçãªspatial reasoningã®åäžãç®æããŠããŸãã Understanding Geometric Representations in Self-Supervised Vision Transformers via Subspace Intervention Weichen Zhou, Yawen Zou, Chunzhi Gu, Ran Dong, Haoran Xie, Chao Zhang èªå·±æåž«ããViTã®å
éšã«geometryã®æ
å ±ãã©ã®ããã«è¡šçŸãããŠããã®ãããlinear probeã®éã¿ãSVDã§åè§£ããããšã§èª¿ã¹ãç ç©¶ã§ããå±€ã«ãã£ãŠgeometryã®æ
å ±éãç°ãªããäžéå±€ã§å¹ŸäœåŠçãªç²ŸåºŠãé«ããªãããšãªã©ãåæããŠããŸãã MeshFM: 2D Features Are All You Need for 3D Shape Understanding Jinfan Zhou, Richard Liu, Itai Lang, Rana Hanocka 2Dã®Visual Foundation ModelããåŸãããç¹åŸŽã3D surfaceã«èžçãã3D annotationãªãã§æ±çšçãª3D featureãåŠç¿ããææ³ã§ãã2Dã§åŠç¿ããã衚çŸã ãã§ããpart segmentationãcorrespondenceãdeformationãªã©ã®3Dã¿ã¹ã¯ã«å©çšã§ããç¹ãè峿·±ãç ç©¶ã§ããã Yann LeCunæ°ã®KeynoteãWorld Models:Enabling the Next AI revolutionã Yann LeCunæ°ã®KeynoteãWorld Models:Enabling the Next AI revolutionãã§ã¯ãLLMã®ã¹ã±ãŒãªã³ã°ã ãã§ã¯äººéã¬ãã«ã®AIã«ã¯å°éãããäžçã¢ãã«ãJEPAã®ãããªæ°ããã¢ãããŒããéèŠã«ãªããšãã䞻匵ã玹ä»ãããŸããã Yann LeCunæ°ã®Keynoteããããç ç©¶è
ãžã®ã¡ãã»ãŒãžã ãã®Keynoteã¯ECCVã«éããSNSãªã©ã§ã話é¡ã«ãªã£ãŠããã®ã§ããåãã®æ¹ãå€ããããããŸãããæåŸã®ãIf you are interested in human-level AI, don't work on LLMsããšããã¡ãã»ãŒãžãå«ããå°è±¡ã«æ®ãå
容ã§ããã ãŸãšã æ¬èšäºã§ã¯ãECCVã«åå ããææ³ãæ°ã«ãªã£ãè«æã»çºè¡šã«ã€ããŠç޹ä»ããŸãããå°ãã§ãECCVã®é°å²æ°ããçŸå°ã§æããç ç©¶ã®é¢çœããäŒãã£ãŠããã°å¬ããã§ãã ä»åã®åå ã§ããŸããŸãªç ç©¶ããå€ãã®åºæ¿ãåããŸãããä»åŸã¯ç ç©¶ããŒã ãšããŠã次ã®åœéäŒè°ã§ã®è«æçºè¡šãç®æããŠãããããšæããŸãã ãã£ãã£ã§ã¯çŸåšã2Dã»3Dé åãäžå¿ã«Research EngineerãåéããŠããŸãããã£ãã£ãã©ã®ãããªç ç©¶éçºã«åãçµã¿ããããéããŠäœãå®çŸããããšããŠããã®ããå°ãã§ãæ°ã«ãªã£ãæ¹ã¯ããã²ãæ°è»œã«ãé£çµ¡ãã ããã speakerdeck.com open.talentio.com
ã¯ãããŸããŠããã£ããŒã§ãã æ®æ®µã¯ãCopilotãPower PlatformïŒäž»ã«ã¯Copilot StudioãPower AutomateïŒã®æŽ»ç𿝿Žãã¯ãŒã¯ã·ã§ããè¬åž«ããã£ãŠãããã®ã§ãã ãããªç§ãæè¿ãCopilot StudioãéããŠæã£ãããšããããŸãã
Go Conference 2026 ç®æ¬¡ ã¯ããã« ãšããªãŒã®ã¹ãã³ãµãŒããŒã¹ ã¢ã³ã±ãŒãããŒã é£ã¯ã€ãºã»ããåŒã ããã«ã㣠ã»ãã·ã§ã³çŽ¹ä» Go ã«ããã FFI ã®ãããŸã§ãšãããã cgo ãšãã®èª²é¡ WebAssembly ã䜿ã£ã FFI wasmify ãš wasm2go ææ³ ã¯ãŒã¯ã·ã§ããçŽ¹ä» go.devã®æ©ãæ¹ããã®å
ãž ãGoå
¬åŒãªãœãŒã¹ã®æ
ãææ¥ããã®èª¿ã¹æ¹ãæã«å
¥ããã¯ãŒã¯ã·ã§ããã åå ããçç± ã¯ãŒã¯ã·ã§ããã®æµã èšå2 ã®èª¿æ» ã¯ãŒã¯ã·ã§ããã§åŸãããš Go à SIMDã§é«éåãããã¯ãã«æ€çŽ¢ ~ ã«ãŒãã©ã€ã³ã¢ãã«ã§SIMDãå¹ãå¢çãæ¢ãïŒ SIMDãšã¯ GoããSIMDã䜿ã ãã³ãããŒã¯ã§å¹æã確èªãã int8éååã§ããŒã¿éãæžãã ã¯ãŒã¯ã·ã§ãããäœéšã㊠ãŸãšã éå
¬åŒã¢ãã¿ãŒã€ãã³ã Go BASH Vol.3 ã®ãç¥ãã æåŸã« ã¯ããã« 2026幎9æ11æ¥(é)ã«äžéã»ã³ãã©ã«ããŒã¯ã§éå¬ããããGo Conference 2026ãã«ä»å¹Žãåå ãããŠããã ããŸããïŒ ä»å¹Žãåå ã¬ããŒããšããŠãäŒå Žã®æ§åãã»ãã·ã§ã³ã®ææ³ã«ã€ããŠãå±ãããŸãïŒ gocon.jp ä»å¹Žã®ããŒãã¯ã Go Far, Go Together ãã§ããã Go Far, Go Together ãã®ããŒãã®éãã人ãšã®ç¹ãããéèŠèŠããŠããããšã匷ãæããããã«ã³ãã¡ã¬ã³ã¹ã ã£ããšæããŸãã sanposhiho ããã®Keynoteã»ãã·ã§ã³ãOpen Source, Open Worldãã«å§ãŸãã speakerdeck.com ã³ãã¥ãã±ãŒã·ã§ã³ã¹ããŒã¹ã®Go Context WallãäŒGoæ¿ãã¹ãã³ãµãŒããŒã¹ãé£æåºŠå¥ã»ãã·ã§ã³ã»ã¯ãŒã¯ã·ã§ããããããŠæåŸã¯æèŠªäŒãšãGoãå§ãããŠã®äººã§ããçç·Žã®æ¹ã§ãæåããæåŸãŸã§æ¥œãããã«ã³ãã¡ã¬ã³ã¹ã ã£ãã®ã§ã¯ãªãããªãšæããŸãã ãšããªãŒã®ã¹ãã³ãµãŒããŒã¹ ãšããªãŒã¯ä»å¹Žã¯ Silver ã¹ãã³ãµãŒãšããŠããŒã¹ãåºå±ãããŠããã ããŸããïŒ åŒç€ŸãµãŒãã¹ã§ããããªãã·ã¥ãããã³ãã€ã¡ãŒãžããé»è²åºèª¿ã®ããŒã¹ãšãªã£ãŠããŸãã ãšããªãŒããŒã¹ ããŒã¹ã«è¶³ãéãã§ããã ããçæ§ãæ¬åœã«ããããšãããããŸããïŒ ã¢ã³ã±ãŒãããŒã æšå¹Žã«åŒãç¶ãã¢ã³ã±ãŒãããŒããçšæããŸããïŒ ãããªãã®Goè峿ããŠãã ããããšããããŒãã§ãGoæŽ (Goã®å©çšæŽ)ãšæ°ã«ãªããããã¯ã亀ããå Žæã«ã·ãŒã«ã貌ã£ãŠããã ããŸããã æçµçµæã¯ãã¡ãã§ãïŒ ã¢ã³ã±ãŒãçµæ GoæŽ0ã15幎以äžã®æ¹ãŸã§å¹
åºãGopherã«åçããã ããŸããããGoæŽ0ã1å¹Žã®æ¹ã¯èšèšææ³ãããçšåºŠçµéšã®ããæ¹ã¯ææ°ã®Go1.27ã®ãããã¯ã«é¢å¿ãè¥å¹²å¯ã£ãŠãããšãããé¢çœãéšåã§ããã ãŸãã©ã®GoæŽã®æ¹ãGoãšAIã«å¯ŸããŠé¢å¿ããããã©ããªAI Agentã瀟å
ã§äœ¿ãããŠããã®ãããŸãã©ã®ããã«Harnessãäœã£ãŠããã®ããšãã£ã話é¡ã«ã€ããŠããŒã¹ã§ã¯ããããã話ãããããšãã§ããŸããïŒ é£ã¯ã€ãºã»ããåŒã ä»å¹Žããå°å
¥ããæ°ããããŒã¹äŒç»ã§ãããã¯ã€ãºãéåžžã«çãäžãããŸããïŒ ã¯ã€ãºã¯é£ã«é¢ããåé¡2åãGoã«é¢ããåé¡2åã®èš4åã§æ§æãããŠããŸãã æçµåé¡ã®Goã®å®è¡çµæãçããã¯ã€ãºã§ãèšèªä»æ§ãçè§£ããŠããªããšè§£ããªãã£ãããèããããšããªãã£ããŠãŒã¹ã±ãŒã¹ã«å¯ŸããŠåçããå¿
èŠããã£ãããšãé£ããã«èšå®ããã ããã£ãŠèŠæŠããŠããåå è
ã®æ¹ãå€ãèŠãããŸããã ã¯ã€ãº ããã«ã㣠æ¯åã¯è»œéã¹ããŒã³ããŸãªæ¿ãè箞ããããããªã©æ®æ®µã®æçã§äœ¿ãããããã³ã°ããºã§ãã ããªãã·ã¥ãããã³ã°ã㺠ããºã¬ãåŒããæ¹ã«ããåŒç€ŸCTOãèªããã€ã¹ãã£ã³ã°ããŠéžãã ãCTOãã¬ã³ããã®ã³ãŒããŒãšã¹ããã«ãŒããæž¡ãããŸããã CTOãã¬ã³ã CTOãã¬ã³ãã®å¶äœç§è©±ã«ã€ããŠã¯äžèšãåç
§ãã ããã 人々へ明るい変化を提供する、オリジナルブレンドコーヒー「every CTO Blend」を制作 ãããã³ã°ããºãåœãã£ãæ¹ããã¯ããæè¿èªçãå§ããã®ã§ããã䜿ã£ãŠé 匵ããŸãããšãã£ãææ³ããããŸãã«ä»æ¬²ããã£ããã®ãªã®ã§å¬ããã§ãããšãã£ãææ³ãããã ããŠéå¶ãšããŠãå¬ããã£ãã§ãïŒ ãŸãããã®ããåŒãã§åœéžãããŸãªæ¿ãä»ã§ã䜿ã£ãŠãããšããæ¹ãããããšãäœåºŠãã€ãã³ãã«åºå±ããŠãããšããããããšãããã®ããšå¬ãããªããŸããã ã»ãã·ã§ã³çŽ¹ä» Go ã«ããã FFI ã®ãããŸã§ãšãããã çºè¡šè
: goccy ããïŒæ ªåŒäŒç€ŸLayerXïŒ ã¬ããŒã: ãããããŸããšã ã¹ã©ã€ã: speakerdeck.com é£äºç®¡çã¢ã㪠ãã«ã·ã« ãæ
åœããŠãã ãããããŸããšã ã§ããç§ããã¯ãgoccy ããã®çºè¡šãGo ã«ããã FFI ã®ãããŸã§ãšãããããã«ã€ããŠç޹ä»ãããŠããã ããŸãã FFIïŒForeign Function InterfaceïŒã¯ãåäžããã»ã¹å
ã§ãããèšèªã§æžãããããã°ã©ã ããä»ã®èšèªã§å®è£
ãããæ©èœãåŒã³åºãããã®ä»çµã¿ã§ããæ¬ã»ãã·ã§ã³ã§ã¯ãåŸæ¥ã® cgo ãäœ¿ãæ¹æ³ãšããã«å¯Ÿãã課é¡ãããgoccy ããã«ãã WebAssembly ãæŽ»çšããæ°ããæ¹æ³ãŸã§ã玹ä»ããŠããã ããŸããã cgo ãšãã®èª²é¡ ã¹ã©ã€ã 3ã15 ããŒãž FFI ã§ã®åŒã³åºãã¯ãABIïŒApplication Binary InterfaceïŒãšããããã€ããªéã§é¢æ°ãåŒã³åºãããã®çŽæãã«åãããŠè¡ãå¿
èŠããããŸããGo ã§ã¯ããã® ABI ã«åãããåŒã³åºãã cgo ãåŒãåããŠããŸãã çºè¡šã®åºç€ã§ã¯ãcgo ãæ±ãã課é¡ã3ã€ã®èгç¹ããæŽçãããŠããŸããã ã¡ã¢ãªç®¡ç : Go ãš C ã§ã¯ã¡ã¢ãªã®ç®¡çãåãããŠããããã¡ã¢ãªãªãŒã¯ãèµ·ãããããC åŽã§ã»ã°ã¡ã³ããŒã·ã§ã³éåïŒSIGSEGVïŒãèµ·ãããš Go ã®ããã»ã¹ããšèœã¡ãŸããããã«äž¡è
ã¯ã¢ãã¬ã¹ç©ºéãå
±æããŠããã®ã§ãC åŽã®äžå
·åã§ Go åŽã®ã¡ã¢ãªãèªã¿æžãã§ããŠããŸããŸãã å倿 : æ§é äœãžã®ãã€ã³ã¿ããã³ãŒã«ããã¯ã®ããã®é¢æ°ãã€ã³ã¿ã®åãæž¡ããè€éã«ãªããŸããçžæã C++ ã ãšããã«é£ãããªããŸãã éçºã»ããã〠: C ã³ã³ãã€ã©ãå¿
èŠã«ãªããã Go ã®ã¯ãã¹ã³ã³ãã€ã«ã®æè»œãã倱ãããGo ã®ãããã¡ã€ã©ããããã¬ã C åŽã®ã³ãŒãã«ã¯äœ¿ããŸããã ãã®ããã§ããã€ã³ã¿ã®ã©ã€ããµã€ã¯ã«ç®¡çãã³ãŒã«ããã¯ã®å®è£
ãéçãªã³ã¯ã«ããã·ã³ã°ã«ãã€ããªåãšãã3ã€ã®ãã¯ããã¯ã玹ä»ãããŸããããã ããããã¯å¯Ÿççæ³ã§ãã¡ã¢ãªã®ç®¡çãåãããŠããããšã C ã³ã³ãã€ã©ãå¿
èŠã«ãªãããšã¯ãcgo ã䜿ãéãå€ãããŸããã æ®æ®µã¯ Go ã ãã§å®çµããéçºãããŠããã®ã§ cgo ãæžãæ©äŒã¯å
šããªãã®ã§ããã課é¡ã詳ãã玹ä»ããŠããã ããããŸã掻çšãããŠããªãçŸç¶ãé£ããã«ããªãçŽåŸããŸããã WebAssembly ã䜿ã£ã FFI ã¹ã©ã€ã 16ã23 ããŒãž ãããŸã§ã®èª²é¡ãèžãŸããŠããã¡ã¢ãªãå®å
šã«æ±ãããããGo ã®ã¯ãã¹ã³ã³ãã€ã«ã®æ©æµãåãããããšããåæ©ãã WebAssemblyïŒWASMïŒãäœ¿ãæ¹æ³ã玹ä»ãããŸããã WASM ã¢ãžã¥ãŒã«ã¯ãèªåå°çšã«å²ãåœãŠãããé£ç¶ããã¡ã¢ãªé åïŒãªãã¢ã¡ã¢ãªïŒããèªã¿æžãã§ããªãããããã¹ããšã¢ãã¬ã¹ç©ºéãå®å
šã«åé¢ãããŸããç¯å²å€ã¢ã¯ã»ã¹ã¯ããã»ã¹ã®ã¯ã©ãã·ã¥ã§ã¯ãªã Go ã®ãšã©ãŒã«ãªããŸããã·ã¹ãã ã³ãŒã«ãããã¹ããèš±å¯ãããã®ã ãã WASI çµç±ã§å®è¡ãããŸããWASI 㯠WebAssembly System Interface ã®ç¥ã§ãWASM ãããã¡ã€ã«ããããã¯ãŒã¯ãšãã£ããã¹ãåŽã®æ©èœã䜿ãããã®æšæºã€ã³ã¿ãŒãã§ãŒã¹ã§ããGo åŽã¯ WASM ã embed ã§åã蟌ã¿ãPure Go ã®ã©ã³ã¿ã€ã ã§ãã wazero ã§å®è¡ããã®ã§ãå
ã»ã©ã®èª²é¡ã®å€ãã¯ããã§è§£æ¶ãããŸãã ãã ããC/C++ ãããžã§ã¯ããã WASM ãäœãããšèªäœãé£ãããã¢ãã¬ã¹ç©ºéã®ç°ãªããã¹ããšã®ããªããžãæžãã®ãç°¡åã§ã¯ãããŸãããcgo ãªãæååã®ã¢ãã¬ã¹ãšé·ããæž¡ãã ãã§æžããšããããWASM ã§ã¯ãªãã¢ã¡ã¢ãªäžã«é åã確ä¿ããããã«ãã¹ãåŽããæžã蟌ãå¿
èŠããããŸããå®å
šã®ããã«å¢çãåŒããåããã®å¢çããŸããã³ãŒãã¯èªåã§æžãããšã«ãªããŸãã wasmify ãš wasm2go ã¹ã©ã€ã 24ã50 ããŒãž çºè¡šã®åŸåã¯ããã®å¢çãè¶ããæéãæžããããã« goccy ãããéçºããããŒã«ã®è©±ã§ããã wasmify ã¯ãC/C++ ã©ã€ãã©ãªãã FFI çšéã® WASM ãšããªããžã³ãŒããçæããæé ãæœè±¡åãããAI ãšãŒãžã§ã³ãã®ããŒãã¹ãšããŠå©çšã§ããããŒã«ã§ãããããžã§ã¯ãããšã«å€§ããç°ãªããã«ãæé ã®éšå㯠AI ã«åžåããŠããããæ£èŠåããèšå®ããã¡ã€ã«ã«æ®ãããšã§ãCI ãªã©ã§ã¯ AI ãªãã§åãçµæãåçŸã§ããããã«ããŠããŸããéæ±ºå®çãªéšåã ãã AI ã«ä»»ãããã®çµæãåºå®ããŠåªçæ§ãæ
ä¿ãããšããèšèšã¯ãFFI ã«éãã AI ãéçºã«çµã¿èŸŒããšãã®èãæ¹ãšããŠåèã«ãªããŸããã ãšããããwasmify ã§äœãçŽãã Pure Go çã® bigquery-emulatorïŒBigQuery ã®ããŒã«ã«ãšãã¥ã¬ãŒã¿ïŒã«ã€ããŠã¯ããªãªãŒã¹ã®ç¿æ¥ããããã©ãŒãã³ã¹äœäžã®å ±åãçžæ¬¡ãã ããã§ããããã±ãŒã¹ã§ã¯ 0.6 ç§ã ã£ãåŠçã 17.3 ç§ãšãçŽ30åã®1ã®é床ã«ãªã£ãŠãããšã®ããšã§ããããã®åé¡ãžã®å¯ŸåŠãšããŠéçºãããã®ã wasm2go ã§ãWASM ã Go ãš Plan9 asm ã«å€æããŠããŸããšããã¢ãããŒãã§ããã¡ã¢ãªãåé¢ãããŠãããšãã WASM ã®æ§è³ªã¯ä¿ã£ããŸãŸã倿åŸã¯ WASM ç±æ¥ã®å®è¡æã®å¶éãåããªããããæé©åã®äœå°ãçãŸããŸãã ããããwasm2go ã«ã課é¡ã¯ãããŸãããããšãã°ã倿åŸã® Go ã³ãŒãã巚倧ã«ãªãããããã®ãŸãŸã§ã¯ã¡ã¢ãªäžè¶³ã§ã³ã³ãã€ã«ãéããªããªã£ãŠããŸããŸããããã«å¯ŸããŠã¯ãã³ã³ãã€ã«ã®åäœãåããŠäŸåé¢ä¿ãçŽåã«ããããã§çãã埪ç°åç
§ã go:linkname ã§åé¿ãããšãã解決çãåãããŠããŸããã go:linkname ã¯ãåŒã³ãã颿°ãå®çŸ©ãããŠãã package ã import ããã«ãã®é¢æ°ãåç
§ã§ããã³ã³ãã€ã©ãã£ã¬ã¯ãã£ãã§ããã»ãã®èª²é¡ãžã®å¯ŸåŠãå«ããã©ãã Go ã®åŠçç³»ãããŒã«ãã§ãŒã³ã®æåãèžãŸããè§£ãæ¹ã§ãããã¯èããŠããŠäžçªé¢çœãã£ãã§ãã æåŸã«ãwasm2go ã®ææç©ãšã㊠go-googlesql ã go-pythonãgo-llama ãšãã£ã Pure Go å®è£
ãå
¬éãããŠããããããã Go ããçµã¿åãããŠåŒã³åºã Cross Language Binding ããGo ã®ããã® Agent Sandbox ãšãã£ãå¿çšå
ã玹ä»ãããŸããã ææ³ goccy ããã¯ã»ãŒæ¯å go:linkname ã®è©±ããããŠããããã§ããçºè¡šã®æ¬çã§ã¯ãªãã§ãããä»åãåŸåã§åŸªç°åç
§ã®è§£æ¶ã®æèã§ç»å ŽããŸãããåã㊠goccy ããã®çºè¡šãèãæ©äŒãé ããã®ã¯ãä»å¹Ž2æã® Go Conference mini in Sendai 2026 ã§ããããåœæã¯äœã®ããšãåãããå°æããç¶æ
ã§èããã®ãèŠããŠããŸãã speakerdeck.com ä»åã¯ãã® go:linkname ãäœããç¥ã£ãç¶æ
ã§èšãããšãã§ããã®ã§ãååãããæ¥œããæèŽãããŠããã ããŸããã人ã®è©±ãèããŠç¥ããã£ãããããããåãããæè¡ã楜ãããããã«ãªã£ãŠããŸãããã§ç¥ããªãããšãç¥ãããã®ç¹°ãè¿ããèµ·ããã®ããã«ã³ãã¡ã¬ã³ã¹ãšããå Žæã®çŽ æµãªãšããã ãªãšæããŸãã goccy ãããè峿·±ãçºè¡šãããããšãããããŸããïŒãããŠããšããªãŒããŒã¹ã«ãæ¥ãŠããã ãããããšãããããŸããïŒçŽæ¥ææ³ãäŒããããŠå¬ããã£ãã§ãïŒ ã¯ãŒã¯ã·ã§ããçŽ¹ä» go.devã®æ©ãæ¹ããã®å
ãž ãGoå
¬åŒãªãœãŒã¹ã®æ
ãææ¥ããã®èª¿ã¹æ¹ãæã«å
¥ããã¯ãŒã¯ã·ã§ããã è¬åž«: Koki Narumi ããïŒANDPADïŒ ã¬ããŒã: éæ ããã«ã¡ã¯ãéçº1éšã§ããªãã·ã¥ãããã³ã®ãã¬ãã¢ã æ©èœãéçºããŠããæ°åãšã³ãžãã¢ã® éæ ã§ãã ç§ã¯ã¯ãŒã¯ã·ã§ãããgo.devã®æ©ãæ¹ããã®å
ãžãã«åå ããŸããã åå ããçç± Go æŽã¯ 4 ã¶æã»ã©ã§ãã Go ã§ããããªãããšããã£ããšããAI ã«èããŠæžãŸããããšãã§ããŸãããèªåã®æã§èª¿ã¹ãæ¹ãçè§£ã¯æ·±ãŸããšæããŠããŸããã AI ã®åçãééã£ãŠããå¯èœæ§ãé ã«çœ®ããªããé²ãããããã®åçãæ£ãããã確ããããããããã«ããå
¬åŒããã¥ã¡ã³ãã調ã¹ãåããã£ãæ¹ããããšèããŠåå ããŸããã ããã©ã³ã®æ¹ã
ãå
¬åŒããã¥ã¡ã³ããã©ã®ããã«èªãã§ããã®ãã«ãèå³ããããŸããã ã¯ãŒã¯ã·ã§ããã®æµã åœæ¥ã¯ andpad-dev/gotan ãªããžããªã®ææã«æ²¿ã£ãŠãæ¬¡ã®æµãã§é²ã¿ãŸããã ãªããžããªã®èª¬æ åçŽãäžçŽãäžçŽã®ã¬ãã«ããšã«åãã㊠4 人ã®çãçµã çããšã« GitHub ã® Issue ã 1 ã€æã¡ãããã«èªå·±ç޹ä»ãæžã蟌ã çã§ã«ããŽãªãšããŒããéžã¶ èšåããšã« 2 人ã«åãããŠèª¿æ»ãã調æ»çµæã Issue ã«æžã蟌ãã§ãã çãåãã ç§ã¯ Go æŽãæµ
ãã®ã§åçŽãéžã³ãŸããã ã«ããŽãªã¯æ¬¡ã® 4 ã€ããéžã³ãŸãã Go ã®æšæºããã±ãŒãž Go ã®æ©èœãææ³æ§é Go ã®ã³ãã³ã Go ã®èšèªä»æ§ãæšæºã©ã€ãã©ãªã®å®è£
ãèšèšã®èæ¯ ç§ãã¡ã®çã¯ãGo ã®ã³ãã³ãããéžã³ãŸããã åçŽã«ã¯ 3 ã€ã®ããŒããããããã®äžãã go run ã®ããŒã ãéžã³ãŸããã ããŒãã«ã¯èšåã 3 ã€ãããç§ã¯èšå2ãgo run ã§ãã«ããããå®è¡ãã¡ã€ã«ã $WORK ãã£ã¬ã¯ããªã¯ãå®è¡åŸã©ããªããããæ
åœããŸããã åèšåã«ã¯ãã³ããšçããçšæãããŠããŠãå¿
èŠã«ãªã£ããšãã«èªãã圢ã«ãªã£ãŠããŸãã èšå2 ã®èª¿æ» ããã§ã¯ãèšå2 ãã©ã調ã¹ãŠãã£ããã玹ä»ããŸãã èšå1ãšèšå2ã¯ã€ãªãã£ãŠããã®ã§ããŸãèšå1ã«ãç®ãéããŸããã æåã¯æãããããªãã£ããããçãã«è¿ã¥ããããªãããã«ãã³ãããã£ãšçºããããã«æžãããŠããã³ãã³ãããŸãå®è¡ããŠã¿ãããšã«ããŸããã go run -a -x main.go 2 > first.log ãã® -a ãš -x ãäœããããã©ã°ãªã®ãã調ã¹ãŸããã èª¿ã¹æ¹ã¯ 03-cmd-tools ã® README ã«ã¬ã€ããããããããèŠãªããé²ããŸããã go help build ã§ãèªããŸãããä»å㯠pkg.go.dev/cmd/go ãããŒãžå
æ€çŽ¢ããŠç¢ºãããŸããã -a : ãã§ã«ææ°ç¶æ
ã«ããããã±ãŒãžã匷å¶çã«åãã«ããã -x : å®è¡ããã³ãã³ãã衚瀺ãã first.log ãéããšã1 è¡ç®ã« $WORK ãã£ã¬ã¯ããªã®ãã¹ãæžãããŠããŸããã WORK=/var/folders/bj/1bpczlgx0nxd7gyh6k1gxnhm0000gp/T/go-build2456729570 ããã§ $WORK ã«ç§»åããããšããŸãããããã®ãã£ã¬ã¯ããªã¯ãã§ã«ååšããŸããã§ããã cd: no such file or directory: /var/folders/bj/1bpczlgx0nxd7gyh6k1gxnhm0000gp/T/go-build2456729570 first.log ã®æ«å°ŸãèŠããšãå®è¡ãã¡ã€ã«ã cp ããŠããè¡ããã£ãã®ã§ããã®ã³ããŒå
ã«ç§»åããŠã¿ãŸããïŒ çã®èª¿æ»ãã° ïŒã cp $WORK/b001/exe/main /Users/yuto.nomura/Library/Caches/go-build/96/9677dc4b2f735a2ab8ac9be91e1f1c1ce061dcd1e81e39106ac0b016771e252e-d/main # internal $WORK/b001/exe/main ã³ããŒå
ã«ã¯ main ã®å®è¡ãã¡ã€ã«ãæ®ã£ãŠããŸããã ã€ãŸã $WORK ãã£ã¬ã¯ããªã¯åé€ãããŠããããå®è¡ãã¡ã€ã«ã¯ãã£ãã·ã¥ãšããŠæ®ã£ãŠããããšããããšã«ãªããŸãã æ¬¡ã«ãæè©°ãŸãã ã£ãã®ã§ããäžåºŠãã³ããèªã¿ãŸããã æ¬¡ã®ãããªãã³ãã«æ³šç®ããŸããã go help build ã®ãã©ã°äžèЧãçºããäžæãã£ã¬ã¯ããªã«èšåããŠãããã©ã°ãæ¢ããŠã¿ãŸããããèŠã€ãããã©ã°ã®èª¬ææãèªã¿ãããããããã©ã«ãã§ã¯è¡ãããªãããšã远å ã§è¡ãããã©ã°ãªã®ãããããã©ã«ãã®åäœãæ¢ããããã©ã°ãªã®ããèŠåããŠã¿ãŸãããã ããã§ãåã³ pkg.go.dev/cmd/go ã§ãã©ã°äžèЧã調ã¹ãŸããã ãããš -work ãšãããã©ã°ãããããäžæäœæ¥ãã£ã¬ã¯ããªã®ååã衚瀺ããçµäºæã«ãããåé€ããªãããšèª¬æãããŠããŸããã ãã®äžæäœæ¥ãã£ã¬ã¯ããªããå
ã»ã©ãã調ã¹ãŠãã $WORK ãã£ã¬ã¯ããªã§ãã ã€ãŸãã -work ãä»ããªããš $WORK ã¯å®è¡åŸã«åé€ãããŸãã ããã§ -work ãä»ããŠå®è¡ããŸããã go run -a -work main.go ä»åºŠã¯ $WORK ãã£ã¬ã¯ããªã«ç§»åã§ããäžã«å®è¡ãã¡ã€ã«ããããŸããã ããã§æéããªããªããçãåããã®æéã«ãªããŸããã çãåããã®äžã§ã -a ãšãã£ãã·ã¥ã®é¢ä¿ãçè§£ããŸããã æ¬¡ã® 2 ã€ã®ã³ãã³ããå®è¡ããŠæ¯ã¹ãŸãã go run -a -work main.go go run -work main.go -a ããã§ã¯ $WORK ã®äžã«äžéãã¡ã€ã«ãšå®è¡ãã¡ã€ã«ããããŸãããã -a ãªãã§ã¯ $WORK ã®äžã¯ç©ºã§ããã çãã®äžã§åç
§ãããŠãã Go 1.24 ã®ãªãªãŒã¹ããŒã ãèªã¿ãŸããã æ¬¡ã®ããã«æžãããŠããŸãã Executables created by go run and the new behavior of go tool are now cached in the Go build cache. This makes repeated executions faster at the expense of making the cache larger. See #69290. ã€ãŸããGo 1.24 ãã go run ã§ãã«ãããå®è¡ãã¡ã€ã«ããã«ããã£ãã·ã¥ã«ä¿åãããããã«ãªã£ãããšããããšã§ãã -a ãä»ãããš $WORK ã®äžã§ãã«ããå®è¡ãããã§ããå®è¡ãã¡ã€ã«ããã£ãã·ã¥ã«æ®ããŸãã -a ãä»ããªãå ŽåããœãŒã¹ã«å€æŽããªããã°ãã«ããçç¥ããŠãã£ãã·ã¥æžã¿ã®å®è¡ãã¡ã€ã«ããã®ãŸãŸå®è¡ããããã $WORK ã¯äœããããã®ã®äžèº«ã¯ç©ºã«ãªããŸãã 以äžãããèšå2ã®çãã¯æ¬¡ã® 3 ç¹ã§ãã äœããã©ã°ãä»ããªãå Žåã $WORK ãã£ã¬ã¯ããªã¯äžæçã«äœæãããå®è¡ãçµãããšåé€ããã $WORK ã®äžã«ãã£ãå®è¡ãã¡ã€ã«ã¯ããã«ããã£ãã·ã¥ã®ãã£ã¬ã¯ããªã«ä¿åããã -work ãä»ãããšã $WORK ãã£ã¬ã¯ããªãåé€ãããã«æ®ã ã¯ãŒã¯ã·ã§ããã§åŸãããš ä»åã®ã¯ãŒã¯ã·ã§ããã§ã¯ã go help ãš pkg.go.dev ãé Œãã«å
¬åŒããã¥ã¡ã³ããèªã¿é²ããããšãã§ããŸããã å
¬åŒããã¥ã¡ã³ãã®èªã¿é²ãæ¹ãšããç¹ã§ã¯ã次ã®ããšãæèããŸããã go help ã³ãã³ããåããŠè§Šãããã®äžèº«ãçè§£ãããšããã¹ããããèžãã ããšã§ãå
¬åŒããã¥ã¡ã³ããèªãããšãžã®ããŒãã«ãå°ãäžãããŸããã å
¬åŒããã¥ã¡ã³ãã¯ç¿»èš³ããŠèªãã§ãããšç¥ã£ãããšã§ãããŒãã«ãäžããã調ã¹ããããªããŸããã ãã®ããã§ãããŒãžå
æ€çŽ¢ã§å
¬åŒããã¥ã¡ã³ããæ€çŽ¢ããªããå°éã«èªãã§ããããšãæèããŠåãçµã¿ãŸããã ä»åã®ããŒããã³ãã³ãããŒã«ã ã£ãã®ã§ãã³ãã³ãããŒã«ã®èª¿ã¹æ¹ãšããŠæèããããšããããŸãã go run ãå®éã«åãããŠèгå¯ãããã©ã«ãããã¡ã€ã«ãååšãããã確ããããããã©ã°ãä»ããŠæåãã©ãå€ããããèŠããããŸããã å ããŠãæ®æ®µäœ¿ã£ãŠããã³ãã³ãããŒã«ã¯ã©ã®ããã«åããŠããã®ã ãããšèªåãªãã®ä»®å®ãæã£ãŠã¿ããšãçåãæµ®ãã³ãããè¯ã調æ»ãã§ãããšæããŸããã äžæ¬¡æ
å ±ãæŒãããªããé²ããã®ã§ãçè§£ãç©ã¿äžãã£ãŠããæèŠããããŸããã äžæ¬¡æ
å ±ã«ãããçµéšã«å ããŠã go run ã®ä»çµã¿ãžã®çè§£ãæ·±ãŸããä»ã®ã³ãã³ããåãããæ¹ã§èª¿ã¹ãŠã¿ãããªããŸããã ä»åŸ Go ãåŠã¶ãšãã«ãããã®èª¿ã¹æ¹ã䜿ã£ãŠããããã§ãïŒ Go à SIMDã§é«éåãããã¯ãã«æ€çŽ¢ ~ ã«ãŒãã©ã€ã³ã¢ãã«ã§SIMDãå¹ãå¢çãæ¢ãïŒ è¬åž«: Hiromu Nakamura ãã ã¬ããŒã: é»é« ããã«ã¡ã¯ãéçºæ¬éšã® é»é« ã§ããæ®æ®µã¯ ããªãã·ã¥ãããã³ ã®éçºã«æºãã£ãŠããŸãã ç§ã¯ã Hiromu Nakamura ããã«ããã¯ãŒã¯ã·ã§ããã Go à SIMDã§é«éåãããã¯ãã«æ€çŽ¢ ~ ã«ãŒãã©ã€ã³ã¢ãã«ã§SIMDãå¹ãå¢çãæ¢ãïŒ ~ ãã«åå ããŸããã ãã®ã¯ãŒã¯ã·ã§ããã§ã¯ãGoã§SIMDãäœ¿ãæ¹æ³ã«å ããŠãèšæž¬çµæããããã«ããã¯ãèŠæ¥µããæ¬¡ã®é«éåææ³ãéžã¶é²ãæ¹ãåŠã³ãŸããæææ¬ç·šã¯ãæ¬¡ã®æµãã§æ§æãããŠããŸãã ãã¯ãã«æ€çŽ¢ãšSIMDã®ä»çµã¿ãGoã§ã®äœ¿ãæ¹ãç¥ã ãã«ãŒãã©ã€ã³ã¢ãã«ãã§èšç®èœåãšã¡ã¢ãªåž¯åããæ§èœã®äžéãèãããã·ã³ã®äžéãæž¬ã ã¹ã«ã©çã®å
šæ¢çŽ¢ãåºæºãšããŠæž¬ãïŒStage 0ïŒ å
ç©ã®èšç®ãSIMDã§é«éåããïŒStage 1ïŒ int8éååã§ããŒã¿éãæžããïŒStage 2ïŒ 1bitéååã§ããã«ããŒã¿éãæžãããéåºŠãšæ€çŽ¢ç²ŸåºŠã®å€åãèŠãïŒStage 3ïŒ çµã蟌ãã åè£ãå
ã®float32ã§åæ¡ç¹ããæ€çŽ¢ç²ŸåºŠãå埩ããïŒStage 4ïŒ ç§ã¯Stage 2ãŸã§åãçµã¿ãŸãããããã§ã¯ãSIMDã®æ©èœãšãå®éã«ç¢ºèªã§ããé«éåã®å¹æãäžå¿ã«ç޹ä»ããŸãã è³æãšææã¯ä»¥äžã§å
¬éãããŠããŸãã speakerdeck.com github.com 顿ã¯ã384次å
ã®ãã¯ãã«10äžä»¶ãããã¯ãšãªãšã®å
ç©ã倧ããäžäœ10ä»¶ãæ¢ãåŠçã§ãããã¯ãã«æ€çŽ¢ã§ã¯ãæç« ãªã©ãæ°å€ã®äžŠã³ã§è¡šãããã®è¿ãã䜿ã£ãŠæ€çŽ¢ããŸãã SIMDãšã¯ SIMD ïŒSingle Instruction, Multiple DataïŒã¯ã1ã€ã®åœä»€ã§è€æ°ã®ããŒã¿ã«åãæŒç®ãé©çšããCPUã®æ©èœã§ãããã®åãããä»åã®ã¯ãŒã¯ã·ã§ããã§æ±ãå
ç©èšç®ãäŸã«èŠãŠã¿ãŸãã å
ç©ã¯ã2ã€ã®ãã¯ãã«ã®åãäœçœ®ã«ããèŠçŽ ãæãåããããã®çµæããã¹ãŠè¶³ãèšç®ã§ãã8èŠçŽ ã®ãã¯ãã«ãªããæ¬¡ã®ããã«ãªããŸãã a = [1, 2, 3, 4, 5, 6, 7, 8] b = [2, 3, 4, 5, 6, 7, 8, 9] å
ç© = 1Ã2 + 2Ã3 + 3Ã4 + 4Ã5 + 5Ã6 + 6Ã7 + 7Ã8 + 8Ã9 = 2 + 6 + 12 + 20 + 30 + 42 + 56 + 72 = 240 Goã§çŽ çŽã«æžããšã次ã®ããã«ãªããŸãã var sum float32 for i := range a { sum += a[i] * b[i] } ãã®ã«ãŒãã§ã¯ã a[i] ãš b[i] ã1çµãã€æãããã®çµæã1ã€ã®å€æ° sum ã«è¶³ããŠãããŸãã8èŠçŽ ãªãããã®åŠçã8åç¹°ãè¿ããŸãããã®ããã«ãæŒç®ã§å€ã1èŠçŽ ãã€æ±ãã®ã ã¹ã«ã©åŠç ã§ãã äžæ¹ã8èŠçŽ ãæ±ããSIMDåœä»€ãªãã 1Ã2 ãã 8Ã9 ãŸã§ã®æãç®ããŸãšããŠå®è¡ã§ããŸããæãç®ã®éšåã«æ³šç®ãããšãã¹ã«ã©åœä»€ã§ã¯8åããããšããããSIMDåœä»€ãªã1åã§åŠçã§ããŸããæãç®åœä»€ã®å®è¡åæ°ã¯1/8ã§ãã SIMDã§8çµã®æãç®ã1åœä»€ã§å®è¡ããçµæãåèšããŠå
ç©ãæ±ããæš¡åŒå³ å³1ïŒSIMDã§8çµã®æãç®ããŸãšããŠå®è¡ãããã®çµæãåèšããŠå
ç©ãæ±ããŸãã ã©ã¡ãã8çµã®æãç®ãè¡ããŸãããSIMDã§ã¯ããã1ã€ã®åœä»€ã«ãŸãšããããŸããSIMDã§ãŸãšããŠæããçµæã¯ [2, 6, 12, 20, 30, 42, 56, 72] ãšãã8åã®å€ãªã®ã§ãå
ç©ãåŸãã«ã¯æåŸã«ããããåèšããåŠçãå¿
èŠã§ãã ãã®ããã«ãåãæŒç®ã倧éã®èŠçŽ ã«ç¹°ãè¿ãåŠçã§ã1åœä»€ãããã«åŠçã§ããèŠçŽ ãå¢ãããããšãSIMDã®äŸ¿å©ãªç¹ã§ããä»åã®æ€çŽ¢ã§ã¯ã384èŠçŽ ã®å
ç©ã10äžä»¶ã®ãã¯ãã«ã«å¯ŸããŠç¹°ãè¿ããããSIMDã«ããé«éåãæåŸ
ã§ããŸããSIMDã¯1ã€ã®CPUã³ã¢ã®äžã§ãå©çšã§ããä»çµã¿ã§ãã GoããSIMDã䜿ã Go 1.27ã§ã¯ãå®éšçãªããã±ãŒãž simd/archsimd ã䜿ããGoã®åãã¡ãœããã§CPUåºæã®SIMDæŒç®ãæ±ããŸãã archsimd èªäœã¯Go 1.26ã§å°å
¥ããã1.27ã§ã¯APIã®æ¹èšãarm64ã»WebAssemblyãžã®å¯Ÿå¿ã远å ãããŠããŸãããŸã APIã¯å®å®ããŠãããããã«ãæã« GOEXPERIMENT=simd ãæå®ããŠæå¹åããŸãïŒ Go 1.27ãªãªãŒã¹ããŒã ïŒã CPUã«ã¯ãèšç®äžã®å€ã眮ã ã¬ãžã¹ã¿ ãšããå°ããªèšæ¶é åããããŸããä»åã®amd64åãå®è£
ã§ã¯ã256bitå¹
ã®SIMDã¬ãžã¹ã¿ãå©çšããŸãã float32 ã¯1å32bitãªã®ã§ã1ã€ã®ã¬ãžã¹ã¿ã«8åã®å€ãå
¥ããŸãããã®1èŠçŽ ã¶ãã®åºç»ã ã¬ãŒã³ ãšåŒã³ãŸãã Goã§ã¯ããã®ã32bitã®å€ã8ã¬ãŒã³ããšãã圢ã archsimd.Float32x8 ãšããåã§è¡šããŸããå
ã»ã©ã®å³ãšåããã8èŠçŽ ããŸãšããŠæ±ããŸããæ¬¡ã®ã³ãŒãã¯ã384èŠçŽ ãã a ãš b ã®ãã¡ãå
é 8èŠçŽ ãåŠçããéšåã瀺ãããã®ã§ãã var acc archsimd.Float32x8 // 8ã¬ãŒã³ãšãåæå€ã¯0 va := archsimd.LoadFloat32x8(a) // aã®å
é 8èŠçŽ ãèªã vb := archsimd.LoadFloat32x8(b) // bã®å
é 8èŠçŽ ãèªã acc = va.MulAdd(vb, acc) // åã¬ãŒã³ã§vaÃvbãaccãžè¶³ã LoadFloat32x8 ã¯ãã¹ã©ã€ã¹ãã8èŠçŽ ãèªã¿èŸŒã颿°ã§ãã va ãš vb ã«ã¯ãããã8åã®å€ãå
¥ãã acc ã«ãéäžçµæããããå Žæã8åãããŸãã va.MulAdd(vb, acc) ã§ã¯ãåã¬ãŒã³ã§ã va ã®å€ à vb ã®å€ ïŒ acc ã®å€ããèšç®ããŸãã MulAdd ã¯ãæãç®ãšè¶³ãç®ããŸãšããŠè¡ãFMAïŒFused Multiply-AddïŒã«å¯Ÿå¿ããŸãã Float32x8 ã§ã¯ããã®ç©åæŒç®ã8ã¬ãŒã³ãŸãšããŠ1ã€ã®åœä»€ã§è¡ããŸãïŒ MulAddã®ããã¥ã¡ã³ã ïŒã a ãš b ã®èªã¿èŸŒãäœçœ®ãé²ããªããåãåŠçãç¹°ãè¿ããšãåã¬ãŒã³ã«ç©åã®éäžçµæããããŠãããŸããæåŸã«ã¬ãŒã³ããšã®å€ãåèšãããšãå
ç©ãæ±ãŸããŸãã ãã®ãããªSIMDåœä»€ããã¢ã»ã³ããªãcgoãèªåã§æžããã«ãGoã®åãã¡ãœãããéããŠå©çšã§ããã®ã archsimd ã®ç¹åŸŽã§ãã ãã³ãããŒã¯ã§å¹æã確èªãã ããããã¯ãåé ã§ç޹ä»ããStage 0ïŒã¹ã«ã©çã®èšæž¬ïŒâStage 1ïŒSIMDåïŒã®æµãã«æ²¿ã£ãŠãå®éã®å¹æãèŠãŠãããŸãããŸã make bench0 ã§ã¹ã«ã©çã®å
šæ¢çŽ¢ã®éåºŠãæž¬ããç¶ã make bench1 ã§ã¹ã«ã©çãšSIMDçãæ¯èŒããŸããã èšæž¬ã«ã¯ãã¯ãŒã¯ã·ã§ããã§çšæãããææã®GitHub Codespacesç°å¢ã䜿ããŸãããå®è¡ç°å¢ã¯Linux / amd64ã§ãCPUã¯AMD EPYC 7763ã§ããã ææã«ã¯ãå
ç©åäœã枬ããã³ãããŒã¯ãšã10äžä»¶ãã¹ãŠãšã®å
ç©èšç®ããäžäœ10ä»¶ã®éžæãŸã§ãå«ããæ€çŽ¢å
šäœã®ãã³ãããŒã¯ããããŸããSIMDçãå
šä»¶ãèµ°æ»ããæµãã¯åãã§ãå
ç©ã®èšç®ãSIMDã«çœ®ãæããŠããŸããå®è£
ã§ã¯éäžçµæãããã倿°ã acc0 ãš acc1 ã®2æ¬ã«åããäºãã®çµæãåŸ
ããã«èšç®ã§ããããã«ããŠããŸãïŒ ææã®å
ç©ã®å®è£
ïŒã 8èŠçŽ ããŸãšããŠèšç®ã§ããŠããåŠçå
šäœããã®ãŸãŸ8åéããªããšã¯éããŸããã以äžã¯ã make bench1 ã§å
ç©åäœãšæ€çŽ¢å
šäœãèšæž¬ããçµæã§ãã èšæž¬å¯Ÿè±¡ ã¹ã«ã©ç SIMDç é«éåã®åç float32ã®å
ç© 393.8 ns 58.71 ns çŽ6.7å 10äžä»¶ã®æ€çŽ¢ 36.10 ms 9.76 ms çŽ3.7å å
ç©åäœã§ã¯çŽ6.7åãæ€çŽ¢å
šäœã§ãçŽ3.7åã®é«éåã確èªã§ããŸããã å
ç©åäœã®æ¹åãããã®ãŸãŸæ€çŽ¢å
šäœã®åçã«ãªãããã§ã¯ãªãããšãåãããŸããæ€çŽ¢ã§ã¯ãã¯ãã«ã®èªã¿èŸŒã¿ãå¿
èŠã§ãèšç®ã ããéããŠãèªã¿èŸŒã¿ã远ãã€ããªããã°ãCPUã¯ããŒã¿ãåŸ
ã€ããšã«ãªããŸããããããæ§èœã®äžéãèããããã«ãã¹ã©ã€ãã§ã¯ã«ãŒãã©ã€ã³ã¢ãã«ã玹ä»ãããŠããŸããã Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~ - Speaker Deck ãã®å³ã¯ã暪軞ãç®è¡åŒ·åºŠã瞊軞ã1ç§ãããã®æŒç®åæ°ã§ã屿 ¹ã®åœ¢ãããç·ãæ§èœã®äžéã衚ããŠããŸãã ç®è¡åŒ·åºŠã¯ãæŒç®åæ°ïŒãã€ãããã¡ã¢ãªåž¯åã¯ããã€ãïŒç§ããªã®ã§ãäž¡è
ãæãããšãæŒç®åæ°ïŒç§ãã«ãªããŸããããããã¡ã¢ãªããã®ããŒã¿äŸçµŠã«ãã£ãŠæ±ºãŸãæ§èœã®äžéã§ãã ç·ãæãæ²ããç¹ïŒãªããžïŒããå·ŠåŽã§ã¯ãç®è¡åŒ·åºŠ à ã¡ã¢ãªåž¯å ïŒ æŒç®ããŒã¯ãšãªããŸããCPUã®èšç®èœåãããããŒã¿ãäŸçµŠããéããäœãäžéãäœãããããã®é åã®äžéã¯ã¡ã¢ãªåž¯åã«ãã£ãŠæ±ºãŸããŸããç®è¡åŒ·åºŠãäžãããšãåã転ééã§ã§ããèšç®ãå¢ããŠäžéãäžãããããã°ã©ãã¯å³äžããã®æç·ã«ãªããŸãã ãªããžããå³åŽã§ã¯ãç®è¡åŒ·åºŠ à ã¡ã¢ãªåž¯å ïŒ æŒç®ããŒã¯ãšãªããããCPUã®èšç®èœåãæ§èœã®äžéãæ±ºããŸããç®è¡åŒ·åºŠãããã«äžããŠããã®äžéã¯å€ãããªãã®ã§ãã°ã©ãã¯æ°Žå¹³ã«ãªããŸããå®éã®èšæž¬ç¹ããã®ç·ããäžã«ããå Žåã¯ãSIMDãªã©ã§èšç®ãå¹çåããäžéã«è¿ã¥ããããå¯èœæ§ããããŸãã int8éååã§ããŒã¿éãæžãã ã¡ã¢ãªããèªã¿èŸŒããããŒã¿éã«ã¯1ç§ãããã®äžéããããããåãä»¶æ°ã®ãã¯ãã«ã§ãããŒã¿éãå°ãªããã°èªã¿èŸŒã¿ã«ãããæéãçãã§ããŸãããã®èªã¿èŸŒã¿æéãæžãããŠæ€çŽ¢ãéããã®ããStage 2ïŒint8éååïŒã§ãã ãã®æ®µéã§ã¯ã make bench-int8 ã§int8éååã䜿ã£ãå®è£
ãèšæž¬ããŸãããéååã¯ãå€ãå°ãªããããæ°ã§è¿äŒŒããŠè¡šãæ¹æ³ã§ããfloat32ãint8ã«å€æãããšãèµ°æ»ãããã¯ãã«æ¬äœã¯153.6 MBãã38.4 MBã«ãªããŸãã æ€çŽ¢å
šäœã®æéã¯ãStage 1ã®float32 SIMDçã®çŽ9.76 msãããint8 SIMDçã®çŽ4.00 msãžççž®ãããããã«çŽ2.4åéããªããŸãããéååã«ããããŒã¿éã®åæžãšãint8åãã®SIMDèšç®ãçµã¿åããã广ã§ãã int8ã®å
ç©åäœã§ããã¹ã«ã©çã®412.8 nsããSIMDçã®32.17 nsãžãçŽ12.8åã®é«éåã確èªã§ããŸããã ãã ããéååã¯å€ãã®ãã®ãå€ããã®ã§ãå
šæ¢çŽ¢ãããŠããæ€çŽ¢çµæãæ£è§£ãšãããå¯èœæ§ããããŸãããã®ãããææã§ã¯Recall@10ïŒæ£è§£ã®äžäœ10ä»¶ãšäœä»¶äžèŽãããïŒãšããææšãçšããŠãæ€çŽ¢çµæã®ç²ŸåºŠãæ€èšŒããŠããŸããããã®è©äŸ¡ã§ã¯ãå
ã®float32çã§åŸãããäžäœ10ä»¶ãæ£è§£ãšããŠããŸãã ã¯ãŒã¯ã·ã§ãããäœéšã㊠ä»åã®ã¯ãŒã¯ã·ã§ããã§ã¯ãGoã®å®éšçãªSIMDããã±ãŒãžã䜿ãããã¯ãã«æ€çŽ¢ãæ®µéçã«é«éåããæ¹æ³ãåŠã³ãŸãããã«ãŒãã©ã€ã³ã¢ãã«ã§èšç®èœåãšã¡ã¢ãªåž¯åã®å¶çŽãèããªãããSIMDã«ããå
ç©ã®é«éåãããéååã«ããããŒã¿éã®åæžãžãšé²ãæµãã§ãããè³æã§ã¯ãããã«1bitéååãšåæ¡ç¹ãçµã¿åãããŠãéåºŠãšæ€çŽ¢ç²ŸåºŠã®äž¡ç«ãç®æããšãããŸã§ç޹ä»ãããŠããŸããã Goã®ã³ãŒããåãããŠå
ç©ãæ€çŽ¢ãéããªãæ§åã確ãããSIMDã«ãã䞊ååã®æ©æµãæããããšãã§ããŸãããããã«ãéååã§ããŒã¿éãæžãããšãã£ãé«éåã®ææ³ã«ããæãåãããªããè§ŠããããŠããã£ãã§ãã ãŸãšã Go Conferenceéå¶ã®çãããä»å¹Žãã«ã³ãã¡ã¬ã³ã¹ãéå¬ããŠããã ãããããšãããããŸããïŒ æšå¹Žãšã®éããšããŠæ°ã¥ããã®ã¯ãä»åã¯Go Conferenceã ãã§ãªããDroidKaigiã§åŒç€ŸãèŠããããããiOSDCã«ãåå äºå®ããšãã£ããšã³ãžãã¢ã®æ¹ã倿°ã¿ãããããšã§ãã DroidKaigi ã®ã¢ã³ã±ãŒãã§ãããéããã©ã®äŒæ¥æ§ã®ãšã³ãžãã¢ãè¶å¢ããæèãããã®ã ãªãšæããããããŸããã ä»å¹Žãããããã®Gopherãšã話ããããã»ãã·ã§ã³ãæèŽããããšå
å®ãã1æ¥ãéãããšãã§ããŸããïŒ Go Conference 2027ããã²åå ãããã§ãïŒ éå
¬åŒã¢ãã¿ãŒã€ãã³ã Go BASH Vol.3 ã®ãç¥ãã ANDPADãOPTiMãResilireããšããªãŒã®4瀟ååã§ãéå
¬åŒã¢ãã¿ãŒã€ãã³ã Go BASH Vol.3 ãéå¬ããŸãïŒ 2026幎9æ30æ¥(æ°Ž) 19:30ããäŒå Žã¯ãšããªãŒæ¬ç€Ÿã§ããGo Conference 2026 ã®ææ³æŠãå瀟ã®ã»ãã·ã§ã³ãçšæããŠããŸãã®ã§ããã²ãåå ãã ããïŒ connpass.com æåŸã« ãšããªãŒã§ã¯ããšãã«åã仲éãåéããŠããŸãã ããã¯ããã°ãèªãã§å°ãã§ããšããªãŒã«èå³ãæã£ãŠããã ããæ¹ã¯ããã²äžåºŠã«ãžã¥ã¢ã«é¢è«ã«ãè¶ããã ããïŒ corp.every.tv æåŸãŸã§ãèªã¿ããã ããããããšãããããŸããïŒ


























