TinyChain-Inc / TinyChain-Inc/ha-ndarray
[CubeCL][P1.3] Implement views, slicing, indexing, gather, reshape, and transpose
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
Objective
Implement the existing view/index/transform surface on CubeCL while preserving shape, stride, bounds, aliasing and materialization semantics.
Acceptance criteria
- Operation inventory covers every applicable OpenCL/public view and indexing operation.
- Contiguous and non-contiguous inputs, negative/empty ranges where supported, repeated gather indices, bounds failures, reshape compatibility and transpose permutations are tested.
- Aliasing/materialization behavior is documented and matches the public API.
- Composed view chains produce the same results and typed failures as host execution.
- Transfers/materializations are observable so later fusion planning can identify boundaries.
- No OpenCL code is removed.
Parent: #35
Tembo execution contract
automation:
eligible: true
executor_profile: tembo
readiness: blocked
primary_repository: TinyChain-Inc/ha-ndarray
base_branch: main
writable_scope:
- src/cubecl/view/**
- src/cubecl/index/**
- src/cubecl/transform/**
- src/array.rs
- src/ops.rs
- tests/conformance/**
prerequisites:
- "#50 designated accelerator validation lane"
- "#41"
concurrency_group: cubecl-views-indexing
required_commands:
- "cargo fmt --all -- --check"
- "cargo test --no-default-features --features cubecl"
- "cargo test --all-features"
evidence:
cpu_conformance: required
accelerator_conformance: required-on-designated-runner
actual_browser: not-required
benchmark_report: not-required
exact_hardware_and_driver_identity: required
external_actions: none
draft_pr_only: true
completion_authority: human
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 by checking prerequisites #50 and #41, then inventory the existing implementations under src/cubecl/view/, src/cubecl/index/, src/cubecl/transform/, src/array.rs, and src/ops.rs. Add or extend tests under tests/conformance/ and run the required cargo fmt and cargo test commands. Done means all applicable operations, composed semantics, failures, aliasing, materialization, and CPU/accelerator conformance evidence meet the acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100