task_scheduling.enums#
- class cutlass.experimental.task_scheduling.enums.PipelineType(value)#
Bases:
EnumType of the concrete pipeline implementation in
PipelineConfig.Pipeline names follow the
<Producer><Consumer>convention.Public members:
AsyncAsync- Generic async (thread-based) producer + async-thread consumer pipeline.TmaAsync- TMA-producer + async-thread consumer pipeline (cp.async.bulk).TmaUmma- TMA-producer + UMMA-consumer async pipeline.UmmaAsync- UMMA-producer + AsyncThread-consumer async pipeline.UmmaAsyncmatches the CUTLASS pipeline name.AsyncUmma- AsyncThread-producer + UMMA-consumer async pipeline.AsyncUmmamatches the CUTLASS pipeline name.UmmaUmma- UMMA-producer + UMMA-consumer async pipeline. Used when tensor-core producer and consumer stages are both UMMA-backed.ClcFetchAsync- CLC tile-fetch producer + async-thread consumer pipeline.
- AsyncAsync = 'AsyncAsync'#
- TmaAsync = 'TmaAsync'#
- TmaUmma = 'TmaUmma'#
- UmmaAsync = 'UmmaAsync'#
- AsyncUmma = 'AsyncUmma'#
- UmmaUmma = 'UmmaUmma'#
- ClcFetchAsync = 'ClcFetchAsync'#
- class cutlass.experimental.task_scheduling.enums.TileSchedulerType(value)#
Bases:
EnumSelects the persistent tile-scheduling strategy.
Members:
StaticPersistent- CTAs are launched to fill one SM wave; work-tile indices are assigned statically per CTA.ClcDynamicPersistent- A dedicated scheduler warp fetches work tiles dynamically at runtime.
- StaticPersistent = 'StaticPersistent'#
- ClcDynamicPersistent = 'ClcDynamicPersistent'#
- class cutlass.experimental.task_scheduling.enums.PipelineGroupMode(value)#
Bases:
EnumDataflow topology of a
PipelineGroup.A group collapses the barrier on whichever side is driven by a single task. Group construction derives a merged config from the member configs:
num_bytesis combined across members as required by the group mode, while the collapsed side’s cooperative-group size must match across members.Members:
Merge- N-to-1: each member has a separate producer task; all members share one consumer task. The consumer side is collapsed: member pipeline types must have compatible consumer kinds, andconsumer_group.sizemust match.Fork- 1-to-N: all members share one producer task; each member has a separate consumer task. The producer side is collapsed: member pipeline types must have compatible producer kinds, andproducer_group.sizemust match.
- Merge = 'Merge'#
- Fork = 'Fork'#
- class cutlass.experimental.task_scheduling.enums.SignalingThreads(value)#
Bases:
IntFlagControls which threads execute pipeline barrier operations.
Members:
All- Every thread in the cooperative group participates.CtaLeader- Only CTA 0 in the cluster signals (used when a single CTA drives a 2-CTA pipeline, e.g. MMA producer).TaskWarpLeader- Only the first warp assigned to the task arms the producer-side transaction barrier. This is orthogonal to CTA ownership: it may be combined withCtaLeader.
CtaLeaderandTaskWarpLeaderare composable.Allis exclusive: combining it with another flag is invalid because it contradicts a narrower signaling predicate.- All = 1#
- CtaLeader = 2#
- TaskWarpLeader = 4#
- classmethod is_valid_combination(
- value: SignalingThreads,
Return true for signaling modes supported by TS codegen.
- classmethod validate(
- value: SignalingThreads,
- field_name: str,
Raise if
valueis not a supported signaling mode.
- has_cta_leader() bool#
Return true when CTA-leader gating is part of this mode.
- has_task_warp_leader() bool#
Return true when task-warp-leader gating is part of this mode.
- class cutlass.experimental.task_scheduling.enums.WorkAttr(value)#
Bases:
IntFlagVerification-visible attributes attached to TS work callbacks.
Work attributes describe semantic properties that the schedule verifier must account for.
AUXILIARYmarks callbacks that do not model memory access and should not participate in normal resource ordering checks. The type is anIntFlagso future verifier attributes can be composed without changing the decorator API.- NONE = 0#
- AUXILIARY = 1#
- classmethod is_valid_combination(
- value: WorkAttr,
Return true for work-attribute sets supported by verification.
- classmethod validate(
- value: WorkAttr,
- field_name: str,
Raise if
valueis not a supported work-attribute flag set.
- is_auxiliary() bool#
Return true when auxiliary-work semantics are requested.
- class cutlass.experimental.task_scheduling.enums.ScheduleStage(value)#
Bases:
EnumIndividual pipeline operations that a
Taskschedule can reference.Each member maps to a method on
Taskthat delegates to the corresponding pipeline / resource call:- Consumer side (src in the Task):
ConsumerAuxWork- execute side-effect-free helper-variable work.ConsumerTryWait- non-blocking check for data availability.ConsumerWait- blocking wait for data availability.ConsumerWork- execute the resource’sconsumer_work().ConsumerRelease- signal the producer that the buffer is free.
- Producer side (dst in the Task):
ProducerAuxWork- execute side-effect-free helper-variable work.ProducerTryAcquire- non-blocking check for a free buffer.ProducerAcquire- blocking wait for a free buffer.ProducerWork- execute the resource’sproducer_work().ProducerCommit- signal the consumer that data is ready.
The
__str__method returns compact labels used in schedule printouts.- ConsumerAuxWork = 'ConsumerAuxWork'#
- ConsumerRelease = 'ConsumerRelease'#
- ConsumerTryWait = 'ConsumerTryWait'#
- ConsumerWait = 'ConsumerWait'#
- ConsumerWork = 'ConsumerWork'#
- ProducerAuxWork = 'ProducerAuxWork'#
- ProducerTryAcquire = 'ProducerTryAcquire'#
- ProducerAcquire = 'ProducerAcquire'#
- ProducerCommit = 'ProducerCommit'#
- ProducerWork = 'ProducerWork'#