Diff Coverage

Diff: origin/master...HEAD, staged and unstaged changes

Source File Diff Coverage (%) Missing Lines
hyper_parallel/core/shard/ops/parallel_lightning_indexer.py 100%  
hyper_parallel/core/shard/ops/parallel_npu_dense_lightning_indexer_grad_kl_loss.py 100%  
hyper_parallel/core/shard/ops/parallel_npu_dense_lightning_indexer_softmax_lse.py 85.7% 38
hyper_parallel/core/shard/ops/parallel_npu_sparse_flash_attention.py 100%  
hyper_parallel/core/shard/ops/parallel_npu_sparse_lightning_indexer_grad_kl_loss.py 100%  
hyper_parallel/core/shard/ops/parallel_npu_dense_lightning_indexer_softmax_lse.py
34
35
36
37
38
39
40
41
42
    a plain tensor (or None) is passed through unchanged. All other inputs must be
    DTensors (they go through ``.to_local()`` directly) so their layout can be inferred.
    """
    if isinstance(t, DTensor):
        return t.to_local()
    return t

# Maps layout_str -> tensor role -> {dim_index: dim_label} for replicated-dim checks.
# 'q' = query_index, 'k' = key_index, 'w' = weights.