Repository navigation
[Fix] [AMD] diffusion: Install websockets with the ROCm diffusion extras - #44529
stayinalive181 wants to merge 2 commits into
Conversation
The CUDA diffusion extra lists websockets, but diffusion_common in pyproject_other.toml, which the ROCm image, the AMD CI install and the MUSA and MPS extras build on, does not. Without websockets or wsproto, uvicorn cannot accept a WebSocket upgrade, so /v1/realtime_video/generate answers 404 on the lmsysorg/sglang-rocm images and the AMD CI skips lingbot_world_realtime_plastic_beach at its websockets import guard.
|
@michaelzhang-ai thanks for the reply on #44421. Could you add |
|
Thanks, the diff looks right: |
The previous commit changed the file mode from 755 to 644 by accident. The diff is now the one-line websockets addition only.
|
@michaelzhang-ai Restored the 755 mode in 6d1c0ce, so the diff is now only the one-line From the earlier
|
|
@michaelzhang-ai One more AMD diffusion gap we noticed while reading the AMD lane: |
Motivation
The CUDA
diffusionextra inpython/pyproject.tomllistswebsockets.diffusion_commoninpython/pyproject_other.tomldoes not. That block is the base fordiffusion_hip(installed by the ROCm Docker image and, throughall_hip, by the AMD CI), and fordiffusion_musaanddiffusion_mps.Without
websocketsorwsproto, uvicorn cannot accept a WebSocket upgrade, so the realtime video API is unreachable on ROCm installs:lmsysorg/sglang-rocm:v0.5.21-rocm10-mi35x-20261014(SGLangbab9c81) has neither package. On it, arobbyant/lingbot-world-fast-diffusersserver with--pipeline-class-name LingBotWorldCausalDMDPipelinereports healthy on 1× MI355X, but an upgrade request to/v1/realtime_video/generategets404 Not Found, and uvicorn logsNo supported WebSocket library detected. Please use "pip install 'uvicorn[standard]'", or install 'websockets' or 'wsproto' manually.lingbot_world_realtime_plastic_beachis skipped on everymultimodal-gen-test-1-gpu-amdrun (for example scheduled run 38661136204, partition 3) at thewebsocketsimport guard intest/server/realtime_consistency.py, so the realtime path never runs on AMD.Modifications
Add
websocketstodiffusion_common, unpinned as in the CUDA extra.Accuracy Tests
Same image and server on 1× MI355X (gfx950), with
websockets17.2 installed:101 Switching Protocols.pytest sglang/multimodal_gen/test/server/test_server_1_gpu.py -k lingbot_world_realtime_plastic_beachgives 1 passed in 95.7 s.Speed Tests and Profiling
No kernel or model change. Chunk timings from that run (832×480, warmup off):
cc @HaiShaw @michaelzhang-ai, since this also lets the AMD lane run the realtime LingBot-World case instead of skipping it.
CI States
Latest PR Test (Base): ❌ Run #41658858120
Latest PR Test (Extra): ❌ Run #41658857850
Latest PR Test (AMD ROCm 10): ❌ Run #41658857577
Tip
Base CI only covers the core cases, and its workload may not exercise your change. Use
/rerun-testto run the tests your change touches, or copy this prompt for an agent: