[{"data":1,"prerenderedAt":33},["ShallowReactive",2],{"chapter:vision-rs\u002Fgetting-started\u002Finstallation.json":3},{"project":4,"route":5,"title":6,"titleHtml":7,"navTitle":6,"part":8,"sourcePath":9,"editUrl":10,"html":11,"toc":12,"hasMermaid":26,"prev":27,"next":30},"vision-rs","\u002Fvision-rs\u002Fgetting-started\u002Finstallation","Installation & Toolchain","Installation &amp; Toolchain","Getting Started","getting-started\u002Finstallation.md","https:\u002F\u002Fgithub.com\u002Fteenygrad\u002Fvision-rs\u002Fedit\u002Fmain\u002Fbook\u002Fsrc\u002Fgetting-started\u002Finstallation.md","\u003Ch2 id=\"prerequisites\">Prerequisites\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>OS\u003C\u002Fstrong>: Ubuntu — the only supported development\u002Fbuild platform today.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Rust\u003C\u002Fstrong>: the latest stable toolchain via \u003Ca href=\"https:\u002F\u002Frustup.rs\u002F\" target=\"_blank\" rel=\"noopener noreferrer\">rustup\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CUDA Toolkit 13.3 or later\u003C\u002Fstrong> on the host — required for the \u003Ccode>cuda\u003C\u002Fcode>\nfeature (on by default) and for ahead-of-time kernel compilation.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>This crate’s sibling repo\u003C\u002Fstrong>, checked out next to \u003Ccode>vision-rs\u003C\u002Fcode>:\u003Cpre data-lang=\"bash\" class=\"shiki teeny-datasheet\" style=\"background-color:#16181a;color:#e6e8e3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#7FB6D9\">git\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> clone\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> https:\u002F\u002Fgithub.com\u002Fteenygrad\u002Fteenygrad\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> ..\u002Fteenygrad\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ccode>vision-rs\u003C\u002Fcode>’s \u003Ccode>Cargo.toml\u003C\u002Fcode> patches \u003Ccode>teeny-*\u003C\u002Fcode> crates to \u003Ccode>..\u002Fteenygrad\u002F...\u003C\u002Fcode>\nvia \u003Ccode>[patch.crates-io]\u003C\u002Fcode>, and cross builds auto-mount that workspace root.\u003C\u002Fli>\n\u003Cli>Only if cross-compiling\u002Fdeploying to a Jetson Orin Nano:\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcross-rs\u002Fcross\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Ccode>cross\u003C\u002Fcode>\u003C\u002Fa>, Docker, the\n\u003Ccode>aarch64-unknown-linux-gnu\u003C\u002Fcode> rustup target, \u003Ccode>cargo-teeny\u003C\u002Fcode>, and SSH\u002F\u003Ccode>rsync\u003C\u002Fcode>\naccess to the device — see \u003Ca href=\"\u002Fvision-rs\u002Fdeployment\u002Fcross-compilation\">Cross-Compilation\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"clone-and-configure\">Clone and configure\u003C\u002Fh2>\n\u003Cpre data-lang=\"bash\" class=\"shiki teeny-datasheet\" style=\"background-color:#16181a;color:#e6e8e3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#7FB6D9\">git\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> clone\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> https:\u002F\u002Fgithub.com\u002Fteenygrad\u002Fvision-rs\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7FB6D9\">cd\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> vision-rs\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7FB6D9\">cp\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> .env.dev\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> .env\u003C\u002Fspan>\u003Cspan style=\"color:#7F877D;font-style:italic\">   # then edit the paths inside for your machine\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"the-teenyc-compiler\">The \u003Ccode>teenyc\u003C\u002Fcode> compiler\u003C\u002Fh2>\n\u003Cp>vision-rs itself builds against \u003Cstrong>stable\u003C\u002Fstrong> Rust, but its GPU kernels\n(Triton-DSL, compiled to PTX\u002FMLIR) go through a separate, custom compiler\nfork: \u003Ccode>teenyc\u003C\u002Fcode>. You need it on your machine, with \u003Ccode>TEENYC_PATH\u003C\u002Fcode> (set in\n\u003Ccode>.env\u003C\u002Fcode>) pointing at it, before building or running anything that uses the\n\u003Ccode>cuda\u003C\u002Fcode> feature (on by default).\u003C\u002Fp>\n\u003Cp>The supported way to get it is via\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fteenygrad\u002Fcargo-teeny\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Ccode>cargo-teeny\u003C\u002Fcode>\u003C\u002Fa>, which installs a\nprebuilt release — you do \u003Cstrong>not\u003C\u002Fstrong> need to clone or build the \u003Ccode>teeny\u003C\u002Fcode>\ncompiler fork from source:\u003C\u002Fp>\n\u003Cpre data-lang=\"bash\" class=\"shiki teeny-datasheet\" style=\"background-color:#16181a;color:#e6e8e3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#7FB6D9\">cargo\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> install\u003C\u002Fspan>\u003Cspan style=\"color:#B79AD4\"> --git\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> https:\u002F\u002Fgithub.com\u002Fteenygrad\u002Fcargo-teeny\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7FB6D9\">cargo\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> teeny\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> install-toolchain\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This links the compiler as \u003Ccode>stable-teenyc-x86_64-unknown-linux-gnu\u003C\u002Fcode> under\n\u003Ccode>~\u002F.rustup\u002Ftoolchains\u002F\u003C\u002Fcode>. Verify it:\u003C\u002Fp>\n\u003Cpre data-lang=\"bash\" class=\"shiki teeny-datasheet\" style=\"background-color:#16181a;color:#e6e8e3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#7FB6D9\">rustup\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> toolchain\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> list\u003C\u002Fspan>\u003Cspan style=\"color:#8A9088\"> |\u003C\u002Fspan>\u003Cspan style=\"color:#7FB6D9\"> grep\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> teeny\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7FB6D9\">rustup\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> run\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> stable-teenyc-x86_64-unknown-linux-gnu\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> teenyc\u003C\u002Fspan>\u003Cspan style=\"color:#B79AD4\"> --version\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Ccode>.env.dev\u003C\u002Fcode> already points \u003Ccode>TEENYC_PATH\u003C\u002Fcode> at the right place once installed\nthis way. \u003Ccode>source .env\u003C\u002Fcode> in every shell before building\u002Frunning\u002Ftesting —\nthe test suite and examples compile kernels via \u003Ccode>teenyc\u003C\u002Fcode> at runtime.\u003C\u002Fp>\n\u003Ch2 id=\"build\">Build\u003C\u002Fh2>\n\u003Cpre data-lang=\"bash\" class=\"shiki teeny-datasheet\" style=\"background-color:#16181a;color:#e6e8e3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#7FB6D9\">source\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> .env\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7FB6D9\">cargo\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> build\u003C\u002Fspan>\u003Cspan style=\"color:#B79AD4\"> --release\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7FB6D9\">cargo\u003C\u002Fspan>\u003Cspan style=\"color:#D8A76B\"> test\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>See \u003Ca href=\"\u002Fvision-rs\u002Fkernels-and-performance\u002Fcustom-kernels\">Custom Kernels\u003C\u002Fa> for how\nthe kernel compilation pipeline fits together, and\n\u003Ca href=\"\u002Fvision-rs\u002Fdeployment\u002Fcross-compilation\">Building for Jetson Orin Nano\u003C\u002Fa> for\ncross-compilation.\u003C\u002Fp>\n",[13,17,20,23],{"id":14,"text":15,"level":16},"prerequisites","Prerequisites",2,{"id":18,"text":19,"level":16},"clone-and-configure","Clone and configure",{"id":21,"text":22,"level":16},"the-teenyc-compiler","The teenyc compiler",{"id":24,"text":25,"level":16},"build","Build",false,{"title":28,"titleHtml":28,"route":29},"Introduction","\u002Fvision-rs",{"title":31,"titleHtml":31,"route":32},"Your First Detection","\u002Fvision-rs\u002Fgetting-started\u002Ffirst-detection",1786271830409]