Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] circular import error in fused_moe_triton #2386

Closed
5 tasks done
BBuf opened this issue Dec 7, 2024 · 1 comment · Fixed by #2387
Closed
5 tasks done

[Bug] circular import error in fused_moe_triton #2386

BBuf opened this issue Dec 7, 2024 · 1 comment · Fixed by #2387

Comments

@BBuf
Copy link
Collaborator

BBuf commented Dec 7, 2024

Checklist

  • 1. I have searched related issues but cannot get the expected help.
  • 2. The bug has not been fixed in the latest version.
  • 3. Please note that if the bug-related issue you submitted lacks corresponding environment info and a minimal reproducible demo, it will be challenging for us to reproduce and resolve the issue, reducing the likelihood of receiving feedback.
  • 4. If the issue you raised is not a bug but a question, please raise a discussion at https://github.com/sgl-project/sglang/discussions/new/choose Otherwise, it will be closed.
  • 5. Please use English, otherwise it will be closed.

Describe the bug

circular import error in fused_moe_triton

root@dlc1ps6tjbkpwsvv-master-0:/mnt/data/bbuf/sglang# python3
Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from sglang.srt.layers.fused_moe_triton.fused_moe import fused_moe
Warning: Your installation of OpenCV appears to be broken: module 'cv2.dnn' has no attribute 'DictValue'.Please follow the instructions at https://github.com/opencv/opencv-python/issues/884 to correct your environment. The import of cv2 has been skipped.
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/mnt/data/bbuf/sglang/python/sglang/srt/layers/fused_moe_triton/__init__.py", line 11, in <module>
    from sglang.srt.layers.fused_moe_triton.layer import (
  File "/mnt/data/bbuf/sglang/python/sglang/srt/layers/fused_moe_triton/layer.py", line 16, in <module>
    from sglang.srt.layers.quantization.base_config import (
  File "/mnt/data/bbuf/sglang/python/sglang/srt/layers/quantization/__init__.py", line 25, in <module>
    from sglang.srt.layers.quantization.fp8 import Fp8Config, Fp8MoEMethod
  File "/mnt/data/bbuf/sglang/python/sglang/srt/layers/quantization/fp8.py", line 27, in <module>
    from sglang.srt.layers.fused_moe_triton import (
ImportError: cannot import name 'FusedMoE' from partially initialized module 'sglang.srt.layers.fused_moe_triton' (most likely due to a circular import) (/mnt/data/bbuf/sglang/python/sglang/srt/layers/fused_moe_triton/__init__.py)
>>> 

Reproduction

python3 
from sglang.srt.layers.fused_moe_triton.fused_moe import fused_moe

Environment

WARNING:mistral_common.tokens.tokenizers.multimodal:Warning: Your installation of OpenCV appears to be broken: module 'cv2.dnn' has no attribute 'DictValue'.Please follow the instructions at opencv/opencv-python#884 to correct your environment. The import of cv2 has been skipped.
Python: 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0]
CUDA available: True
GPU 0,1,2,3,4,5,6,7: NVIDIA A800-SXM4-80GB
GPU 0,1,2,3,4,5,6,7 Compute Capability: 8.0
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 12.3, V12.3.52
CUDA Driver Version: 535.54.03
PyTorch: 2.5.1+cu124
sglang: 0.4.0.post1
flashinfer: 0.1.6+cu121torch2.4
triton: 3.1.0
transformers: 4.47.0
torchao: 0.5.0
numpy: 1.26.4
aiohttp: 3.8.6
fastapi: 0.115.0
hf_transfer: 0.1.8
huggingface_hub: 0.24.6
interegular: 0.3.3
modelscope: 1.18.1
orjson: 3.10.12
packaging: 23.2
psutil: 5.9.4
pydantic: 2.9.0
multipart: 0.0.9
zmq: 26.2.0
uvicorn: 0.30.6
uvloop: 0.20.0
vllm: 0.6.4.post1
openai: 1.46.0
anthropic: 0.34.2
decord: 0.6.0
NVIDIA Topology:
GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 GPU6 GPU7 NIC0 NIC1 NIC2 NIC3 CPU Affinity NUMA Affinity GPU NUMA ID
GPU0 X NV8 NV8 NV8 NV8 NV8 NV8 NV8 PHB PHB PHB PHB 0-31 N/A N/A
GPU1 NV8 X NV8 NV8 NV8 NV8 NV8 NV8 PHB PHB PHB PHB 0-31 N/A N/A
GPU2 NV8 NV8 X NV8 NV8 NV8 NV8 NV8 PHB PHB PHB PHB 0-31 N/A N/A
GPU3 NV8 NV8 NV8 X NV8 NV8 NV8 NV8 PHB PHB PHB PHB 0-31 N/A N/A
GPU4 NV8 NV8 NV8 NV8 X NV8 NV8 NV8 PHB PHB PHB PHB 0-31 N/A N/A
GPU5 NV8 NV8 NV8 NV8 NV8 X NV8 NV8 PHB PHB PHB PHB 0-31 N/A N/A
GPU6 NV8 NV8 NV8 NV8 NV8 NV8 X NV8 PHB PHB PHB PHB 0-31 N/A N/A
GPU7 NV8 NV8 NV8 NV8 NV8 NV8 NV8 X PHB PHB PHB PHB 0-31 N/A N/A
NIC0 PHB PHB PHB PHB PHB PHB PHB PHB X PHB PHB PHB
NIC1 PHB PHB PHB PHB PHB PHB PHB PHB PHB X PHB PHB
NIC2 PHB PHB PHB PHB PHB PHB PHB PHB PHB PHB X PHB
NIC3 PHB PHB PHB PHB PHB PHB PHB PHB PHB PHB PHB X

Legend:

X = Self
SYS = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
PHB = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
PXB = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
PIX = Connection traversing at most a single PCIe bridge
NV# = Connection traversing a bonded set of # NVLinks

NIC Legend:

NIC0: mlx5_0
NIC1: mlx5_1
NIC2: mlx5_2
NIC3: mlx5_3

Hypervisor vendor: KVM
ulimit soft: 102400

@BBuf BBuf mentioned this issue Dec 7, 2024
3 tasks
@zhyncs zhyncs mentioned this issue Dec 7, 2024
3 tasks
@zhyncs
Copy link
Member

zhyncs commented Dec 7, 2024

It has been fixed with #2387

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants