WASM Pipeline of V8 javascript engine
H o w V 8 E x e c u t e W A S M
View Slide
Name!CSO 5BLFUPTIJ"POP੨݈རOccupation'SPOUFOE%FWFMPQFS1SPEVDU0XOFSCompany$ZCFSBHFOU"EUFDI4UVEJP"*.FTTFOHFSOSS$POUSJCVUPSPG7AboutIUUQJOGPCODI
8"4.࣮ߦύε
8"4.-JGU0⒎JBY5VSCP'BO0UIFST5VSCP'BO%FCVH*OUFSQSFUFS
-JGUPGG8"4.ઐ༻ͷ#BTFMJOFίϯύΠϥ8"4.ͷ01ίʔυΛ+*5ʹม͢ΔϨδελϚγϯ͕ͩɺͷϩʔυʹελοΫ͏ϨδελׂϦχΞʹߦ͍ɺϨδελ͕ރׇͨ͠ΒTQJMM͠ɺಛʹੜଘظؒͷੳ͍ͯ͠ͳ͍9ͱ*"ͷΈσϑΥϧτͰ0/ʹͳ͍ͬͯΔ
5VSCP'BO7ͷ࠷దԽ+*5༻ύΠϓϥΠϯάϥϑΛੜ͔ͯ͠Βɺάϥϑͷ࠷దԽύΠϓϥΠϯΛ௨Γɺ*OTUSVDUJPO4FMFDUPSΛܦͯ+*5ίʔυΛग़ྗ͢Δ+BWBTDSJQU͜ͷ࠷దԽΛܦͯ+*5ίʔυ͕ग़ྗ͞ΕΔ
5VSCP'BO1JQFMJOF
8"4.%FDPEF'VODUJPO#PEZ44"(SBQI0QUJNJ[BUJPOQBTT4DIFEVMJOH3FHJTUFS"MMPDBUJPO*OTUSVDUJPOTFMFDUJPO$PEF(FOFSBUJPO
-JGUPGG1JQFMJOF
8"4.%FDPEF'VODUJPO#PEZ$PEF(FOFSBUJPO
KBWBTDSJQU1JQFMJOF
+444"(SBQI0QUJNJ[BUJPOQBTT4DIFEVMJOH3FHJTUFS"MMPDBUJPO*OTUSVDUJPOTFMFDUJPO$PEF(FOFSBUJPO1BSTF"45#ZUFDPEF(SBQI#ZUFDPEF
-JGUPGG5JFSJOH
8"4.-JGU0⒎&YFDVUFCBTFMJOF+*55VSCP'BO*NNFEJBUFMZTUBSUCBDLHSPVOEDPNQJMF
5JFSJOH-JGUPGGͷ߹࠷ॳʹ-JGUPGGͰ#BTFMJOF+*5Λग़ྗ࣮ͯ͠ߦ͢Δ͜͏͢Δ͜ͱͰελʔτΞοϓλΠϜͷߴԽΛߦ͏͞Βʹ8"4.+4ͱҧͬͯ੩తʹશͯܕ͚͞Ε͍ͯΔͨΊɺ࣮ߦͷ5SBDFΛߦΘͣʹଈ࠷దԽ+*5Λग़ྗ͢Δ͜ͱ͕Ͱ͖ΔͦͷͨΊɺ#BTFMJOFΛੜͭͭ͠όοΫάϥϯυͰ5VSCP'BOʹΑΔ࠷దԽ+*5ͷग़ྗΛಉ࣌ʹߦ͍ͬͯΔ
*OUFSQSFUFS8"4.༻ͷΠϯλϓϦλ࣮ී௨ʹ࣮ߦͨ͠߹ʹ͜ͷύεʹೖΔ͜ͱͳ͍σόοά༻్ͱͯ͠ͷΈଘࡏ͢Δͱ͍ͯ
$PEF$BDIJOH
5VSCP'BODPEFDBDIJOH8"4.ͷίʔυҰίϯύΠϧ͞ΕΔͱ$ISPNFʹΑͬͯΩϟογϡ͞Εͯ࣍ճҎ߱ߴͰىಈ͢Δ
5PFGpDJFOUDBDIJOHʠJOTUBOUJBUF4USFBNJOHʡ͔ʠDPNQJMF4USFBNJOHʡΛར༻͢Δඞཁ͕͋Δ63-ͱXBTNͷΈ߹ΘͤͰΩϟογϡΛߦ͏ͷͰɺҧ͏63-͔Βϩʔυ͢ΔͷΛΊΔ
KBWBTDSJQUͱൺͯ
$PEFTJ[Fѹॖ͞Εͨ#ZUFDPEFͳͷͰવKBWBTDSJQUͷιʔείʔυΑΓখ͍͞ίʔυ༰ʹΑΔ͕
5ZQF'FFECBDLKBWBTDSJQUܕ͕ແ͍ͷͰɺCBTFMJOFͰ༷ʑͳܕʹରԠ͢ΔίʔυΛग़ྗͦͷޙऩू͞Εͨܕใ͔ΒมͷܕΛ༧ͯ͠+*5Λग़ྗ͢Δ8"4.੩తܕ͚ͳͷͰɺͦͷաఔΛܦΔඞཁ͕ແ͍
4UBUJD0QUJNJ[BUJPO8"4.ଟ͘ͷ߹ɺίϯύΠϥ͔Βग़ྗ͞ΕΔͨΊɺίϯύΠϥͷόοΫΤϯυ͕੩తͳ࠷దԽΛࢪ͢͜ͱ͕Ͱ͖Δ+*5ͷλΠϛϯάͰߦ͏࠷దԽ࣌ؒΛ͔͚ΒΕͳ͍ͨΊɺߦ͑Δ࠷దԽ͕ݶΒΕΔ
($8"4.ʹ($͕ແ͍ͷͰߴͳׂ͕Մೳ8"4.ͷϝϞϦ+4ͷ"SSBZ#VGGFS͔ΒׂΓͯΒΕ͍ͯΔ͕ɺׂͷλΠϛϯάͰ0MEεϖʔεʹׂΓͯΔͷͰ+4ͷ($ͷରʹͳΓͮΒ͍
ؾʹͳΔ8"4.͔ͳΓMPXMFWFMͳ#ZUFDPEFͳͷͰɺ+7.ͷΑ͏ͳલఏ݅ΛͨͤΒΕͣɺΤϯδϯଆͰͰ͖Δ࠷దԽ͕͔ͳΓݶΒΕͯ͘Δࣄલͷ࠷దԽ͕ඇৗʹॏཁʹͳͬͯ͠·͍ɺ͏ίϯύΠϥʹੑೳ͕େ͖͘ґଘͦ͠͏
·ͱΊΓ8"4.ͱͯίϯύΠϥϑϨϯυϦʔKBWBTDSJQUͷ࠷దԽύε͔ͳΓෳࡶʹݟ͑Δ