diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 945992a45c..4aa9c320b0 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,194 +7,160 @@ on: workflow_dispatch: inputs: dry-run-only: - description: "Run xtask publish in dry-run mode (no publish)" + description: "Run crate publish jobs in dry-run mode (no publish)" type: boolean required: false default: false jobs: - publish-cubecl-zspace: + publish-t4a-cubecl-zspace: uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-zspace + crate: t4a-cubecl-zspace dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - publish-cubecl-common: + publish-t4a-cubecl-common: uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-common + crate: t4a-cubecl-common dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - publish-cubecl-macros-internal: + publish-t4a-cubecl-macros-internal: uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-macros-internal + crate: t4a-cubecl-macros-internal dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - publish-cubecl-ir: + publish-t4a-cubecl-ir: needs: - - publish-cubecl-common - - publish-cubecl-macros-internal + - publish-t4a-cubecl-common + - publish-t4a-cubecl-macros-internal uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-ir + crate: t4a-cubecl-ir dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - publish-cubecl-std: + publish-t4a-cubecl-runtime: needs: - - publish-cubecl-core - - publish-cubecl-runtime + - publish-t4a-cubecl-common + - publish-t4a-cubecl-ir + - publish-t4a-cubecl-zspace uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-std + crate: t4a-cubecl-runtime dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - publish-cubecl-runtime: + publish-t4a-cubecl-macros: needs: - - publish-cubecl-ir - - publish-cubecl-common + - publish-t4a-cubecl-common uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-runtime + crate: t4a-cubecl-macros dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - publish-cubecl-macros: + publish-t4a-cubecl-core: needs: - - publish-cubecl-common + - publish-t4a-cubecl-common + - publish-t4a-cubecl-ir + - publish-t4a-cubecl-runtime + - publish-t4a-cubecl-macros + - publish-t4a-cubecl-zspace uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-macros + crate: t4a-cubecl-core dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - publish-cubecl-core: + publish-t4a-cubecl-opt: needs: - - publish-cubecl-ir - - publish-cubecl-runtime - - publish-cubecl-macros + - publish-t4a-cubecl-common + - publish-t4a-cubecl-core + - publish-t4a-cubecl-ir uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-core + crate: t4a-cubecl-opt dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - publish-cubecl-opt: + publish-t4a-cubecl-cpp: needs: - - publish-cubecl-ir - - publish-cubecl-common - - publish-cubecl-core + - publish-t4a-cubecl-common + - publish-t4a-cubecl-core + - publish-t4a-cubecl-opt + - publish-t4a-cubecl-runtime uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-opt + crate: t4a-cubecl-cpp dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - publish-cubecl-spirv: + publish-t4a-cubecl-std: needs: - - publish-cubecl-opt - - publish-cubecl-common - - publish-cubecl-core - - publish-cubecl-runtime + - publish-t4a-cubecl-common + - publish-t4a-cubecl-core + - publish-t4a-cubecl-runtime uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-spirv + crate: t4a-cubecl-std dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - publish-cubecl-wgpu: + publish-t4a-cubecl-wgpu: needs: - - publish-cubecl-std - - publish-cubecl-spirv - - publish-cubecl-common - - publish-cubecl-runtime - - publish-cubecl-core + - publish-t4a-cubecl-common + - publish-t4a-cubecl-core + - publish-t4a-cubecl-cpp + - publish-t4a-cubecl-ir + - publish-t4a-cubecl-runtime + - publish-t4a-cubecl-std uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-wgpu + crate: t4a-cubecl-wgpu dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - publish-cubecl-cpp: + publish-t4a-cubecl-cuda: needs: - - publish-cubecl-common - - publish-cubecl-runtime - - publish-cubecl-core - - publish-cubecl-opt + - publish-t4a-cubecl-common + - publish-t4a-cubecl-core + - publish-t4a-cubecl-cpp + - publish-t4a-cubecl-runtime + - publish-t4a-cubecl-std uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-cpp + crate: t4a-cubecl-cuda dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - publish-cubecl-cuda: + publish-t4a-cubecl: needs: - - publish-cubecl-std - - publish-cubecl-cpp - - publish-cubecl-common - - publish-cubecl-runtime - - publish-cubecl-core + - publish-t4a-cubecl-core + - publish-t4a-cubecl-cuda + - publish-t4a-cubecl-ir + - publish-t4a-cubecl-runtime + - publish-t4a-cubecl-std + - publish-t4a-cubecl-wgpu uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 with: - crate: cubecl-cuda - dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} - secrets: - CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - - publish-cubecl-hip: - needs: - - publish-cubecl-std - - publish-cubecl-cpp - - publish-cubecl-common - - publish-cubecl-runtime - - publish-cubecl-core - uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 - with: - crate: cubecl-hip - dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} - secrets: - CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - - publish-cubecl-cpu: - needs: - - publish-cubecl-common - - publish-cubecl-std - - publish-cubecl-core - - publish-cubecl-runtime - - publish-cubecl-opt - uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 - with: - crate: cubecl-cpu - dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} - secrets: - CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} - - publish-cubecl: - needs: - - publish-cubecl-core - - publish-cubecl-cuda - - publish-cubecl-wgpu - - publish-cubecl-cpu - uses: tracel-ai/github-actions/.github/workflows/publish-crate.yml@v8 - with: - crate: cubecl + crate: t4a-cubecl dry-run-only: ${{ github.event_name == 'workflow_dispatch' && inputs.dry-run-only || false }} secrets: CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} diff --git a/AGENTS.md b/AGENTS.md index f863252f79..62b0610e63 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -35,23 +35,22 @@ This repository is the `tensor4all/cubecl` fork of upstream tenferro may depend on: ```toml - cubecl = { package = "t4a-cubecl", version = "=0.10.0-t4a.1", features = ["cuda"] } - cubecl-cuda = { package = "t4a-cubecl-cuda", version = "=0.10.0-t4a.1" } - cubecl-runtime = { package = "t4a-cubecl-runtime", version = "=0.10.0-t4a.1" } + cubecl = { package = "t4a-cubecl", version = "=0.10.0", features = ["cuda"] } + cubecl-cuda = { package = "t4a-cubecl-cuda", version = "=0.10.0" } + cubecl-runtime = { package = "t4a-cubecl-runtime", version = "=0.10.0" } ``` - Publish only the first-party crate dependency closure required by `tenferro-rs`. Do not publish unused CubeCL workspace crates unless tenferro starts requiring them. -- For the current CUDA path, the expected publish set is: +- For the current CUDA and WebGPU paths, the expected publish set is: `t4a-cubecl`, `t4a-cubecl-common`, `t4a-cubecl-core`, `t4a-cubecl-ir`, `t4a-cubecl-macros`, `t4a-cubecl-macros-internal`, `t4a-cubecl-runtime`, `t4a-cubecl-zspace`, `t4a-cubecl-std`, `t4a-cubecl-cuda`, - `t4a-cubecl-cpp`, and `t4a-cubecl-opt`. -- Do not publish `cubecl-cpu`, `cubecl-hip`, `cubecl-wgpu`, - `cubecl-spirv`, examples, or `xtask` unless they become required by - tenferro. + `t4a-cubecl-wgpu`, `t4a-cubecl-cpp`, and `t4a-cubecl-opt`. +- Do not publish `cubecl-cpu`, `cubecl-hip`, `cubecl-spirv`, examples, or + `xtask` unless they become required by tenferro. ## Public Messaging diff --git a/Cargo.toml b/Cargo.toml index 897f8eb0d5..79216152ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ # https://doc.rust-lang.org/cargo/reference/resolver.html#feature-resolver-version-2 resolver = "2" -members = ["crates/*", "examples/*", "xtask"] +members = ["crates/*", "xtask"] [workspace.package] edition = "2024" diff --git a/README.md b/README.md index af112ca08e..bf6544522b 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ +> **tensor4all temporary fork.** The `t4a-cubecl*` crates published from this +> repository are temporary tensor4all fork packages used by `tenferro-rs` while +> required patches are being upstreamed to the official CubeCL project. They are +> not a replacement for upstream CubeCL, and the intent is to return to upstream +> package names once the needed patches have landed. +
diff --git a/crates/cubecl-common/Cargo.toml b/crates/cubecl-common/Cargo.toml index cc7b83c472..1c6fd0731a 100644 --- a/crates/cubecl-common/Cargo.toml +++ b/crates/cubecl-common/Cargo.toml @@ -4,16 +4,20 @@ authors = [ "Nathaniel Simard (@nathanielsimard)", ] categories = ["science", "mathematics", "algorithms"] -description = "Common crate for CubeCL" +description = "Temporary tensor4all fork of CubeCL common utilities" edition.workspace = true keywords = ["gpu", "cuda", "wgpu"] license.workspace = true -name = "cubecl-common" -readme.workspace = true -repository = "https://github.com/tracel-ai/cubecl/tree/main/crates/cubecl-common" +name = "t4a-cubecl-common" +readme = "README.md" +repository = "https://github.com/tensor4all/cubecl/tree/main/crates/cubecl-common" version.workspace = true +[lib] +name = "cubecl_common" + + [lints] workspace = true diff --git a/crates/cubecl-common/README.md b/crates/cubecl-common/README.md index 782e768646..3b30ef3d8c 100644 --- a/crates/cubecl-common/README.md +++ b/crates/cubecl-common/README.md @@ -1,3 +1,5 @@ +> **tensor4all temporary fork.** This `t4a-cubecl*` package is a temporary tensor4all fork used by `tenferro-rs` while required patches are being upstreamed to the official CubeCL project. It is not a replacement for upstream CubeCL. + # CubeCL Common The `cubecl-common` package hosts code that _must_ be shared between cubecl packages (with `std` or diff --git a/crates/cubecl-core/Cargo.toml b/crates/cubecl-core/Cargo.toml index f0382dc089..ddec307d54 100644 --- a/crates/cubecl-core/Cargo.toml +++ b/crates/cubecl-core/Cargo.toml @@ -4,16 +4,20 @@ authors = [ "louisfd ", ] categories = ["science", "mathematics", "algorithms"] -description = "CubeCL core create" +description = "Temporary tensor4all fork of CubeCL core" edition.workspace = true keywords = [] license.workspace = true -name = "cubecl-core" +name = "t4a-cubecl-core" readme.workspace = true -repository = "https://github.com/tracel-ai/cubecl/tree/main/crates/cubecl-core" +repository = "https://github.com/tensor4all/cubecl/tree/main/crates/cubecl-core" version.workspace = true +[lib] +name = "cubecl_core" + + [lints] workspace = true @@ -32,16 +36,16 @@ log = { workspace = true } test-log = { workspace = true, optional = true } tracing = { workspace = true, features = ["attributes"], optional = true } -cubecl-ir = { path = "../cubecl-ir", version = "0.10.0", default-features = false, features = [ +cubecl-ir = { package = "t4a-cubecl-ir", path = "../cubecl-ir", version = "0.10.0", default-features = false, features = [ "serde", ] } -cubecl-runtime = { path = "../cubecl-runtime", version = "0.10.0", default-features = false } -cubecl-zspace = { path = "../cubecl-zspace", version = "0.10.0" } +cubecl-runtime = { package = "t4a-cubecl-runtime", path = "../cubecl-runtime", version = "0.10.0", default-features = false } +cubecl-zspace = { package = "t4a-cubecl-zspace", path = "../cubecl-zspace", version = "0.10.0" } bitflags = { workspace = true } bytemuck = { workspace = true } -cubecl-common = { path = "../cubecl-common", version = "0.10.0", default-features = false } -cubecl-macros = { path = "../cubecl-macros", version = "0.10.0", default-features = false } +cubecl-common = { package = "t4a-cubecl-common", path = "../cubecl-common", version = "0.10.0", default-features = false } +cubecl-macros = { package = "t4a-cubecl-macros", path = "../cubecl-macros", version = "0.10.0", default-features = false } derive-new = { workspace = true } derive_more = { workspace = true, features = [ "not", diff --git a/crates/cubecl-cpp/Cargo.toml b/crates/cubecl-cpp/Cargo.toml index da920cb01f..9fb45ab16c 100644 --- a/crates/cubecl-cpp/Cargo.toml +++ b/crates/cubecl-cpp/Cargo.toml @@ -1,16 +1,20 @@ [package] authors = ["nathanielsimard "] categories = ["science"] -description = "CPP transpiler for CubeCL" +description = "Temporary tensor4all fork of CubeCL C++ transpiler" edition.workspace = true keywords = ["cpp", "gpu", "cuda", "hip", "metal"] license.workspace = true -name = "cubecl-cpp" +name = "t4a-cubecl-cpp" readme.workspace = true -repository = "https://github.com/tracel-ai/cubecl/tree/main/crates/cubecl-cpp" +repository = "https://github.com/tensor4all/cubecl/tree/main/crates/cubecl-cpp" version.workspace = true +[lib] +name = "cubecl_cpp" + + [lints] workspace = true @@ -35,11 +39,11 @@ tracing = [ ] [dependencies] -cubecl-common = { path = "../cubecl-common", version = "0.10.0", default-features = false } -cubecl-core = { path = "../cubecl-core", version = "0.10.0", default-features = false } +cubecl-common = { package = "t4a-cubecl-common", path = "../cubecl-common", version = "0.10.0", default-features = false } +cubecl-core = { package = "t4a-cubecl-core", path = "../cubecl-core", version = "0.10.0", default-features = false } # For shared allocation -cubecl-opt = { path = "../cubecl-opt", version = "0.10.0", default-features = false } -cubecl-runtime = { path = "../cubecl-runtime", version = "0.10.0", default-features = false, features = [ +cubecl-opt = { package = "t4a-cubecl-opt", path = "../cubecl-opt", version = "0.10.0", default-features = false } +cubecl-runtime = { package = "t4a-cubecl-runtime", path = "../cubecl-runtime", version = "0.10.0", default-features = false, features = [ "channel-mutex", ] } itertools = { version = "0.14.0", default-features = false } diff --git a/crates/cubecl-cpu/Cargo.toml b/crates/cubecl-cpu/Cargo.toml index 34d76051e9..00839f8e67 100644 --- a/crates/cubecl-cpu/Cargo.toml +++ b/crates/cubecl-cpu/Cargo.toml @@ -8,7 +8,7 @@ license.workspace = true name = "cubecl-cpu" publish = false readme.workspace = true -repository = "https://github.com/tracel-ai/cubecl/tree/main/crates/cubecl-cpu" +repository = "https://github.com/tensor4all/cubecl/tree/main/crates/cubecl-cpu" version.workspace = true @@ -36,21 +36,21 @@ tracing = [ [dependencies] -cubecl-common = { path = "../cubecl-common", version = "0.10.0", default-features = false, features = [ +cubecl-common = { package = "t4a-cubecl-common", path = "../cubecl-common", version = "0.10.0", default-features = false, features = [ "std", ] } -cubecl-core = { path = "../cubecl-core", version = "0.10.0", default-features = false, features = [ +cubecl-core = { package = "t4a-cubecl-core", path = "../cubecl-core", version = "0.10.0", default-features = false, features = [ "std", ] } -cubecl-opt = { path = "../cubecl-opt", version = "0.10.0", default-features = false, features = [ +cubecl-opt = { package = "t4a-cubecl-opt", path = "../cubecl-opt", version = "0.10.0", default-features = false, features = [ "std", ] } -cubecl-runtime = { path = "../cubecl-runtime", version = "0.10.0", default-features = false, features = [ +cubecl-runtime = { package = "t4a-cubecl-runtime", path = "../cubecl-runtime", version = "0.10.0", default-features = false, features = [ "channel-mutex", "std", "storage-bytes", ] } -cubecl-std = { path = "../cubecl-std", version = "0.10.0", default-features = false } +cubecl-std = { package = "t4a-cubecl-std", path = "../cubecl-std", version = "0.10.0", default-features = false } bytemuck = { workspace = true } @@ -64,10 +64,10 @@ paste = { workspace = true } [dev-dependencies] test-log = { workspace = true, features = ["trace"] } -cubecl-core = { path = "../cubecl-core", version = "0.10.0", features = [ +cubecl-core = { package = "t4a-cubecl-core", path = "../cubecl-core", version = "0.10.0", features = [ "export_tests", ] } -cubecl-std = { path = "../cubecl-std", version = "0.10.0", features = [ +cubecl-std = { package = "t4a-cubecl-std", path = "../cubecl-std", version = "0.10.0", features = [ "export_tests", ] } paste = { workspace = true } diff --git a/crates/cubecl-cuda/Cargo.toml b/crates/cubecl-cuda/Cargo.toml index efe149f64c..642363a38a 100644 --- a/crates/cubecl-cuda/Cargo.toml +++ b/crates/cubecl-cuda/Cargo.toml @@ -1,16 +1,20 @@ [package] authors = ["nathanielsimard "] categories = ["science"] -description = "CUDA runtime for CubeCL" +description = "Temporary tensor4all fork of CubeCL CUDA runtime" edition.workspace = true keywords = ["gpu", "cuda"] license.workspace = true -name = "cubecl-cuda" -readme.workspace = true -repository = "https://github.com/tracel-ai/cubecl/tree/main/crates/cubecl-cuda" +name = "t4a-cubecl-cuda" +readme = "README.md" +repository = "https://github.com/tensor4all/cubecl/tree/main/crates/cubecl-cuda" version.workspace = true +[lib] +name = "cubecl_cuda" + + [lints] workspace = true @@ -39,15 +43,15 @@ log = { workspace = true } tracing = { workspace = true, features = ["attributes"], optional = true } bytemuck = { workspace = true } -cubecl-common = { path = "../cubecl-common", version = "0.10.0", default-features = false, features = [ +cubecl-common = { package = "t4a-cubecl-common", path = "../cubecl-common", version = "0.10.0", default-features = false, features = [ "compilation-cache", "hash", ] } -cubecl-core = { path = "../cubecl-core", version = "0.10.0", default-features = false } -cubecl-cpp = { path = "../cubecl-cpp", version = "0.10.0", default-features = false, features = [ +cubecl-core = { package = "t4a-cubecl-core", path = "../cubecl-core", version = "0.10.0", default-features = false } +cubecl-cpp = { package = "t4a-cubecl-cpp", path = "../cubecl-cpp", version = "0.10.0", default-features = false, features = [ "cuda", ] } -cubecl-runtime = { path = "../cubecl-runtime", version = "0.10.0", default-features = false, features = [ +cubecl-runtime = { package = "t4a-cubecl-runtime", path = "../cubecl-runtime", version = "0.10.0", default-features = false, features = [ "channel-mutex", "std", ] } @@ -59,10 +63,10 @@ serde = { workspace = true } [dev-dependencies] -cubecl-core = { path = "../cubecl-core", version = "0.10.0", features = [ +cubecl-core = { package = "t4a-cubecl-core", path = "../cubecl-core", version = "0.10.0", features = [ "export_tests", ] } -cubecl-std = { path = "../cubecl-std", version = "0.10.0", features = [ +cubecl-std = { package = "t4a-cubecl-std", path = "../cubecl-std", version = "0.10.0", features = [ "export_tests", ] } paste = { workspace = true } diff --git a/crates/cubecl-cuda/README.md b/crates/cubecl-cuda/README.md index a02ef40f27..4b3ddc3b12 100644 --- a/crates/cubecl-cuda/README.md +++ b/crates/cubecl-cuda/README.md @@ -1,3 +1,5 @@ +> **tensor4all temporary fork.** This `t4a-cubecl*` package is a temporary tensor4all fork used by `tenferro-rs` while required patches are being upstreamed to the official CubeCL project. It is not a replacement for upstream CubeCL. + # Cuda runtime The runtime uses the lower level primitives from [cudarc](https://github.com/coreylowman/cudarc) to compile generated CUDA code into a ptx and execute it at runtime. diff --git a/crates/cubecl-hip/Cargo.toml b/crates/cubecl-hip/Cargo.toml index 2b5f57a2ba..84b2f72cf7 100644 --- a/crates/cubecl-hip/Cargo.toml +++ b/crates/cubecl-hip/Cargo.toml @@ -8,7 +8,7 @@ license.workspace = true name = "cubecl-hip" publish = false readme.workspace = true -repository = "https://github.com/tracel-ai/cubecl/tree/main/crates/cubecl-hip" +repository = "https://github.com/tensor4all/cubecl/tree/main/crates/cubecl-hip" version.workspace = true @@ -41,17 +41,17 @@ tracing = [ log = { workspace = true } tracing = { workspace = true, features = ["attributes"], optional = true } -cubecl-common = { path = "../cubecl-common", version = "0.10.0", features = [ +cubecl-common = { package = "t4a-cubecl-common", path = "../cubecl-common", version = "0.10.0", features = [ "compilation-cache", "std", "hash", ] } -cubecl-core = { path = "../cubecl-core", version = "0.10.0", default-features = false } -cubecl-cpp = { path = "../cubecl-cpp", version = "0.10.0", default-features = false, features = [ +cubecl-core = { package = "t4a-cubecl-core", path = "../cubecl-core", version = "0.10.0", default-features = false } +cubecl-cpp = { package = "t4a-cubecl-cpp", path = "../cubecl-cpp", version = "0.10.0", default-features = false, features = [ "hip", ] } cubecl-hip-sys = { version = "7.1.5280200" } -cubecl-runtime = { path = "../cubecl-runtime", version = "0.10.0", default-features = false, features = [ +cubecl-runtime = { package = "t4a-cubecl-runtime", path = "../cubecl-runtime", version = "0.10.0", default-features = false, features = [ "channel-mutex", ] } @@ -63,10 +63,10 @@ paste = { workspace = true } serde = { workspace = true } [dev-dependencies] -cubecl-core = { path = "../cubecl-core", version = "0.10.0", features = [ +cubecl-core = { package = "t4a-cubecl-core", path = "../cubecl-core", version = "0.10.0", features = [ "export_tests", ] } -cubecl-std = { path = "../cubecl-std", version = "0.10.0", features = [ +cubecl-std = { package = "t4a-cubecl-std", path = "../cubecl-std", version = "0.10.0", features = [ "export_tests", ] } pretty_assertions = { workspace = true } diff --git a/crates/cubecl-ir/Cargo.toml b/crates/cubecl-ir/Cargo.toml index e2ef0dd1a3..b94eae0eab 100644 --- a/crates/cubecl-ir/Cargo.toml +++ b/crates/cubecl-ir/Cargo.toml @@ -4,16 +4,20 @@ authors = [ "louisfd **tensor4all temporary fork.** This `t4a-cubecl*` package is a temporary tensor4all fork used by `tenferro-rs` while required patches are being upstreamed to the official CubeCL project. It is not a replacement for upstream CubeCL. + # CubeCL Intermediate Representation The intermediate representation produced by the CubeCL frontend, and consumed by the backends. diff --git a/crates/cubecl-macros-internal/Cargo.toml b/crates/cubecl-macros-internal/Cargo.toml index fef2c69d9b..04a1df553d 100644 --- a/crates/cubecl-macros-internal/Cargo.toml +++ b/crates/cubecl-macros-internal/Cargo.toml @@ -4,16 +4,17 @@ authors = [ "louisfd **tensor4all temporary fork.** This `t4a-cubecl*` package is a temporary tensor4all fork used by `tenferro-rs` while required patches are being upstreamed to the official CubeCL project. It is not a replacement for upstream CubeCL. + # CubeCL internal macros Internal procedural macros for generating additional implementations on the CubeCL IR. diff --git a/crates/cubecl-macros/Cargo.toml b/crates/cubecl-macros/Cargo.toml index ef34f187be..723b402037 100644 --- a/crates/cubecl-macros/Cargo.toml +++ b/crates/cubecl-macros/Cargo.toml @@ -4,16 +4,17 @@ authors = [ "louisfd **tensor4all temporary fork.** This `t4a-cubecl*` package is a temporary tensor4all fork used by `tenferro-rs` while required patches are being upstreamed to the official CubeCL project. It is not a replacement for upstream CubeCL. + # Compiler Optimizations WIP diff --git a/crates/cubecl-runtime/Cargo.toml b/crates/cubecl-runtime/Cargo.toml index 01c3efcf9b..55c6371588 100644 --- a/crates/cubecl-runtime/Cargo.toml +++ b/crates/cubecl-runtime/Cargo.toml @@ -1,16 +1,20 @@ [package] authors = ["louisfd ", "Nathaniel Simard"] categories = ["science"] -description = "Crate that helps creating high performance async runtimes for CubeCL." +description = "Temporary tensor4all fork of CubeCL runtime support" edition.workspace = true keywords = ["deep-learning", "machine-learning", "data"] license.workspace = true -name = "cubecl-runtime" -readme.workspace = true -repository = "https://github.com/tracel-ai/cubecl/tree/main/crates/cubecl-runtime" +name = "t4a-cubecl-runtime" +readme = "README.md" +repository = "https://github.com/tensor4all/cubecl/tree/main/crates/cubecl-runtime" version.workspace = true +[lib] +name = "cubecl_runtime" + + [lints] workspace = true @@ -43,11 +47,11 @@ tracing = { workspace = true, features = ["attributes"], optional = true } async-channel = { workspace = true } # Assume std bytemuck = { workspace = true } cfg-if = { workspace = true } -cubecl-common = { path = "../cubecl-common", version = "0.10.0", default-features = false } -cubecl-ir = { path = "../cubecl-ir", version = "0.10.0", default-features = false, features = [ +cubecl-common = { package = "t4a-cubecl-common", path = "../cubecl-common", version = "0.10.0", default-features = false } +cubecl-ir = { package = "t4a-cubecl-ir", path = "../cubecl-ir", version = "0.10.0", default-features = false, features = [ "serde", ] } -cubecl-zspace = { path = "../cubecl-zspace", version = "0.10.0", default-features = false } +cubecl-zspace = { package = "t4a-cubecl-zspace", path = "../cubecl-zspace", version = "0.10.0", default-features = false } derive-new = { workspace = true } derive_more = { workspace = true, features = ["eq"] } dirs = { workspace = true, optional = true } @@ -63,7 +67,7 @@ md5 = { workspace = true } # Persistent cache deps - has to match the cfg(std_io) cfg. [target.'cfg(any(target_os = "windows", target_os = "linux", target_os = "macos", target_os = "android"))'.dependencies] -cubecl-common = { path = "../cubecl-common", version = "0.10.0", default-features = false, features = [ +cubecl-common = { package = "t4a-cubecl-common", path = "../cubecl-common", version = "0.10.0", default-features = false, features = [ "cache", "serde", "hash", diff --git a/crates/cubecl-runtime/README.md b/crates/cubecl-runtime/README.md index a3fe250e02..392b391e57 100644 --- a/crates/cubecl-runtime/README.md +++ b/crates/cubecl-runtime/README.md @@ -1,3 +1,5 @@ +> **tensor4all temporary fork.** This `t4a-cubecl*` package is a temporary tensor4all fork used by `tenferro-rs` while required patches are being upstreamed to the official CubeCL project. It is not a replacement for upstream CubeCL. + # CubeCL Runtime This crate helps creating high performance async runtimes. diff --git a/crates/cubecl-spirv/Cargo.toml b/crates/cubecl-spirv/Cargo.toml index 4201fe1cb4..4b165f9d3a 100644 --- a/crates/cubecl-spirv/Cargo.toml +++ b/crates/cubecl-spirv/Cargo.toml @@ -8,7 +8,7 @@ license.workspace = true name = "cubecl-spirv" publish = false readme.workspace = true -repository = "https://github.com/tracel-ai/cubecl/tree/main/crates/cubecl-spirv" +repository = "https://github.com/tensor4all/cubecl/tree/main/crates/cubecl-spirv" version.workspace = true @@ -34,9 +34,9 @@ tracing = [ [dependencies] bitflags = { workspace = true } -cubecl-common = { path = "../cubecl-common", version = "0.10.0", default-features = false } -cubecl-core = { path = "../cubecl-core", version = "0.10.0" } -cubecl-runtime = { path = "../cubecl-runtime", version = "0.10.0", default-features = false, features = [ +cubecl-common = { package = "t4a-cubecl-common", path = "../cubecl-common", version = "0.10.0", default-features = false } +cubecl-core = { package = "t4a-cubecl-core", path = "../cubecl-core", version = "0.10.0" } +cubecl-runtime = { package = "t4a-cubecl-runtime", path = "../cubecl-runtime", version = "0.10.0", default-features = false, features = [ "channel-mutex", ] } half = { workspace = true } @@ -47,4 +47,4 @@ hashbrown = { workspace = true } rspirv = { workspace = true, features = ["serialize", "deserialize"] } # Optimizer -cubecl-opt = { path = "../cubecl-opt", version = "0.10.0" } +cubecl-opt = { package = "t4a-cubecl-opt", path = "../cubecl-opt", version = "0.10.0" } diff --git a/crates/cubecl-std/Cargo.toml b/crates/cubecl-std/Cargo.toml index e0087a8524..3cf3c6ef62 100644 --- a/crates/cubecl-std/Cargo.toml +++ b/crates/cubecl-std/Cargo.toml @@ -5,16 +5,20 @@ authors = [ "maxtremblay ", ] categories = ["science", "mathematics", "algorithms"] -description = "CubeCL Standard Library." +description = "Temporary tensor4all fork of CubeCL standard library" edition.workspace = true keywords = [] license.workspace = true -name = "cubecl-std" +name = "t4a-cubecl-std" readme.workspace = true -repository = "https://github.com/tracel-ai/cubecl/tree/main/crates/cubecl-std" +repository = "https://github.com/tensor4all/cubecl/tree/main/crates/cubecl-std" version.workspace = true +[lib] +name = "cubecl_std" + + [lints] workspace = true @@ -33,11 +37,11 @@ tracing = [ [dependencies] test-log = { workspace = true, optional = true } -cubecl-common = { path = "../cubecl-common", version = "0.10.0", features = [ +cubecl-common = { package = "t4a-cubecl-common", path = "../cubecl-common", version = "0.10.0", features = [ "hash", ], default-features = false } -cubecl-core = { path = "../cubecl-core", version = "0.10.0", default-features = false } -cubecl-runtime = { path = "../cubecl-runtime", version = "0.10.0", default-features = false } +cubecl-core = { package = "t4a-cubecl-core", path = "../cubecl-core", version = "0.10.0", default-features = false } +cubecl-runtime = { package = "t4a-cubecl-runtime", path = "../cubecl-runtime", version = "0.10.0", default-features = false } half.workspace = true num-traits = { workspace = true } paste = { workspace = true } diff --git a/crates/cubecl-wgpu/Cargo.toml b/crates/cubecl-wgpu/Cargo.toml index e1058b6b77..0c5ddca1d9 100644 --- a/crates/cubecl-wgpu/Cargo.toml +++ b/crates/cubecl-wgpu/Cargo.toml @@ -1,16 +1,18 @@ [package] authors = ["nathanielsimard "] categories = ["science"] -description = "WGPU runtime for the CubeCL" +description = "Temporary tensor4all fork of CubeCL WGPU runtime" edition.workspace = true keywords = ["gpu", "wgpu", "webgpu", "gpgpu"] license.workspace = true -name = "cubecl-wgpu" -publish = false -readme.workspace = true -repository = "https://github.com/tracel-ai/cubecl/tree/main/crates/cubecl-wgpu" +name = "t4a-cubecl-wgpu" +readme = "README.md" +repository = "https://github.com/tensor4all/cubecl/tree/main/crates/cubecl-wgpu" version.workspace = true +[lib] +name = "cubecl_wgpu" + [lints] workspace = true @@ -28,19 +30,9 @@ std = [ "cubecl-core/std", "sanitize-filename", ] -# 'msl' and 'spirv' features are exclusive -# TODO find a way to have wgpu runtime auto-compiler to support several compilers at the same time msl = ["cubecl-cpp/metal"] profile-tracy = ["tracy-client"] -spirv = [ - "cubecl-spirv", - "ash", - "tracel-ash", - "cubecl-common/compilation-cache", - "cubecl-common/hash", -] -spirv-dump = ["std"] vulkan-validate = [] tracing = [ @@ -55,10 +47,10 @@ tracing = [ log = { workspace = true } tracing = { workspace = true, features = ["attributes"], optional = true } -cubecl-common = { path = "../cubecl-common", version = "0.10.0", default-features = false } -cubecl-core = { path = "../cubecl-core", version = "0.10.0", default-features = false } -cubecl-ir = { path = "../cubecl-ir", version = "0.10.0", default-features = false } -cubecl-runtime = { path = "../cubecl-runtime", version = "0.10.0", default-features = false, features = [ +cubecl-common = { package = "t4a-cubecl-common", path = "../cubecl-common", version = "0.10.0", default-features = false } +cubecl-core = { package = "t4a-cubecl-core", path = "../cubecl-core", version = "0.10.0", default-features = false } +cubecl-ir = { package = "t4a-cubecl-ir", path = "../cubecl-ir", version = "0.10.0", default-features = false } +cubecl-runtime = { package = "t4a-cubecl-runtime", path = "../cubecl-runtime", version = "0.10.0", default-features = false, features = [ "channel-mutex", ] } derive_more = { workspace = true } @@ -66,13 +58,8 @@ half = { workspace = true } sanitize-filename = { workspace = true, optional = true } tracy-client = { workspace = true, optional = true } -# SPIR-V -ash = { workspace = true, optional = true } -cubecl-spirv = { path = "../cubecl-spirv", version = "0.10.0", optional = true } -tracel-ash = { workspace = true, optional = true } - # Metal -cubecl-cpp = { path = "../cubecl-cpp", version = "0.10.0", features = [ +cubecl-cpp = { package = "t4a-cubecl-cpp", path = "../cubecl-cpp", version = "0.10.0", features = [ "metal", ], optional = true } @@ -107,10 +94,10 @@ wgpu = { workspace = true, features = [ # wgpu = { path = "../../../../tracel/wgpu/wgpu", features = ["vulkan-portability", "fragile-send-sync-non-atomic-wasm"]} [dev-dependencies] -cubecl-core = { path = "../cubecl-core", version = "0.10.0", features = [ +cubecl-core = { package = "t4a-cubecl-core", path = "../cubecl-core", version = "0.10.0", features = [ "export_tests", ] } -cubecl-std = { path = "../cubecl-std", version = "0.10.0", features = [ +cubecl-std = { package = "t4a-cubecl-std", path = "../cubecl-std", version = "0.10.0", features = [ "export_tests", ] } half = { workspace = true } diff --git a/crates/cubecl-wgpu/README.md b/crates/cubecl-wgpu/README.md index 7e39875431..06f8a860e9 100644 --- a/crates/cubecl-wgpu/README.md +++ b/crates/cubecl-wgpu/README.md @@ -1,3 +1,5 @@ +> **tensor4all temporary fork.** This `t4a-cubecl*` package is a temporary tensor4all fork used by `tenferro-rs` while required patches are being upstreamed to the official CubeCL project. It is not a replacement for upstream CubeCL. + # CubeCL WGPU Runtime [CubeCL](https://github.com/tracel-ai/cubecl) WGPU runtime. diff --git a/crates/cubecl-wgpu/src/lib.rs b/crates/cubecl-wgpu/src/lib.rs index 41ebf8ec0b..fe1c7bad21 100644 --- a/crates/cubecl-wgpu/src/lib.rs +++ b/crates/cubecl-wgpu/src/lib.rs @@ -1,3 +1,8 @@ +// The tensor4all fork publishes the WGPU/WGSL path needed by tenferro-rs. +// Upstream SPIR-V cfgs remain in the source but are outside this minimal +// publish closure. +#![allow(unexpected_cfgs)] + #[macro_use] extern crate derive_new; diff --git a/crates/cubecl-zspace/Cargo.toml b/crates/cubecl-zspace/Cargo.toml index f882d92b14..a7e362010a 100644 --- a/crates/cubecl-zspace/Cargo.toml +++ b/crates/cubecl-zspace/Cargo.toml @@ -6,17 +6,22 @@ authors = [ "crutcher ", ] categories = ["science", "mathematics", "algorithms"] -description = "CubeCL ZSpace Library." +description = "Temporary tensor4all fork of CubeCL ZSpace library" keywords = [] -name = "cubecl-zspace" +name = "t4a-cubecl-zspace" edition.workspace = true license.workspace = true readme.workspace = true +repository = "https://github.com/tensor4all/cubecl/tree/main/crates/cubecl-zspace" rust-version.workspace = true version.workspace = true +[lib] +name = "cubecl_zspace" + + [lints] workspace = true diff --git a/crates/cubecl/Cargo.toml b/crates/cubecl/Cargo.toml index d98e20d91c..2a6c80a14c 100644 --- a/crates/cubecl/Cargo.toml +++ b/crates/cubecl/Cargo.toml @@ -1,16 +1,20 @@ [package] authors = ["nathanielsimard "] categories = ["science", "mathematics", "algorithms"] -description = "Multi-platform high-performance compute language extension for Rust." +description = "Temporary tensor4all fork of CubeCL for tenferro-rs release preparation." edition.workspace = true keywords = ["gpu", "cuda", "wgpu", "gpgpu", "tensor"] license.workspace = true -name = "cubecl" +name = "t4a-cubecl" readme.workspace = true -repository = "https://github.com/tracel-ai/cubecl" +repository = "https://github.com/tensor4all/cubecl" version.workspace = true +[lib] +name = "cubecl" + + [lints] workspace = true @@ -22,8 +26,6 @@ default = [ "stdlib", "cubecl-core/default", "cubecl-cuda?/default", - "cubecl-cpu?/default", - "cubecl-hip?/default", "cubecl-wgpu?/default", ] exclusive-memory-only = ["cubecl-wgpu?/exclusive-memory-only"] @@ -36,36 +38,25 @@ profile-tracy = ["cubecl-runtime/profile-tracy", "cubecl-wgpu?/profile-tracy"] tracing = [ "cubecl-core/tracing", "cubecl-cuda?/tracing", - "cubecl-cpu?/tracing", - "cubecl-hip?/tracing", "cubecl-wgpu?/tracing", ] # Runtimes -cpu = ["cubecl-cpu"] cuda = ["cubecl-cuda"] cuda-ptx-wmma = ["cubecl-cuda?/ptx-wmma"] -hip = ["cubecl-hip"] -hip-rocwmma = ["cubecl-hip?/rocwmma"] metal = ["wgpu-msl"] -rocm = ["hip"] -spirv-dump = ["cubecl-wgpu/spirv-dump"] -vulkan = ["wgpu-spirv"] webgpu = ["wgpu"] wgpu = ["cubecl-wgpu"] wgpu-msl = ["wgpu", "cubecl-wgpu/msl"] -wgpu-spirv = ["wgpu", "cubecl-wgpu/spirv"] # By default we use wgpu. test-runtime = ["cubecl-wgpu"] [dependencies] -cubecl-core = { path = "../cubecl-core", version = "0.10.0", default-features = false } -cubecl-cpu = { path = "../cubecl-cpu", version = "0.10.0", default-features = false, optional = true } -cubecl-cuda = { path = "../cubecl-cuda", version = "0.10.0", default-features = false, optional = true } -cubecl-hip = { path = "../cubecl-hip", version = "0.10.0", default-features = false, optional = true } -cubecl-ir = { path = "../cubecl-ir", version = "0.10.0", default-features = false } -cubecl-runtime = { path = "../cubecl-runtime", version = "0.10.0", default-features = false } -cubecl-std = { path = "../cubecl-std", version = "0.10.0", optional = true } -cubecl-wgpu = { path = "../cubecl-wgpu", version = "0.10.0", default-features = false, optional = true } +cubecl-core = { package = "t4a-cubecl-core", path = "../cubecl-core", version = "0.10.0", default-features = false } +cubecl-cuda = { package = "t4a-cubecl-cuda", path = "../cubecl-cuda", version = "0.10.0", default-features = false, optional = true } +cubecl-ir = { package = "t4a-cubecl-ir", path = "../cubecl-ir", version = "0.10.0", default-features = false } +cubecl-runtime = { package = "t4a-cubecl-runtime", path = "../cubecl-runtime", version = "0.10.0", default-features = false } +cubecl-std = { package = "t4a-cubecl-std", path = "../cubecl-std", version = "0.10.0", optional = true } +cubecl-wgpu = { package = "t4a-cubecl-wgpu", path = "../cubecl-wgpu", version = "0.10.0", default-features = false, optional = true } half = { workspace = true } diff --git a/crates/cubecl/build.rs b/crates/cubecl/build.rs index 207325d283..7e106b2eaf 100644 --- a/crates/cubecl/build.rs +++ b/crates/cubecl/build.rs @@ -4,16 +4,12 @@ fn main() { let enable_runtime = cfg!(feature = "test-runtime"); println!("cargo:rustc-check-cfg=cfg(test_runtime_default)"); - println!("cargo:rustc-check-cfg=cfg(test_runtime_cpu)"); println!("cargo:rustc-check-cfg=cfg(test_runtime_cuda)"); - println!("cargo:rustc-check-cfg=cfg(test_runtime_hip)"); println!("cargo:rustc-check-cfg=cfg(test_runtime_wgpu)"); if enable_runtime { let map = BTreeMap::from([ - ("cpu", cfg!(feature = "cpu")), ("cuda", cfg!(feature = "cuda")), - ("hip", cfg!(feature = "hip")), ("wgpu", cfg!(feature = "wgpu")), ]); diff --git a/crates/cubecl/src/lib.rs b/crates/cubecl/src/lib.rs index a870d0ec9a..a19c51ff68 100644 --- a/crates/cubecl/src/lib.rs +++ b/crates/cubecl/src/lib.rs @@ -10,26 +10,14 @@ pub use cubecl_wgpu as wgpu; #[cfg(feature = "cuda")] pub use cubecl_cuda as cuda; -#[cfg(feature = "hip")] -pub use cubecl_hip as hip; - #[cfg(feature = "stdlib")] pub use cubecl_std as std; -#[cfg(feature = "cpu")] -pub use cubecl_cpu as cpu; - #[cfg(test_runtime_default)] pub type TestRuntime = cubecl_wgpu::WgpuRuntime; #[cfg(test_runtime_wgpu)] pub type TestRuntime = wgpu::WgpuRuntime; -#[cfg(test_runtime_cpu)] -pub type TestRuntime = cpu::CpuRuntime; - #[cfg(test_runtime_cuda)] pub type TestRuntime = cuda::CudaRuntime; - -#[cfg(test_runtime_hip)] -pub type TestRuntime = hip::HipRuntime; diff --git a/examples/device_sharing/Cargo.toml b/examples/device_sharing/Cargo.toml index 05bc91328f..86eb42ab03 100644 --- a/examples/device_sharing/Cargo.toml +++ b/examples/device_sharing/Cargo.toml @@ -12,7 +12,7 @@ default = [] wgpu = ["cubecl/wgpu"] [dependencies] -cubecl = { path = "../../crates/cubecl", version = "0.10.0" } +cubecl = { package = "t4a-cubecl", path = "../../crates/cubecl", version = "0.10.0" } half = { workspace = true } sum_things = { path = "../sum_things" } diff --git a/examples/fusing/Cargo.toml b/examples/fusing/Cargo.toml index cdf10ad5f5..5ceadc07e4 100644 --- a/examples/fusing/Cargo.toml +++ b/examples/fusing/Cargo.toml @@ -12,5 +12,5 @@ wgpu = ["cubecl/wgpu"] cuda = ["cubecl/cuda"] [dependencies] -cubecl = { path = "../../crates/cubecl", version = "0.10.0", default-features = false } +cubecl = { package = "t4a-cubecl", path = "../../crates/cubecl", version = "0.10.0", default-features = false } half = { workspace = true } diff --git a/examples/gelu/Cargo.toml b/examples/gelu/Cargo.toml index 141e0fc75b..4a2706927c 100644 --- a/examples/gelu/Cargo.toml +++ b/examples/gelu/Cargo.toml @@ -13,5 +13,5 @@ cuda = ["cubecl/cuda"] cpu = ["cubecl/cpu"] [dependencies] -cubecl = { path = "../../crates/cubecl", version = "0.10.0" } +cubecl = { package = "t4a-cubecl", path = "../../crates/cubecl", version = "0.10.0" } half = { workspace = true } diff --git a/examples/normalization/Cargo.toml b/examples/normalization/Cargo.toml index e3010a89d7..d4ca8668b7 100644 --- a/examples/normalization/Cargo.toml +++ b/examples/normalization/Cargo.toml @@ -12,5 +12,5 @@ wgpu = ["cubecl/wgpu"] cuda = ["cubecl/cuda"] [dependencies] -cubecl = { path = "../../crates/cubecl", version = "0.10.0" } +cubecl = { package = "t4a-cubecl", path = "../../crates/cubecl", version = "0.10.0" } half = { workspace = true } diff --git a/examples/sum_things/Cargo.toml b/examples/sum_things/Cargo.toml index 4c65be0a65..13587193ee 100644 --- a/examples/sum_things/Cargo.toml +++ b/examples/sum_things/Cargo.toml @@ -12,5 +12,5 @@ wgpu = ["cubecl/wgpu"] cuda = ["cubecl/cuda"] [dependencies] -cubecl = { path = "../../crates/cubecl", version = "0.10.0" } +cubecl = { package = "t4a-cubecl", path = "../../crates/cubecl", version = "0.10.0" } half = { workspace = true } diff --git a/examples/tracing_example/Cargo.toml b/examples/tracing_example/Cargo.toml index 16767330cd..ea8a9a5809 100644 --- a/examples/tracing_example/Cargo.toml +++ b/examples/tracing_example/Cargo.toml @@ -13,7 +13,7 @@ wgpu = ["cubecl/wgpu"] cuda = ["cubecl/cuda"] [dependencies] -cubecl = { path = "../../crates/cubecl", version = "0.10.0", features = [ +cubecl = { package = "t4a-cubecl", path = "../../crates/cubecl", version = "0.10.0", features = [ "tracing", ] }