Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ all CI: example compilation, additional example lint scopes, book builds, and
CodeQL have separate jobs. Read the recipe and relevant workflow when choosing
validation for a change.

For Tile and shared-host changes, follow `cutile-rs/CONTRIBUTING.md` and
`.github/workflows/cutile-rs.yml`. The CPU and assembler suite in
For Tile and shared-host changes, follow the cutile-rs section of
`CONTRIBUTING.md` and `.github/workflows/cutile-rs.yml`. The CPU and assembler suite in
`cutile-rs/scripts/run_cpu_tests.sh` runs with `cutile-rs/` as its working
directory and includes the CPU-safe shared-host tests. CPU-only does not mean
toolkit-free: some suites require CUDA headers and the Tile IR assembler. GPU tests have a separate
Expand Down
47 changes: 45 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,14 +111,35 @@ Your `Signed-off-by` name and email must match your Git configuration
Pull requests that do not meet the requirements below or lack proper DCO
sign-off will not be merged.

### Branch and pull request naming

Prefix branches and pull request titles with the kind of change. Branches use
`/` as the separator and titles use `:`, lowercase: `fix/kernel-launch-sync`
and `fix: resolve kernel launch sync race`.

| Prefix | Use for |
| --- | --- |
| `feat` | New features |
| `fix` | Bug fixes |
| `docs` | Documentation changes |
| `refactor` | Code changes with no behavior change |
| `perf` | Performance improvements with no functional change |
| `test` | Test additions or changes |
| `build` | Build system and dependency changes |
| `ci` | CI changes |
| `chore` | Maintenance tasks |

A scope in parentheses is welcome when a change is confined to one component,
for example `docs(cutile-rs): ...`.

## Code Requirements

### Toolchains

The shared host crates at the repository root use the root stable pin.
Each product has its own workspace and toolchain under `cuda-oxide/` or
`cutile-rs/`. For Tile development, see [cutile-rs/CONTRIBUTING.md](cutile-rs/CONTRIBUTING.md).
The setup and validation commands below cover cuda-oxide.
`cutile-rs/`. The setup commands below cover cuda-oxide; the Tile checks have
their own section further down.

cuda-oxide requires the Rust nightly toolchain with `rustc_private` support.
See the [cuda-oxide README](cuda-oxide/README.md) for setup instructions.
Expand Down Expand Up @@ -150,6 +171,28 @@ codegen backend, a Python virtualenv, or GitHub's own infrastructure. The
step when a workflow changes; the commands below are the ones worth knowing by
hand even so.

### Running the cutile-rs checks

cutile-rs builds on the stable toolchain pinned in `cutile-rs/rust-toolchain.toml`
and needs a CUDA 13.2 or newer toolkit with the Tile IR assembler, `tileiras`;
the [cutile-rs book](https://nvidia.github.io/cuda-rust/cutile/) covers setup.
Its test scripts locate the Tile workspace from their own path and reach the
shared host crates at the repository root on their own, so they can be run
from anywhere:

```bash
cutile-rs/scripts/run_cpu_tests.sh # CPU and assembler tests; needs the toolkit, not a GPU
cutile-rs/scripts/run_gpu_tests.sh # GPU integration tests
cutile-rs/scripts/run_all.sh # both of the above, then the examples and benchmarks
```

Run `cutile-rs/scripts/run_all.sh` before marking a Tile pull request ready
for review.
CI runs the same suites in `.github/workflows/cutile-rs.yml`. Because the Tile
lanes use NVIDIA self-hosted runners, that workflow triggers on the
`pull-request/<n>` branches that copy-pr-bot mirrors rather than on the pull
request itself.

### Formatting and Style

- Run `(cd cuda-oxide && cargo oxide fmt)` before submitting. All code must be
Expand Down
10 changes: 2 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,8 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for commit sign-off requirements, pull re
## License

CUDA Rust is licensed under the [Apache License 2.0](./LICENSE). The root
`LICENSE` covers the whole repository. Each component also includes a copy with
its sources and built artifacts.

| Component | License | License file |
| --- | --- | --- |
| `cuda-oxide` | Apache-2.0 | root [`LICENSE`](./LICENSE) |
| `cutile-rs` | Apache-2.0 | [`cutile-rs/LICENSE`](./cutile-rs/LICENSE) |
| `cuda-bindings`, `cuda-core`, `cuda-core-derive`, `cuda-async` | Apache-2.0 | root [`LICENSE`](./LICENSE) |
`LICENSE` covers the whole repository: cuda-oxide, cutile-rs, and the shared
host crates. Every published crate declares `license = "Apache-2.0"`.

Third-party attributions are listed in
[`cuda-oxide/THIRD_PARTY_NOTICES`](./cuda-oxide/THIRD_PARTY_NOTICES).
203 changes: 0 additions & 203 deletions cuda-oxide/LICENSE

This file was deleted.

2 changes: 1 addition & 1 deletion cuda-oxide/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -375,6 +375,6 @@ cuda-oxide is one of several Rust + GPU efforts under active development. Projec

## License

cuda-oxide is licensed under the Apache License, Version 2.0: [LICENSE](LICENSE).
cuda-oxide is licensed under the Apache License, Version 2.0: [LICENSE](../LICENSE).
Third-party components retain the licenses stated in their files; see
[dependency-licenses.csv](dependency-licenses.csv) for the tracked license inventory.
5 changes: 3 additions & 2 deletions cuda-oxide/THIRD_PARTY_NOTICES
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ THIRD PARTY NOTICES
This file attributes third-party open source software whose source code is
embedded in cuda-oxide.

cuda-oxide's own code is licensed under Apache-2.0 (see LICENSE). Third-party
cuda-oxide's own code is licensed under Apache-2.0 (see the LICENSE at the
repository root). Third-party
crates that cuda-oxide merely depends on through Cargo are not redistributed
here and are therefore not listed below; their licenses are recorded in
`dependency-licenses.csv` and enforced by `deny.toml`.
Expand All @@ -29,7 +30,7 @@ The upstream license texts are retained in place at
carries its own identical copies at
`crates/fuzzer/rustlantis/rangemap/LICENSE-APACHE` and
`crates/fuzzer/rustlantis/rangemap/LICENSE-MIT`. The Apache-2.0 text is
identical to the one in this directory (LICENSE). The MIT text is
identical to the repository's root LICENSE. The MIT text is
reproduced here:

Permission is hereby granted, free of charge, to any
Expand Down
Loading
Loading