ã»ãã¥ãªãã£ãã£ã³ã2024 WebAssemblyã¼ãã®åå¿é²
WebAssemblyã¼ãã®è¬å¸«ã@saza_kuã¨ããã¦ãããã¾ãã
æ°è¨ã®ã¼ãã§ãã¦ãWasm楽ãããã¨ããç¬ãè¨ã¨ãåè¬çã®æ¹ã ãåªç§ããã¾ããã¨ããåå¿é²ã§ã
Â
Â
Â
Â
Â
WebAssemblyã¼ãã¨ã¯ï¼
WebAssembly(Wasm)ã¯ä»®æ³å½ä»¤ã»ããã§ããRustãGoãã¯ããæ§ã ãªè¨èªã§è¨è¿°ãããã¢ããªã±ã¼ã·ã§ã³ãWasmã¿ã¼ã²ããã«ã³ã³ãã¤ã«ã§ãã¾ãã
Wasmã¯ä»®æ³å½ä»¤ã»ããã§ãã®ã§ãx86ãªã©ã®CPUã§å®è¡ã§ããããWasmã®å½ä»¤ã解éããã½ããã¦ã§ã¢ãå¿ è¦ã«ãªãã¾ãããããWasmã©ã³ã¿ã¤ã ã¨å¼ãã§ãã¾ãã¦ãæ¬ã¼ãã¯Wasmã©ã³ã¿ã¤ã ãå®è£ ããã¼ãã§ãã
Wasmã®ä»æ§ãèªã¿è§£ããªãããåºæ¬çãªWasmã©ã³ã¿ã¤ã ãå®è£ ããã¡ãã£ã¨ããã¢ããªã±ã¼ã·ã§ã³ãåãããã¨ããã®ãã¼ãã®å½åã®ã´ã¼ã«ã§ããï¼ãã®ã´ã¼ã«ã¯ããã«è¯ãæå³ã§ç ´ããã¾ãï¼
Â
å¿å課é¡
å¿å課é¡ã§ã¯Wasmãã¤ããªã®parseãWasmã©ã³ã¿ã¤ã ã®æåã®ä¸æ©ãä½ã£ã¦ãããã¾ãããå¿å段éã§ãã£ãããããåãã¦ãããã¡ã¢ãªæä½ãã§ãã¦ãããã¨ããªãã®å®æ度ã®æ¹ãã¡ãã»ããã¦ãé¸èã«ã¯è¦æ¦ããè¨æ¶ãããã¾ããå¿åãã¦ããã ããæ¹ã«çºã«ãªããããªèª²é¡ã«ãªã£ã¦ãããè¯ãã®ã§ããããã¯é£ããã§ãã...
Â
äºåæºå
6æ-å½æ¥ã«ããã¦ã¯äºåæºåæéã§ããè² æ ã«ãªããªãç¨åº¦ã«ãå½æ¥ã¯å®è³ª3æ¥éãããªãã®ã§éçºãé²ãã¦ãããã¨ããã¨ããæéã§ãã
æ¬ã¼ãã§ã¯Wasmã®åºæ¬çãªä»æ§ã«æ²¿ã£ãã©ã³ã¿ã¤ã ã®å®è£ ãé²ãã¦ãããã¾ãããé±1ã§syncããã¦æ§åãèããããè¬å¸«ã®æ¹ããWASIãWasm I/Oã®è©±ããããã¨ããããã¨é²ãã¾ããã
Â
ããããé²ãã¦ããã¤ããã§ããããæ°ã¥ãããDoomãåãã¦ãã¾ããã
èªä½WebAssemblyã©ã³ã¿ã¤ã ã§Doomãåããï¼
â ãµã (@faa0311) 2024å¹´8æ8æ¥
Python + Numpy ãªã®ã§ãã¬ã¼ã ã¬ã¼ãã¯ã«ã¹ pic.twitter.com/OUyqEF7kbo
Doomãåããã«ã¯ãWasmã®åºæ¬çãªå½ä»¤ã«å ããWASI(WebAssembly System Interface)ã¨å¼ã°ãããWasmãã·ã¹ãã ã®ãªã½ã¼ã¹ï¼ãã¡ã¤ã«ããããã¯ã¼ã¯ãªã©ï¼ã«ã¢ã¯ã»ã¹ããã¨ãã«çºè¡ããAPIã®å¦çãå®è£ ããå¿ è¦ãããã¾ãã
å®è£ ã¹ãã¼ããæ©ããããã¨ãèªèãã¾ã
Â
å½æ¥
ãã£ã³ãæéã¯ã主ã«åã ã®Wasmã©ã³ã¿ã¤ã ã«å¥½ããªæ¡å¼µãå ¥ãã¦ããæéã¨ãªãã¾ãããã¹ã©ã¤ãã®æ²è¼è¨±å¯ãããã£ãã®ã§ç°¡åã«ç´¹ä»ãã¾ãã
Â
1人ç®ï¼Wasmã©ã¤ããã¤ã°ã¬ã¼ã·ã§ã³ + InfiniBandã使ã£ã¦éã
å®è¡éä¸ã®Wasmãã¤ããªããå¥ãã·ã³ã«ãã®å®è¡éä¸ã®ã¹ãã¼ã¿ã¹ãéããã¨ã§å¦çã移è²ããä»çµã¿ãå®è£ ãã¦ããã¾ãããInfiniBandã使ãããã¨ã®ãã¨ã§ãå½¼ã®Wasmã©ã³ã¿ã¤ã ã®ã¹ãã¼ã¿ã¹ã¯ãªãã¨400Gã®å¸¯åãéã£ã¦è»¢éããã¦ãã¾ããWasmãã¤ããªã転éãããã¨ã§å¦çãå§è²ãããã¨ãããã®ä»çµã¿ã使ã£ãã¦ã¼ã¹ã±ã¼ã¹ãããããèãã¦ãã¾ãã
Â
2人ç®ï¼Wasm GCå¯¾å¿ + ã»ã«ããã¹ã
Â
github.comWasm GCãèªä½Wasmã©ã³ã¿ã¤ã ã«å®è£ ãã¦ããã¾ãããWasm GCã¯ä»æ§ã大ãããèªåã追ãã¦ãªãã£ãä»æ§ãªã®ã§ãããä»æ§èªã¿è§£ãåã®é«ããçºæ®ãã3æ¥éã§ã¡ããã¨åããµãã»ãããå®è£ ãã¦ãã¾ããã
Â
ã»ã«ããã¹ãããWasmã©ã³ã¿ã¤ã ä¸ã§ãWasmã¢ããªã±ã¼ã·ã§ã³ãåãã¦ããæ§å
Â
3人ç®ï¼WASIã¢ãªã¢ãªå®è£
WASIãè å¨ã®ã¹ãã¼ãæã§ã¢ãªã¢ãªå®è£ ãã¦ããã¾ããã
HTTP serverãåãã¦ããæ§å
Â
Â
Wasmåããããã¡ã¤ã«é ä¿¡HTTP serverãèªä½Wasmã©ã³ã¿ã¤ã ã§åãããWasmåãããDoomãé ä¿¡ããV8ãDoomãå®è¡ãã¦ããæ§åï¼ãããããï¼
Â
ãããã«
Wasmã¯ããããªãã¨ãã§ãã¦æ¥½ãããªãã¨ã¯ä»¥åããæã£ã¦ãã¾ããããä»åã¯æ°ãã楽ãã¿æ¹ãåè¬çã®æ¹ããæãã¦ããã£ãæ°ããã¾ãã
Wasmã¯å¿ç¨å ãåºãå½¢æ ã§ããã¨åæã«ãä»çµã¿ãç解ããã«ããã£ã¦ä»æ§ããããã¨ãã³ã¢ã®ä»æ§ãããã¾ã§å¤§ãããªããã¨ããã¹ãããããã¨ããããã®ç°å¢ãè¯ãã¦ãä»åã®ãããª2, 3ã¶æã§å ¥éãã¦å¥½ãã«å¿ç¨ããã®ã«è¯ãã®ãããããªããª...
ä»ã®ã¼ãã¯ãããã£ã³ãå ¨ä½ã®ãã¨ãæ¸ããããã¨ããããã©ãä¸æ¦ãã®ãããã§ã
ãã¯ãã«ãªåè¬çã«å æ°ãããã£ãä¸é±éã§ãã
Â
Â
Â