From 6449a8682a419f4814a6fad59ee28e01aa72c91b Mon Sep 17 00:00:00 2001 From: Awni Hannun Date: Tue, 5 Dec 2023 12:08:05 -0800 Subject: [PATCH] Doc theme (#5) * change docs theme + links + logo * move mlx intro to landing page --- docs/README.md | 2 +- docs/src/_static/mlx_logo.png | Bin 0 -> 7410 bytes docs/src/conf.py | 12 +++++++++++- docs/src/index.rst | 24 ++++++++++++++++++++++++ docs/src/quick_start.rst | 22 ---------------------- 5 files changed, 36 insertions(+), 24 deletions(-) create mode 100644 docs/src/_static/mlx_logo.png diff --git a/docs/README.md b/docs/README.md index d0c35a31c6..f197ecf432 100644 --- a/docs/README.md +++ b/docs/README.md @@ -7,7 +7,7 @@ for example with `conda`: ``` conda install sphinx -pip install sphinx-rtd-theme +pip install sphinx-book-theme ``` ### Build diff --git a/docs/src/_static/mlx_logo.png b/docs/src/_static/mlx_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..49400bd8d51fa2077363be082ae6c66c8665ac2f GIT binary patch literal 7410 zcmeHMc|25Y`#+ZKX>1|e7`rfIM2sQJU}TV;%06Rxtc|fRk--Qtc4v;p81?}U+227@3q|bb*^*nds5F>m>lLf#sL7p zVN*29n%<5coNO%g>#3p=1A4>kt#7Um0QWLE_uUWC@4=pEYjXgIk_CWxA^_~tS@ARg z2!#Q_vKs&(3IRYc_*$zKlHNhYIhuNzn*)k;nhiL_zzZE{9FkCy2=!(SS&GyYq8^g7dD^a0EpQ$(gW?7?WK z5CGuhJ2)ADtJj18fN{Xr){)?7jzM?^1*o`VgFJ955dpymC;%COppyYOf;%`Oz&|hq z5upS5T>?R;57vYYy%5$Y<3Hi_I~|A* zfe?&AE%3K!yu_YEfa z1_go-^tyWlg%WfikOM>iKK}5N;Oq65rNEFs!=eWWJ?Md|s=%QC35JXC{Xbv_J%7M{ zkLwR}$OB~vCu>|tkbmfbTe>IV$lopeFXmtV{Q>w(-Y(FWp!+Y#KiL07IsVoEmzlpa z{|T_f`{L*W`MY1Lf4cQ|-rwX8qC=eVjllUkqI?5zfguO6z|~+#=zr|_C(q5o$SeZbE&t^z-UPYdoCM z*iD|#It@&h-Fgc$gqYPc~of?#Auy+$@EH^?+gx*otNYYmW&x-(;>U&r&X z>2;wvfESST_*AS2jFEw^fdPD$cwm(2zefN6hPUflvfBpF_r2B5v6HhgIdQv7l_&N- zHB?S}6)P)ue4qENYxzKR-Z}MaU+u!UY5%X4JDv40TN&CvzP=7>;TY#sijvVO^}M3R zYm)O6^&9VJhEV z?AD9geLI%ap+kb_VaoU4;9K_N?Ic>KzRg}N)!kp~LB{8@AJ3LJ56*t&Vz07Xl**s9 zz_#cH5;cRi6Rt*oX&LM0gkEE}a*)A&Eb=bdD*d%D7u`(H<^}?`;0?5MAFh12i_xj{ zi+beG_nD_gD@)_9uAw2uMR9F3k2K|cRfxpGZ;C}|b4eYdI2Yrc&6)7on*#QZk|{o+ z8N?V6yW#n;XZq@#JOrU^VHA6HPUz)wT@WE#bu`4WUG>vek&(+{KP!da*kY=8;dDq43egltqB{V z67@a$l?Zc(Wy+~u-{)6 zqV{jnU9FtG_$zh+YcT8J8k?tMJux66Emz^`(mMwm!a_3meyA?V_9kLN+j#AIuRBG_ zjawf}9?7;sri~lv;1FO@X%8MFNoOmUu~PGjTRf#etdRWii6GC5wB+lGI4!C(F+ zV^2_&;b$^GLhq?(0jGWKw4O$v<6;z+YoF zpBJpWJU;wj)$$OT2IkgV4IBU5757MG%v8tt=Ka|y;{^xOld54<$yYm>yabRPrvRmX z4HY5XW+i-O+)&baCcvE1di6mG8p7bua~_eN_|)gVq1Y>@I#)n@uwbb|d^D}ZBX(~> zTVcnSDPR;?aT&7!O^yhC{YV3B(5=X8B}m|RSh`#|IWdXqc+|{$#w+?0(Ak*2Yg2No z_O@G{;GKmUs##I3)hQ7zGB#$lV=oY~-pjX{tspg868)v=Ajhahf-N5@nVfHSOi;Xj3uW$BnYbyoZeZv4rRn+`P+}w2u5fm$=lrQfEf5 zLinZd3-+$D+im>O3uF_oALE|cF1%m6Yd&?bFtc!U@bxx}v0R}ttA6L5qt?`2El+mY zX*%t&m_ZY4({(krb(y$b@ae)^2`w@}B$DIy*Pl$ITf9!N#$;~*{9-ARrSy`$)bg=p zu;xTt11&$_$*ai!fxpwEHLd2^xIMxv-^!cx+6vFCh2ZaR&?*}=JGWn+TWWqCX!bDjTl?k^1eL~o$7 zo_Oy#w)`6QjB#nxKxK6Mf;%fpd2`LhB znx7lTES9c?44KkzA~Yhn60WGo3Tt6ozP*heV_+4{GI<-&JT0s9b;`2=-T3~B_J_4g zyJZFVeG;3bMCu6dJnTX;k*@SY>(^I)YGp>Fic(51{dje2TpI;f6OZUt)#mpbkW5b9 z9k>YHP(VLGh4=bs^u9<0=)QHAnAVg4|eOP?}wxgl_y)h3ulBJSJ`&8)e0vSHzr z8A}*ozwk)Js-*2r>DIUqnVG2fPDyVa^+YrT6GeYYLeR-6n(x!qM(Gjd+3!5biezW4 zqOjvtPreGDjU5Yo_&HytbAMxtR-WlK`tFg+gSkt{da>wF_abvEaz+OAh44!^3%sBP z(|cbYLRah^`|Es?1SnCG&%KHR@;^pLueOJ`(&wXI1<6;DGB-|XnNfN8DLcdSEZ2>O z+ir)B5^-6m$1_EilSuCsP_O&(Ba_7K2t_g~@*(9ZQ|bwy8yAmRzeh3hcjcwH%BMU7j}E6tRw=CJg+0Qc3V!o* zZ?$wA?hTot&qNUl#KTL$4=5~U8FD`@t28#>G62YWy_F$P6U)wsZ`@sr_kJHfR~XE< zONsqD?b|eAKRAgCX&MSMf2A%dzA0|drr2}Kvg`1jUOm(=(5SvFY$Z?Lq_O+@)BTWF zqrZ-99&QB6N3+*|e48y*X{Fsj{(AS;&cQj)Bm~VI*>Cod$01yN*>+=uM=8-z)PD6X z-KRH^{n(+triHnt!c#o0Ivf2`J6bMj60XumHef8eV>`47r_zMf7*WE0S&I18x(D-@ zkrzF<`<5jGJkN|wGG%GquAaSfPEXXHwuX82hWc~4H-2wRJ;djO5stW`q^&TS!N)!V zQ!=i(KO3hVE!72d4XQj;3b@yIbegny4``}o0%yfPIkV37EVJmkbDzJ^i%4yO zYh{9C1-;IxQ|KR9sf&I*g3kTN$IP6T7P*QdW)n=bmnw4bLOsYV!shdn-n<{v6n+|N zFG(S}V#jJM$5AYz_HItRa#k+l&XI)tN$+>YY5Y+d${!!6O6v*72DU8b`!7Uf*jVa> z9!&-Euh8UP+!M|1Yq%Eqp(wKMMxGp!NlGe>f$ntl(RO;?V^@vDdF~JBAy!avXx1Va z9NjWue{ONaYs~!QbMe)KdV-5-Pp`K5QsHb96x=IU^l#e8TXsvm6BCc3mA%>N{WN(##JqLsR z(4zO0T>y3J9=x8C$ z_1{3e7~>be636{U;2B@3#;~J;X!?pE)J146q$0tWh+V*@7Wd+nD3%_+SG~(=NG$JZ z-cjKf7jmR zin@JnrH;PbeN!7dA+0ztc|cFL%%l zorqn1Yb-OI^pgh9h>{jo&%yB4#qw9vd>zT2L*4TIkL0T?ls=@@vAz>yXCz-{LU*Y4 zT|5D(4lmxUS*v|5y}`Gea4qJgG?Fh>C>O=ZLe)p>X*FM7pFg`8T0(68dM@R0YOmrEmgn3{x46!-bj2iP z)v(Wx@^HBCeaq4<*i+;?UaUvw6U-83ATxG(rt@*uIgKn3nF=v z<7Cdb-B!)gByURn%*I?E+xiq5`B~D1UZc;1c4=}&i6R~fzc}%>hsNILSluIXI8A1e zY{RvV6&Xt&b|gt>0ndG-KyG;%ck8%Q!R);?h8hq)1LRj(3%_H>$+rX=HC~E9QEZRr z92V8tW}GM!7TIw4Iu}Ht*Kqg*_gz_Q5vLd4#khrMp42unx@TG5^`W=J$;H8bePR3H zrV16|So@ILY4eJE-KVApa3g(L+}61=CGS(W64gHuQ)1|gw+`RK>zE37jn9r+8_A%R zDqz21aMT65W~i``LfTa|FG($&aa%0Hf((B1vvVp6#6J!lMjaE};H!0bJlOJOv~l3> z=d>Miov*BWNwaUBdNDjg#sC@1Q?DeglryoV##imzTZxu9PB?qBhN{8IwL5c&je%jo z9n30O(q>zvL{5#3+1)Oy-_O~2hPs+tQkWG*V&+%^GkqK29d=ThOOZALFA7GY>ZvWf zi&^^ff}~qAy=r89!A>R!bb)ONY%}qOgpZI)B4m$!#)yYC+6GWA719KX$TIlQ9BuY* z^d$@}iM=`znb|Slb+m;3jb?b6>S`jO#lG%HsxsqPuo3Jw%U*V{ue_k6Mt+>MPh9Fl zs|Gi(tZlP7f1}DquA_*A(0<7c62Z=eyrgU*#xYvdxSI=K6c@s=HuuX@T)`G=CHEOCC(&kk)8hwincE_qK# zmva-da(`)-&CJ^2zQAR7zPK_cb*;WO0bU~QY{p`Cz+STRQFIuSjE`+n&5?tg(#o? zI#x7fc+6ZpN>XJtZ_9GfwlZ+1xWgNwp7EVX%aMDLJdW5DNEd_NxMPAkk<=au;^Wny zhkICiFIS5R(x8J9R-LVIOhqgDN7{yamJqlmgm^lp4vt0>Uo-?+ymPfHQtU^0X*3&H z9EB0?I564N1CvJS7Y?Zm1XQ$x)LOe<)7vXI`&5wW;`O43XKpfuoq> zuINvJRZ%hPb zhGnSb1yym>3U|RS&9$nk*vDT*)1*rtgW1H`Y^nyU_z;B-ZbEIxg^lHKszP!1MT;7% zB_f4Hch(Ks)TlNkx(0IRBKs|uO+JFZLrPogFFmmg(Fg6;D3Vjc5;8j|+RLqBFMSuv zD94!fq!Fay-lo<`r|N#ct))Tt@uXpMni1>cE~jKo%)_-RA&t+H+hZ)R%(b4&*}B9& zaw;VcCg>uWY6#|X%Y%>YS@f3mV=r&7)IzsCv*uhgHvC0>7f^~Cmv4*3#1>kW4^=rT zX@ByLXIWq?ud@*(+-t*}6IM3*fWT>Qx}k|q=_73umCDDiBR0caZ1O7#3Lyg9E4b_9 zO%F~_Dum=tQYA`6;a0&(8I)R6%&wy9d7~kt% zkCGL%J#H+(En^J2BFigPYi$!%{`$2-P!_0()VW3r4WtG|ElvK2Tdsw_uZk`guVyrbzTjR}UK0!C1O1Og05CPOK-C$zUHTuIjo7yU literal 0 HcmV?d00001 diff --git a/docs/src/conf.py b/docs/src/conf.py index 5d3be4e579..132a85fb2b 100644 --- a/docs/src/conf.py +++ b/docs/src/conf.py @@ -39,7 +39,17 @@ # -- Options for HTML output ------------------------------------------------- -html_theme = "sphinx_rtd_theme" +html_theme = "sphinx_book_theme" + +html_theme_options = { + "show_toc_level": 2, + "repository_url": "https://github.com/ml-explore/mlx", + "use_repository_button": True, + "navigation_with_keys": False, +} + +html_logo = "_static/mlx_logo.png" + # -- Options for HTMLHelp output --------------------------------------------- diff --git a/docs/src/index.rst b/docs/src/index.rst index 3c57db7de7..4459703701 100644 --- a/docs/src/index.rst +++ b/docs/src/index.rst @@ -1,6 +1,30 @@ MLX === +MLX is a NumPy-like array framework designed for efficient and flexible +machine learning on Apple silicon. + +The Python API closely follows NumPy with a few exceptions. MLX also has a +fully featured C++ API which closely follows the Python API. + +The main differences between MLX and NumPy are: + + - **Composable function transformations**: MLX has composable function + transformations for automatic differentiation, automatic vectorization, + and computation graph optimization. + - **Lazy computation**: Computations in MLX are lazy. Arrays are only + materialized when needed. + - **Multi-device**: Operations can run on any of the supported devices (CPU, + GPU, ...) + +The design of MLX is strongly inspired by frameworks like `PyTorch +`_, `Jax `_, and +`ArrayFire `_. A noteable difference from these +frameworks and MLX is the *unified memory model*. Arrays in MLX live in shared +memory. Operations on MLX arrays can be performed on any of the supported +device types without performing data copies. Currently supported device types +are the CPU and GPU. + .. toctree:: :caption: Install :maxdepth: 1 diff --git a/docs/src/quick_start.rst b/docs/src/quick_start.rst index 3439580ba6..ae79124873 100644 --- a/docs/src/quick_start.rst +++ b/docs/src/quick_start.rst @@ -1,28 +1,6 @@ Quick Start Guide ================= -MLX is a NumPy-like array framework designed for efficient and flexible -machine learning on Apple silicon. The Python API closely follows NumPy with -a few exceptions. MLX also has a fully featured C++ API which closely follows -the Python API. - -The main differences between MLX and NumPy are: - - - **Composable function transformations**: MLX has composable function - transformations for automatic differentiation, automatic vectorization, - and computation graph optimization. - - **Lazy computation**: Computations in MLX are lazy. Arrays are only - materialized when needed. - - **Multi-device**: Operations can run on any of the supported devices (CPU, - GPU, ...) - -The design of MLX is strongly inspired by frameworks like `PyTorch -`_, `Jax `_, and -`ArrayFire `_. A noteable difference from these -frameworks and MLX is the *unified memory model*. Arrays in MLX live in shared -memory. Operations on MLX arrays can be performed on any of the supported -device types without performing data copies. Currently supported device types -are the CPU and GPU. Basics ------