Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Add cooperative-matrix capability and reflection contracts

オープン
#38 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
静か
技術スタック
cpp

調査の方向性

Start by locating the reflection/package metadata, target-explanation output, package verifier, target profiles, and runtime capability declarations. Trace how requirements are encoded and validated, then design the cooperative-matrix contract around the listed fields and provenance. Done includes forward-compatible JSON encoding plus schema round-trip, verifier, and target-explanation tests covering unsupported capabilities and inconsistent declarations.

索引モデルが issue の本文から書いたものです。

説明

Problem

Portable shader packages need to distinguish ordinary per-invocation matrices from cooperative matrices whose storage and operations are distributed across a subgroup or wave. The compiler reflection and target-explanation contracts do not currently expose enough information for a runtime or package verifier to decide whether a translated cooperative-matrix artifact is executable on a device.

This is required independently of any one source language. Examples include Metal simdgroup_matrix, SPIR-V OpTypeCooperativeMatrixKHR, HLSL vk::CooperativeMatrix, emerging dx::linalg::Matrix facilities, and Slang cooperative matrix abstractions.

Requested contract

  • Add a stable cooperative-matrix requirement record to reflection/package metadata.
  • Represent component type, rows, columns, execution scope, operand/use role, memory layout, subgroup-size constraints, and required target extensions or shader model.
  • Distinguish native lowering from an explicit software fallback and record any workgroup-size/shared-memory requirements introduced by that fallback.
  • Include cooperative-matrix requirements in target explanation output with actionable unsupported-capability reasons.
  • Make package verification reject artifacts whose declared requirements are inconsistent with their target profile or missing from runtime capability declarations.
  • Preserve source provenance for each requirement so diagnostics can identify the originating type or operation.
  • Document forward-compatible JSON encoding and add schema round-trip, verifier, and target-explanation tests.

Interoperability

CrossTL can mirror this development contract while remaining independently usable, then emit compatible metadata when the compiler package API stabilizes. The translator must not require a published compiler release to lower source code.

Real-world driver

MLX Winograd, attention, and GEMM Metal kernels use subgroup-distributed matrix fragments. Translating the syntax is insufficient: runtime selection must know whether the target device supports the required shape/scope and whether a generated fallback has additional launch constraints. The requested contract should be general enough for other Metal, Vulkan, DirectX, and Slang repositories.

主要言語
C++
スター
0
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

CrossGL/compiler のほかの issue

CrossGL/compiler の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。