ByteDance-Seed / ByteDance-Seed/Triton-distributed
[Bug] `symm_at` fails with `constexpr_type` when buffer parameter is None - "'constexpr_type' object has no attribute 'is_block'"
- Dominant language
- Python
- Stars
- 1.5k
- Forks
- 172
- PR merge metrics
- No merged PRs in 30d
Description
## Bug Description
When running `test_ep_moe_fused.py`, the Triton kernel compilation fails with the error:
AttributeError: 'constexpr_type' object has no attribute 'is_block'
This occurs in `distributed_ops.py` at the `symm_at` function when the `ptr` parameter is a `constexpr` type (e.g., when `None` is passed as a kernel argument).
## Environment
- **Triton-distributed version**: main branch (commit `4caaa89`)
- **Triton version**: 3.4.0 (from `3rdparty/triton`, commit `cea556dfc`)
- **GPU**: 8x NVIDIA H20
- **CUDA**: 12.8
- **Python**: 3.10
- **PyTorch**: 2.x
- **NVSHMEM**: nvidia-nvshmem-cu12 3.3.9
## Steps to Reproduce
```bash
# Set NVSHMEM memory size
export NVSHMEM_SYMMETRIC_SIZE=10000000000
# Run the test
bash ./scripts/launch.sh python/triton_dist/test/nvidia/test_ep_moe_fused.py \
--ntokens 1024 \
--num_experts 16 \
--warmup 1 \
--iters 1
Contributor guide
Research direction
Start with python/triton_dist/.../distributed_ops.py and inspect symm_at, especially how it handles ptr values passed as constexpr when None is supplied. Reproduce with python/triton_dist/test/nvidia/test_ep_moe_fused.py using the documented launch command; done means kernel compilation no longer raises the is_block AttributeError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- compilers, distributed-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100