[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-105761":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":18,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":30,"readmeContent":31,"aiSummary":9,"trendingCount":16,"starSnapshotCount":16,"syncStatus":32,"lastSyncTime":33,"discoverSource":34},105761,"cuda-rust","NVIDIA\u002Fcuda-rust","NVIDIA","NVIDIA's CUDA platform for Rust. Host runtime crates plus Tile (cutile-rs) and SIMT (cuda-oxide) kernel programming models in idiomatic Rust.",null,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fcuda-rust","Rust",3906,351,21,137,0,52.63,false,"main",[21,22,23,24,25,26,27,28,29],"compiler-backend","async","cuda","gpu","high-performance-computing","nvidia","programming-languages","rust","heterogeneous-computing","2026-11-01 00:17:26","# CUDA Rust\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fcuda-rust\u002Factions\u002Fworkflows\u002Fci-status.yml\">\u003Cimg alt=\"Build\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002FNVIDIA\u002Fcuda-rust\u002Fci-status.yml?label=build\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fnvidia.github.io\u002Fcuda-rust\u002F\">\u003Cimg alt=\"Docs\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-blue.svg\">\u003C\u002Fa>\n\u003C\u002Fp>\n\nCUDA Rust is NVIDIA's CUDA platform for Rust. It provides\nhost-side crates for working with the CUDA driver and device-side crates and\ntools for writing GPU kernels in idiomatic Rust.\n\n* [cuda-oxide](.\u002Fcuda-oxide) ([book](.\u002Fcuda-oxide\u002Fcuda-oxide-book)): A custom rustc\n  codegen backend, cargo helper utility, and crates to help users target the\n  traditional CUDA **SIMT** (Single Instruction, Multiple Threads) kernel\n  programming model. Here users have access to every\n  detail of device-side CUDA programming.\n* [cutile-rs](.\u002Fcutile-rs) ([book](.\u002Fcutile-rs\u002Fcutile-book)): A proc-macro plugin\n  and crates to help users write CUDA kernels using the CUDA **Tile**\n  programming model. Tensors are views into device memory, partitioned into\n  sub-tensors; a kernel loads tiles from them, computes on\n  whole tiles at a time, and stores tiles back, and the compiler decides how\n  tiles map onto each architecture.\n* Runtime: [`cuda-bindings`](.\u002Fcuda-bindings), [`cuda-core`](.\u002Fcuda-core)\n  (with [`cuda-core-derive`](.\u002Fcuda-core-derive)), and [`cuda-async`](.\u002Fcuda-async)\n  provide a shared runtime: driver bindings, contexts, streams, device buffers,\n  events, and lazy, composable device operations.\n\nBoth kernel programming models extend Rust's ownership rules across the GPU\nlaunch boundary: mutable buffers are partitioned into disjoint pieces before\nlaunch, immutable buffers are shared, and launchers keep those borrows alive\nwhile GPU work is in flight.\n\nCUDA Rust is an early-stage research project. Expect bugs, incomplete features,\nand API breakage. That said, we hope you'll try it in your own work and help\nshape its direction by sharing feedback on your experience.\n\n## Picking a model\n\n|  | cuda-oxide (SIMT) | cutile-rs (Tile) |\n| --- | --- | --- |\n| Feels familiar to | CUDA C++ programmers: threads, blocks, shared memory | NumPy or PyTorch programmers: ndarray \u002F tensor operations on multi-dimensional tiles |\n| Safety | Data-race freedom for disjoint slice accesses; you control thread synchronization and shared memory | Data-race freedom by construction within a kernel: no explicit thread indexing, shared memory, or synchronization |\n| Indexing | Explicit thread\u002Fblock indices | Implicit via partitions |\n| Compiles | Ahead of time, Rust → PTX | JIT at first launch, Rust → Tile IR → cubin |\n| Toolchain | Pinned stable Rust (`1.99.1`), managed by `cargo oxide` | Stable Rust 1.89 or newer |\n| Portability | Produces PTX that the driver compiles for compatible GPUs; you control tuning per GPU | CUDA architecture-agnostic; the compiler tunes per GPU |\n| Reach for it when | You need direct control over threads, warps, shared memory, TMA, or cluster ops | Your problem is naturally expressed as tensor computations and you want the compiler to handle scheduling details |\n\nChoose between Tile and SIMT based on [each kernel's requirements](https:\u002F\u002Fdocs.nvidia.com\u002Fcuda\u002Fcuda-programming-guide\u002F01-introduction\u002Fprogramming-model.html#relationship-to-simt-programming).\nTile can simplify development when its abstractions fit the workload, while SIMT\nprovides direct control over individual threads. An application can use both.\n\nHere are some recommendations that may evolve as CUDA Rust matures:\n\n* If you have familiarity with CUDA programming, then SIMT will feel comfortable to you.\n* If your problem domain primarily involves math over densely packed numerical data, then Tile is a good fit.\n* If your problem domain is sparse, involves pointer chasing, mapping traditional data structures to the GPU, or otherwise similar, then SIMT will give you more flexibility.\n* If you are willing to put in more effort, expertise, or tokens for performance tuning, CuTe abstractions on top of SIMT can be a good fit.\n\nKernels from both models interoperate: a cutile-rs Tile kernel and a cuda-oxide SIMT\nkernel can run on the same stream over shared device buffers.\n\n## Repository layout\n\n```\ncuda-rust\u002F\n├── cuda-bindings\u002F      runtime — CUDA driver API bindings\n├── cuda-core\u002F          runtime — contexts, streams, memory, modules, events, launch\n├── cuda-core-derive\u002F   runtime — derive macros for cuda-core\n├── cuda-repr\u002F          shared no_std host\u002Fdevice representation contracts\n├── cuda-async\u002F         runtime — lazy ops, futures, streams, graphs\n├── cuda-oxide\u002F         SIMT model — compiler, device crates, cuda-oxide-book\n└── cutile-rs\u002F          Tile model — compiler, tile crates, cutile-book\n```\n\n## Documentation\n\nStart with the [CUDA Rust docs](https:\u002F\u002Fnvidia.github.io\u002Fcuda-rust\u002F). cutile-rs\nand cuda-oxide each have a book with installation instructions, guides, and\nreference material. The runtime crates (cuda-bindings, cuda-core, cuda-async)\nare documented in the cutile-rs book.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for commit sign-off requirements, pull requests, and CI. Both components build on stable Rust and pin their toolchains in their respective `rust-toolchain.toml` files (with `rustc-dev` and `llvm-tools` for `cuda-oxide`, managed via `cargo oxide`); each book covers its own setup.\n\n## License\n\nCUDA Rust is licensed under the [Apache License 2.0](.\u002FLICENSE). The root\n`LICENSE` covers the whole repository: cuda-oxide, cutile-rs, and the shared\nhost crates. Every published crate declares `license = \"Apache-2.0\"`.\n\nThird-party attributions are listed in\n[`cuda-oxide\u002FTHIRD_PARTY_NOTICES`](.\u002Fcuda-oxide\u002FTHIRD_PARTY_NOTICES).\n",2,"2026-10-31 04:27:22","trending"]