Skip to content

Commit ab04e7d

Browse files
committed
Fix custom flash block sizes fallback in Ulysses attention.
Ensure that block sizes and heads_per_tile fall back to default values when resolved as None from CustomFlashBlockSizes dataclass. This fixes a TypeError in ulysses_custom attention when heads_per_tile is not specified.
1 parent ee00dce commit ab04e7d

1 file changed

Lines changed: 12 additions & 12 deletions

File tree

src/maxdiffusion/models/attention_flax.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -635,19 +635,19 @@ def wrap_ulysses_attention(query, key, value):
635635

636636
if flash_block_sizes is not None:
637637
if isinstance(flash_block_sizes, dict):
638-
bq = flash_block_sizes.get("block_q", bq)
639-
bkv = flash_block_sizes.get("block_kv", bkv)
640-
bkv_compute = flash_block_sizes.get("block_kv_compute", bkv_compute)
641-
bkv_compute_in = flash_block_sizes.get("block_kv_compute_in", bkv_compute_in)
642-
heads_per_tile = flash_block_sizes.get("heads_per_tile", heads_per_tile)
643-
vmem_limit_bytes = flash_block_sizes.get("vmem_limit_bytes", vmem_limit_bytes)
638+
bq = flash_block_sizes.get("block_q", None) or bq
639+
bkv = flash_block_sizes.get("block_kv", None) or bkv
640+
bkv_compute = flash_block_sizes.get("block_kv_compute", None) or bkv_compute
641+
bkv_compute_in = flash_block_sizes.get("block_kv_compute_in", None) or bkv_compute_in
642+
heads_per_tile = flash_block_sizes.get("heads_per_tile", None) or heads_per_tile
643+
vmem_limit_bytes = flash_block_sizes.get("vmem_limit_bytes", None) or vmem_limit_bytes
644644
else:
645-
bq = getattr(flash_block_sizes, "block_q", bq)
646-
bkv = getattr(flash_block_sizes, "block_kv", bkv)
647-
bkv_compute = getattr(flash_block_sizes, "block_kv_compute", bkv_compute)
648-
bkv_compute_in = getattr(flash_block_sizes, "block_kv_compute_in", bkv_compute_in)
649-
heads_per_tile = getattr(flash_block_sizes, "heads_per_tile", heads_per_tile)
650-
vmem_limit_bytes = getattr(flash_block_sizes, "vmem_limit_bytes", vmem_limit_bytes)
645+
bq = getattr(flash_block_sizes, "block_q", None) or bq
646+
bkv = getattr(flash_block_sizes, "block_kv", None) or bkv
647+
bkv_compute = getattr(flash_block_sizes, "block_kv_compute", None) or bkv_compute
648+
bkv_compute_in = getattr(flash_block_sizes, "block_kv_compute_in", None) or bkv_compute_in
649+
heads_per_tile = getattr(flash_block_sizes, "heads_per_tile", None) or heads_per_tile
650+
vmem_limit_bytes = getattr(flash_block_sizes, "vmem_limit_bytes", None) or vmem_limit_bytes
651651

652652
if use_base2_exp:
653653
query = query * LOG2E

0 commit comments

Comments
 (0)