TinyChain-Inc / TinyChain-Inc/ha-ndarray

Validate CubeCL WebGPU execution in browser WASM

Open
#39 0 comments 0 reactions 0 assignees View on GitHub

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-unknown without 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.