KhronosGroup / KhronosGroup/SPIRV-Guide

Storage class for cooperative matrix.

Open
#34 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
GLSL
Stars
247
Forks
19
PR merge metrics
No merged PRs in 30d

Description

The cooperative matrix spec states the following:
a. Under overview, we have: "cooperative matrix" types, where the storage for and computations performed on the matrix are spread across a set of invocations such as a subgroup.
b. Under validation rules, we have: Cooperative matrix types (or types containing them) can only be allocated in Function or Private storage classes.

It is a bit confusing as the Function / Private storage classes are not spread across a set of invocations.

A request for clarifying this was raised in https://gitlab.khronos.org/spirv/SPIR-V/-/issues/824 and it was suggested there that this can be a topic for SPIRV-Guide.

Clarification: The idea here is coopMat types in the program are referred to be in Function / Private storage whereas the underlying type that supports coopMat type can be in a storage other than Function / Private like Workgroup storage class. It also depends on multiple mental models that work out for coopMats.

Contributor guide

Open the contributing guide

Research direction

Start by reading the cooperative matrix specification and the linked SPIR-V issue #824. Clarify how Function and Private storage classes relate to cooperative matrix types while the underlying supporting type may use another storage class, including the relevant mental models. Done means the SPIRV-Guide explanation resolves the apparent conflict.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.