From 8e86bcf8bee75e456b985211812ba2bd5a400735 Mon Sep 17 00:00:00 2001 From: Scott Todd Date: Mon, 16 Dec 2024 13:36:23 -0800 Subject: [PATCH] Refresh architecture diagram with ONNX and LiteRT inputs. (#19494) Progress on https://github.com/iree-org/iree/issues/18174. I suggest the rich diff "swipe" view to see what changed. Updates in text form: * Added ONNX to input frameworks in the top left and swapped "TOSA" for "LiteRT". * Reordered the input frameworks (roughly ordered by momentum and grouped TF with LiteRT, but could also sort alphabetically). * Exporting somehow changed the font to from [Virgil, Cascadia, Assistant] sourced from e.g. `https://excalidraw.com/Cascadia.woff2` to just Cascadia, sourced from an inlined base64-encoded blob (so +1.87KB file size). I don't mind the changes. * Removed _extremely_ small "Stacked Column" text from the "Profiling Feedback" chart on the right that looked like an artifact of the diagram generation. --- docs/website/docs/assets/images/.gitignore | 2 ++ .../images/iree_architecture.excalidraw.gz | Bin 32752 -> 34579 bytes .../docs/assets/images/iree_architecture.svg | 15 ++------------- .../assets/images/iree_architecture_dark.svg | 15 ++------------- 4 files changed, 6 insertions(+), 26 deletions(-) create mode 100644 docs/website/docs/assets/images/.gitignore diff --git a/docs/website/docs/assets/images/.gitignore b/docs/website/docs/assets/images/.gitignore new file mode 100644 index 000000000000..cae9608b1475 --- /dev/null +++ b/docs/website/docs/assets/images/.gitignore @@ -0,0 +1,2 @@ +# Commit as iree_architecture.excalidraw.gz instead (~10x compression ratio). +iree_architecture.excalidraw diff --git a/docs/website/docs/assets/images/iree_architecture.excalidraw.gz b/docs/website/docs/assets/images/iree_architecture.excalidraw.gz index 7f82aa23bb8b119e4e24cf372bb1ed227298fdbb..62270942ccd4750839935357c95f1b093334d75e 100644 GIT binary patch literal 34579 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 z z^J}-KTm18v+NaYSL`imyK*LCqAtm-AYU~sU$YfMm#_{{l%gY!O3wu?n3y&&sO1iPU zdDyH>!vVQkh(Go&`-AJ&;0@wthraz%CuGu>i>_1k3wRC};Cx1``Ob%*;g|FI)!y#h z-C*JN^W3M87gG0%<OOO$G3KE6;co)M&VK5W0 zF-C2On8XJ5p33-TZC^(9^UVx!MxF?|m1b78PvjS%;u)&Jgkgq5(2Wv*vD)XD9&{NB z2&GNf_9ZKaAlKDvv*L~T@Oi5~J>~YpUVm`heyNpzuXA$JZ9PxOhQ9n(ZDVld+}btC zENCJYs9yZ9KMP>-6cr@{7Bc(smJFo`5YbQ|#xz)f3P1oE5`$Ri3j|CpIb6K1)G&6< zqlT@Rxjo@CO77`2`E%oi{ZDYa8i#k$xI4b<|9p1ZJXx)MVX*ulk03*Z;l8Bi$2L<7%Co37diHViA5|5%^N zC0HWFgjL0BE?kJlX=F7OuCaTBwG^&+qAr+}S#|O~nS)putnSYpHuhJ}uN$#6cYM*V zeO-wD*w^V$VR%6X%}iGfO_}0-UdaHNw68-{%anw7KSi8ex%L`wAY6Nmx4Wm~Cyf4- zRW)IvA%C@{Ztd&yN!=31f&}P)MgY~j;}TW_0EC+A*4RDu8tRs2R_hj`vPMkaaP@YV zua6dY)_Y9rtBs|*op!VzYF`(GB}J1c6xB$F>OzX3MzX3*br6wW*z_3lOM-?nIZBAs8M-9o;>!OI z=mu3sB#K#R(B$31(tT%TVdeAA@;qa=yY#qv*ZsO)d*~XJaFNI)5YM5FPE#q0VTf!D zKwM+&5-FyJy{q>A<*hC;Jwd#TA&!%eqP)FxOrLo9$`7)2yyqV-yL?=F^BR!!?d_UXsVMF(bU4iH48`rx>LFf`zU%13#B5efd~&{ml+h;|JF%ikMiT~ zN<7Yc>#o-xEd8>0Fj)Mv-~8`EoFpqD4rZC5fRnqR9WXo|#OW_{J1ZycgYARv`lda# z_*Dml2b8dM4hIq=8iIIW2@oJjbOQH(0`a5n_kSA&H)ZkAFf=D6V;TiFV+m(ZW+LLi z98GKhi(sMu8@{Vn8VO7*p`9U&_#6|Q!PnS5TYTuQHIA0fKOA)qvemh*J+!f;F(R>x zc*qd66$-f+2cZU`O##|aTv17cEELJaMzM`nFd6^YCJ5Bg2@Qx+5NNyv-LtL6I&U@3 zRYTLw|5rzH~MRt+V94s&qb4Cs`a(FdzfYi#t1zV)DJvrq$J8O^q=IZD3GuocJeYj}Y-0Ah!Rk!BsKuCpM6B8WO zO-2t7EGcdxBFR`=dLZy%1C|*-%=qE8_<=wwM-RryD*TMapw8CSf$_J8=IZ>#aZ8u( zKQGVKjUKS5VQOTkNfLz(@day%3;@;?5*@zBa4DIoK?-8x^}WYX4haRb8C}fi;KcZ z=}<2MQi5289Raw$lL}PM)bJTy%;@6v=t3$-6`G*L%+J_qyY1XxHMh3Tx4&HJ)`v#p z{ALT@8(pAA;p7A}MHj*0R)mTwm^q50LDZHn2t+JRXLK>6i&vuyr)tw7K$d6Sd;Gk% zygk4B*p7z}N1I0r((_)UcCRM>o-eYfd!S-6A=~ilVk-omkj|P^pt*dw_>umv!a1ySuS+)1f}D9NwY z|Mj$Ub~9*Rf5+>SjvG_3nXmXGs{A)}oa2Vz%hwB8sv81I1Xlu`{BC0Zrg7cVd0)Hl zAMb7+&L3QMwrXFqz+M~(Ms2u%2aZEA4qya$+RF{Yq;CE8QGf4Y{v_Iq%RdkHZ}Rb`_C@)$mPm3@ z2vc-s&X5|5i4&`f#D71iM5tO!%q2+!cw*c_{}gp+@qFD**ZcH&u)Ed1I;cHve`D`V zmfE_4F#IZc0iWu5STav$76{l-5=hJ-#LUxYS|mu85s92!l51~V<>De$_4!VB-|qjX z)S@V8FsuuxfW;9pa6q7Pk};c6gng`=B$SjWKEL|<_!r6DeZSMX`iHKPf#3OWT_zeM zPi1(5ntwpXc5VG-x8G?UK6h{CnmebRdsv9d+XuaKn^9wI6aSgvPP{B^0z^u}@Wt|2^;D-PM2g zirQWM*F1hP#lO?d1_Xi+?3*_5a(8?4o@v!p8krhjtNlaX@6+B4U8 z`@)x!XD z{4nmmdb7QA(m&t1JMV79`Qh`_Vg(IKzaPei1wcRzjMa3&trUx}kf=alFx$V~Cr1lN z3iw>FaQ?&Kd#9fyDC?0gQ>)+kX{vp9-)|lLI^g!x*Vap?|5Nv-|I_qCxBJUKTi3@w%{_OH9)A1p)z)?E zR)HctT1ekkj59 z$)A5cmxry!D;+Pu$@%H}Q)lye@iQ9)yw|^{(H<{?BH*6mms7hZH?uDbJ$PMgJnv1n zzufGeRNWcTrD}!&4n(;YV{?RX=hPpu(HaFM3>=s_)Mz-oqc~rcJ?<+?Rh6%ADGDfk1k-&hG$IpnD*5>@IxzO5pSZrMH9_Z(9wLgYFkq?|5XC^*5ZM$>D@z9yqExV&4mBMnMhBFUbnr9@Wy$de)Q?VD z&7J9k%l_KR3vC_SW^d=d>U1C~Aek=CLdipLNEYKT6*cqf!U3F!QL?TpYC24;t_UAR z2Lp#hOB`Ro<*D6hUQVx1+13hPbeiisTkWOF!@&xsp#q5qU<}a#nUdL!gSEnRz+mE3 zgqjXD9VTUqGrA+mhNx;fe%GP7@OZVbH4l3at*5j8{PgwA;r2$==JD( z9cV)&7dIEONI*lXE-lQHLILVZqo&0$EhcX6??jH0=GE86&6+%%+tl>! z`qO8Gg*vK0xOt`x&>{-C5G4m0p;ea_A)zW*zwNAPF+p04-bh3c2oCqLd2tEt#%h2+ zPCcGJS@UUs=3;*S^YMZUhEV__q{(0{f+aOL0FaSIs>=&8RuM9*c~SFXQoK+b%?n0k zAsxR}LA}TB)#Cc>(&_7MbImp`UpF=@H#+q$FAxhRI6GLnYYyZWR15;e1Wc-&U!<$0 z2G^~N8W$78h091>5Ttn;jgO1&)Y5%6^q{@EbGp3jjm!N`|MR66h(%SDfBTCx*u3z9 z=#-c#4vCe;1+t`)n$*pUnirERM{Kn5g(H#@kMHn%vV69@(mcOdw&#t5#rxgP!M=P- zT%?CGgIn5AF`_Ewp~fCqVOn4?g{jurMNNxwXfghp645ARCI2 zuK8Yj{$hL9+Eqga3=l%7aAts$i#QApY)5fGHZekFi64Ln)Z&?m8GC5J`>q$E2kk*ay*4+?MhG*2|)Nc={4Ye|iW1QY@f;GyWY1ThJ% zqx(-a>e=D?m-+cZ)#3Qm;ADu`=24K%|nzGH3)DZ zuCpkpvbrjPjhxVUIz7AZ{Kcq75@b_MayA(bYAQsklH^W^r0By5iL}eq=^NueDg+U1VQ8Ewpzl2mv7nN;I3jCk z&>JJc5~R%N>X>Hw?uQ#b4R5PAKyxHPRYyidnb_33j!a&|gu~hN11{-yfqwZk-FVce zgPH5z*6w-l6L8SMjY$p3f`$|%RDLg>|kaAp+TlFKtTZy1_B__^nCZDQ4!V< zWRL{Vh&PWLjN11eH+&QZzpE!$Xn1HkPmqB=T5Kf9GLk-EP0{Oqy_v-Yo@yUmT`z6+ z*PFA8p8$d(=3&f+#xm5y_Ovh#_6Xr0kqic!i&|u+QRFZLxgZ9TfSIMH*&qa!f}OJN zU;pi(3r|a$g0?wLDNQ9VS6K(#} z=(S2QPo|FuGVHCNJ@#f8PM>=RH{I^-%gBQgmL03Y!|U!Ut=#_Pq({^{44y*RsCJb&5! z1d%PMj*t)lI>>J*OLBIeW{ixU;%*5}kJMcIvR|cyKGgOavNcVFMMjV-Zg# zAxmJXu2!cgBcouw^hsM1Z^=xLl(OR0FyKbKBboSeg zJ+3?(xTGMk3o@zV5FAKI!_b(MtJ{%8aRW51r8;XmOe}Rk(9s*JY=RLV*l4$-`_}PZ zEWpvxQ)9m0ywuyJtE%DQy%kkTD9D(sAna&1(1@_201O18Ar;1jGZ7Nky5BV}CWnjB z6VQf?Cd4{6EuL>yaN(-8(rsK!byn9`_HXd`>u02enIVS}fef}S4GRdSGiRU^R~HwU zY2fO0?NQ@ma=7r(;}DFfkRPxK*xj1)$GeSJ`AR1nGc(J#&AG?^XXHg-sDxlL5D)M| zimRl88W>l%Q-KPBm{EHU)wq}(E@UJwEHuOH1FeefOTS!cVRwG}>zAv3Xa00nj;B8z zEiB6KtWagf94JM!h%>VaL^xOXrALC9fO!2%w1&mRVBs)Yiw_A{=mWm>D>tpvuRMEo zwZx6Uttv&-xK#?Oek$Mcl&` zOxc7hE5#RP4CeN~+rs;rKsfLL~MYZ@;6V#=4C;9JH zEwvWkKcK}&z@smCNi}2~|AODTf4)7q*w^_3T|POwzkH#M)xA$ZK|)p6V0S_rl8~Sj zNmdLn)M{$+g$M})*3Fy$90qGCz8@^bM<6~Dfn=IsAMnQAzdVnPyZ++R>D|#Df0>8f zmF{xo5r_p)*@MHuVYr2D3Ly-JW+K&8;==$1tW&}NA_HqFzRxSg2j3~PSrj!s09Wew zdhK{Ve|kNB*}htb?Zr)~yc8d+7hnMb5o8+_DHAUiqMXiPY*cY6J|RXX`rkE@-g(Kz zqqhS&Sb=c-FrRy+r|#YUZ2zo%x4p5lvc~tT-Kysh2E~L?1=Uc7dP(3$N?;VJR#6?k zlmyb0|K0no@96N+$kaH2JQ&6gYv~-{Y&J!YZ|r($r@#1ovb$M1Kys~BnZeIHt)ohp`8-hl%fs{>HKVae4o;y0* zJK5iz-Mn#X`r&4eucoTb2Gf!hp%I}fI1GnK4NP?l;OdHWq9hnFO0D2q<6&|w_mOz8 zkns4>82LeesYBh9?qT=%XtufcGQFY;m8Sz1A#=3|*B~8exocq{1$0cP@|shNmBm9kq8imwTQwafS6bM}R(paQ7=FMw?{xE+j@I|*j$dYbvGC<+>v?Os@*~NX zg%N;}G0b%Mb$ytk0Y^Ggg_X6)6d}~=+@Yq!#Bzrm?F}MG1`;3WJIwB%zHIDG_4FtfN>F2olUV zzVOBF>p}PUb?NHvHqO_(cee+Ref*55a6ya+p-93Z(@0?<6CeV>>av1`GZgBUWetnT z!QwlXgpNi=_5pK%)z;R*^d;>y=l7ORj@CLSt(p7F&xZ>u8ct-OY~Vb!I>Ab=;Y6$z zPAyPFBe9+wu5s~CikS&F`BXR>0qH!%!9#P!2}1V zV51}=f|5sMmG!`l1f9HgEv#uVIa=6AS{S*S(+6A&UoIclZ0)u6we|Jv=xKZ9c4O%( zJ|8Z$Km?>HkPJI}b1|X_2_(u24_6@q1`yYB;6Jl>W=m~!M*x16RC3L!-j_@E)huS` z#w9@P`wmZ^IDeAgXfz->A{k>%*}kyFAXA^d>C>mX&(IbFvjx@XEs|YBxsRTj{mJpU zr;VGh+xwd@7t^yluzB#y4dG*zVv30tf?jDq@RBT^>BCGX0khOTT5K=#>{MGxz<@V{3owjdv>2i-=7TWi-zX08Vz+wdM zAzC>;huth$1ktmpQ_2v-l35dmaQ_Lnv)97yN-oaKJ<~mV{Ivb;ZuxQLa2%hmz8x&b z!qdqwK)0Kw8lgjFAiGfUNOMM%493Rd?W*7&8NVCe^-CGBI<^_q#kr5AjO>ll&eX)r z;VeF#PR*{oJnzQHuYfk73WFPCrA@>NIR=px1n)$Yh6T`2q7UPnL(8y=^gYiY? zA($Yzh*nZd;FReo!|6nyE}R&F;!c1@0;-^h`Z}CI7Lr6tAXK2__X89O5mVGqOy}rW zrU62Tin6JwtGT`V9PpU<7zos11uKyzgb4!5 zG;k|eF$fUy2#jFCZdMQ@C1=P$OsT9PJPg%Mhc(HcP6{JbELjLh(@0EEU&R(!h#45& zQpG|T-@Ri8ah-Rp(DwfcRtW0r8I%_4oApp}HW{f_cL~8K(%vi# zJRK21ls{m3rIOC%j)?(DRsBH8gv@|sPEpQk&YA*9czD{zCp6GVCn4BbA}D4SseqwE zy9**#6!MC`Tc#3D!`8BsVTddXQs5SsCUe>;Qklb4e`{cxUlcT;kGyLR$0wbXROTNVZc;S7Xi?MR_% zF~JPgG_oAL>A#RLFCk<7iP(4KsCl@{;T zN7r|+&qj7zFFg9~=Z@;c|6KtlB9(MZ;-Em%%9bAlMW_p5c>S3z7$&XVH{J9%)K+Wv zplT0FBm;LKD_v6nOgheu6^?g^}FM}*4ckvaCiB`T4?Vd-?DXl z(Y~qvh%RrA505WeXKQbN`#&D}Gk=!0An6YT+_t~}^Y?#{pY8-@@cJ$h0b(NSJZt(`1$zK`0e?{#_pHByQS9n)cWq%*~O*<&RW8ZIMP+nsRMB4;+zNoAsXoK0p5QP zfEPkVM?oi}lq%ckC775sj3ooWDsU5^D6kCS{u6GYtc4rR1UdRx`K?Y)%VT?Nr8TvS zvn$YE^t;oo#={-OBUBPa!bo1j?VtsSm;#ehSsDsAqe7VBknSJp&NpHc76D|*p6R~d z+VYv_nUTr+#YNgUTAtWnd6{oI-EJin5Ev+kAv)A;QPcxD7*!n_N_SE+qz>W!5pFfE zh1FLYp<-*p}?h9-#PtIA>;RYy*1{kS=*@<=*kJO;=zpSZI34tLZ zgv0N~_S?hZgx)CXL;#~c_8k4xed}~@WnnDW_qQew%zkK1_xMxT$?rfjywb#i=cC!;%; z%ZGX~|MhUJX}nt@Od>M{aZb?=-qi~TMT#gVl6CS$ivQG4OAbstw} z_Ojb*yuq|Mf+4C(pms)|fyD%k4J-`@Uem!PLct|C#RNgUTksi3s=&$$PRP}fA%LLf zzu!*DTWpJCE!!@j7#Y2@y+5`c8~aO(lb2t1*Y|1Z@cC?RwDD|P$v})y<5a*-wz(t_ zpekhMN0gct0Znl5U>6qdI>`b>JkS&+g|hl^&P3o4`t33awQXuFwc6H5GH~af$)0@K zS=pU^dEQ$-Zo$sXW4=s+Hoi+uM2cttc%?@T5us3mMzBYMy>XEKu2bmGHK}-Z=a+f7M!O{6~^P3Q1U)gGl7-8Y?3z0%oZWf}Z-{ zoKW~Tq}>SX^2FhS=`0{(sz8v{4`=l?)goC4_EdhaNOn)D{W43>7gKXzAHQBMj|LoLrs9SRCKM9*=L1Egl|RN%H}ZEI}>^ zx}Jvh=i8U#rSqq|vBm>V%q28J zkc|T<=Y8E!uuE-$gRhd$?=i9rInpan!H`6 z-OZck<1Jo@Qb;Kb1GEG0ESwJRL5#*9LN|NyBn|;EV4&zWJ&;IJ#mpQ?JUJ?KBb%Y< zPX*w^4Vfly$kYMy{pyCsfM(8_)kb&Bh(i4=U-oWb$oGEW7BT`l$0T)YKT-;IrAF!ox?*n{h2j9>5*ogC*cB&6qy>19Upzx!a-q}6yf+WAN}+a zsuTdIh5}t81A+nsY07L$o=~Z?3y%a*qM-^tn+lYQadHwsa3;g68Ie^q-nn0uw~hh8 zk_pMo0t$g>gOUwuoovh*1l_cE**phtjvkI*FD}is9%q;GZ03Hu`Lc;DsUQ$cM4eeA zEX0)Gf1?BQ$E>k|i+G}#1)~RbTVq=ZM*{#LOM>t&!!p28X=s~IXd5WO=_=;poJc~rdIF2&$E<6j1S%Sti>O*?RX9;ZgHpu;(3rbSRTE6mfT3?b zoo`4ByF{3PfP@*p5>6)@??yLO;3{utFh!!l{6;+Ers~{#;^YX|ZF*yW=H=ynVefqD z;&eKiAJ2$T0klX;#R%8RzAu9*3Oi&1HF(!RLoL~VzkT1@v|#cZ{Yh#N*~jDaa_RDE z=WOip;$U%MYiviJ_RibmjmMis3Ol=)I8g$2BnPCpra55}OMFF*~tE*(ZbGs^TuWnaZ(kTFdP}xidmKmsb4KONT zSnsac@jE|i-QRiZWGjxRaqnPe?DQ9K4HqD=OjK1;u9i@FgoU#wi+zx6v_NQ@IwL3> zceRZosH!k3X}3w5$ZXDmGStl{)D4rWlX{AVzY5hm(0K1&RoXhw_(}>43UyIPut8-8 zENe3Z4r1BQr1kZ^r^o4=uOm5ju>Cx~Hw%Xshs|#ipo9{L2I&q??v=pCh$J;pjWj<@ zHss+UfaV!SU1XC52~o@}9lh�i{IOp=>^-Y<|o{{_wR`Fy6II6}S2{qygdJ@&sZ~ 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 HqbmgfcqZ0E diff --git a/docs/website/docs/assets/images/iree_architecture.svg b/docs/website/docs/assets/images/iree_architecture.svg index a98ba0d2e404..60effddf6e76 100644 --- a/docs/website/docs/assets/images/iree_architecture.svg +++ b/docs/website/docs/assets/images/iree_architecture.svg @@ -3,19 +3,8 @@ - IREE ModulesStaticLibrarySharedLibraryVMBytecodeCSourceIREE Compiler using MLIRIREE ImportersPyTorchJAXTFTOSATargetConfigurationflowstreamhalVMlinalgHardware Abstraction Layer for Buffer and Execution ManagementCommand BuffersVMVXDevice Placement and Asynchronous SchedulingLLVMSPIR-VIREE RuntimeTarget HardwareDevice ExecutablesLLVMarithInput MLIRARMPTXDevice Code GenerationEmit CHost Code GenerationCPUWASMTensor Program Modeling and Compute Workload PartitioningBindingsPythonCRustTFLiteVMHALCUDAHIPCPUVulkanMetalStacked ColumnProfilingFeedbackToolsiree-benchmark-moduleiree-check-moduleWASMROCDLRISC-Vx86iree-run-module~25-150KBPluginsWebGPUCustomPluginPlugins \ No newline at end of file + IREE ModulesStaticLibrarySharedLibraryVMBytecodeCSourceIREE Compiler using MLIRIREE ImportersPyTorchONNXJAXLiteRTTargetConfigurationflowstreamhalVMlinalgHardware Abstraction Layer for Buffer and Execution ManagementCommand BuffersVMVXDevice Placement and Asynchronous SchedulingLLVMSPIR-VIREE RuntimeTarget HardwareDevice ExecutablesLLVMarithInput MLIRARMPTXDevice Code GenerationEmit CHost Code GenerationCPUWASMTensor Program Modeling and Compute Workload PartitioningBindingsPythonCRustTFLiteVMHALCUDAHIPCPUVulkanMetalProfilingFeedbackToolsiree-benchmark-moduleiree-check-moduleWASMROCDLRISC-Vx86iree-run-module~25-150KBPluginsWebGPUCustomTFPluginsPlugin \ No newline at end of file diff --git a/docs/website/docs/assets/images/iree_architecture_dark.svg b/docs/website/docs/assets/images/iree_architecture_dark.svg index 63dfbcf6d06b..8986ef182b03 100644 --- a/docs/website/docs/assets/images/iree_architecture_dark.svg +++ b/docs/website/docs/assets/images/iree_architecture_dark.svg @@ -3,19 +3,8 @@ - IREE ModulesStaticLibrarySharedLibraryVMBytecodeCSourceIREE Compiler using MLIRIREE ImportersPyTorchJAXTFTOSATargetConfigurationflowstreamhalVMlinalgHardware Abstraction Layer for Buffer and Execution ManagementCommand BuffersVMVXDevice Placement and Asynchronous SchedulingLLVMSPIR-VIREE RuntimeTarget HardwareDevice ExecutablesLLVMarithInput MLIRARMPTXDevice Code GenerationEmit CHost Code GenerationCPUWASMTensor Program Modeling and Compute Workload PartitioningBindingsPythonCRustTFLiteVMHALCUDAHIPCPUVulkanMetalStacked ColumnProfilingFeedbackToolsiree-benchmark-moduleiree-check-moduleWASMROCDLRISC-Vx86iree-run-module~25-150KBPluginsWebGPUCustomPluginPlugins \ No newline at end of file + IREE ModulesStaticLibrarySharedLibraryVMBytecodeCSourceIREE Compiler using MLIRIREE ImportersPyTorchONNXJAXLiteRTTargetConfigurationflowstreamhalVMlinalgHardware Abstraction Layer for Buffer and Execution ManagementCommand BuffersVMVXDevice Placement and Asynchronous SchedulingLLVMSPIR-VIREE RuntimeTarget HardwareDevice ExecutablesLLVMarithInput MLIRARMPTXDevice Code GenerationEmit CHost Code GenerationCPUWASMTensor Program Modeling and Compute Workload PartitioningBindingsPythonCRustTFLiteVMHALCUDAHIPCPUVulkanMetalProfilingFeedbackToolsiree-benchmark-moduleiree-check-moduleWASMROCDLRISC-Vx86iree-run-module~25-150KBPluginsWebGPUCustomTFPluginsPlugin \ No newline at end of file