Skip to content

[Feature]: hipTensor rocKE backend #14491

Open

Description

@vidyasagar-amd

Suggestion Description

hipTensor runs on Composable Kernel (CK) instances. It would be desirable to add a rocKE backend to hipTensor next to CK, without changing the public API:

  1. Backend interface:
    • an internal, any-rank problem descriptor and ISolution / IBackend / BackendRegistry;
    • the backend is selected at plan creation for every operation (contraction, permutation,
      elementwise binary/trinary, reduction);
    • plan cache entries are kept per backend.
  2. CK stays the default with unchanged behavior. rocKE is opt-in:
    • -DHIPTENSOR_ENABLE_ROCKE_BACKEND=ON at build time;
    • HIPTENSOR_BACKEND=auto|ck|rocke at run time;
    • fallback to CK for problems rocKE declines (HIPTENSOR_BACKEND_FALLBACK).
  3. rocKE kernels:
    • contractions in f16, bf16, f32, f64, complex f32 and complex f64 (scale and bilinear,
      unary operators on operands, conjugation), plus permutation, elementwise operations and
      reductions;
    • shape-generic kernels compiled at build time into a pack per GPU target, loaded and
      launched from C++ with no Python at run time.
  4. Kernel selection at plan creation:
    • capability checks, then rocKE's tuned route table, then a selection model evaluated in
      C++;
    • optional on-device autotune of the top candidates;
    • the selected kernel's workspace reported at plan creation.

Operating System

No response

GPU

MI350, MI300

ROCm Component

hipTensor, rocKE

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions