TinyChain-Inc / TinyChain-Inc/ha-ndarray
Validate CubeCL WebGPU execution in browser WASM
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
Objective
Make the CubeCL path compile and run in a browser through WASM/WebGPU while preserving the native Array API and execution/fusion contracts.
Scope
Browser-safe feature graph; WebGPU device initialization; async availability/errors; representative elementwise, transform, reduction and fused-plan conformance; block-stream smoke test; headless browser CI where WebGPU is available, with an explicit skip/failure policy elsewhere.
Acceptance criteria
- The crate builds for
wasm32-unknown-unknownwithout OpenCL/native-only dependencies. - Browser tests execute representative unfused and fused operations through CubeCL WebGPU.
- Device-unavailable and device-lost cases are typed and do not silently claim acceleration.
- The same conformance fixtures are shared with native execution where practical.
- Bundle/setup instructions and browser support matrix are documented.
- A streamed-block smoke test demonstrates bounded in-flight work.
Parent: #33
Tembo validation additions
This is an actual-browser runtime validation issue, not a visual-design review. Compilation to WASM or running WGSL through a native adapter is insufficient. The retained evidence must identify browser build, OS, WebGPU adapter/device, driver/runtime, CubeCL version, test artifact revision, operations exercised, device-loss behavior, and whether tests were skipped. Unsupported environments must report a typed skip/failure reason and cannot be counted as passing browser conformance.
automation:
eligible: true
executor_profile: tembo
readiness: blocked
primary_repository: TinyChain-Inc/ha-ndarray
base_branch: main
writable_scope: [Cargo.toml, Cargo.lock, src/cubecl/**, src/fusion/**, src/stream/**, tests/**, web/**, .github/workflows/**, README.md]
prerequisites: ["#42", "#43", "#44", "#45", "#47", "#49"]
concurrency_group: cubecl-browser-conformance
required_commands:
- "cargo fmt --all -- --check"
- "cargo check --target wasm32-unknown-unknown --no-default-features --features cubecl,stream"
- "cargo test --no-default-features --features cubecl,stream"
- "run the repository browser/WebGPU Playwright conformance command introduced by this issue"
evidence:
actual_browser_webgpu: required
compile_only_result: insufficient
exact_environment_identity: required
playwright_report: required
structured_numerical_results: required
external_actions: none
draft_pr_only: true
completion_authority: human-browser-support-review
budget: {size: large, max_revisions: 3, max_wall_minutes: 180}
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with Cargo.toml, the src/cubecl, src/fusion, and src/stream paths, tests, web/, and .github/workflows; run the listed wasm check and native test commands first. Add the repository browser/WebGPU Playwright conformance command and validate representative operations, device-loss behavior, streamed blocks, and unsupported-environment reporting. Done requires actual-browser evidence with exact environment identity and structured numerical results.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, playwright, rust, wasm
- Domain
- build-system, testing-qa, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100