mirror of
https://github.com/kvcache-ai/Mooncake.git
synced 2026-11-05 01:17:55 +00:00
[GH-ISSUE #284] Runing transfer_engine_bench on H800 and H20,but got local protection error. #112
Labels
No labels
ascend
auto-closed
bug
bug
CI/Build
Common
documentation
enhancement
feature request
good first issue
help wanted
high priority
MetaX
nightly-failure
pull-request
PyTorch Backend
question
RFC
Roadmap
stale
Store
Tests
Transfer Engine
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
kvcache-ai/Mooncake#112
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Time-Limit on GitHub (Apr 22, 2025).
Original GitHub issue: https://github.com/kvcache-ai/Mooncake/issues/284
When I run transfer_engine_bench on H800 and H20 to test bandwidth,I got an error 'local protection error' from initiator node, and got some warning about 'Re-establish connection' from target node.
initiator script on H800
target script on H20
@Time-Limit commented on GitHub (Apr 22, 2025):
H20(initiator) write data to H800(target), ok
H20(initiator) read data from H800(target), ok
H800(initiator) write data to H20(target), failed
H800(initiator) read data from H20(target), ok
@stmatengss commented on GitHub (Apr 22, 2025):
"local protection error" means memory cannot be registered or accessed by RDMA. This may be due to low permissions. You can run the benchmark as a root user or using sudo.
@a4zhangfei commented on GitHub (Apr 28, 2025):
@stmatengss I'm having the same problem. I found that h800- > h20 rdma transmission can only be successfully using mlx5_bond_0 device, and others will encounter
local protection errorproblem.transfer_engine_benchis executed under root privileges.The mlx5_bond_0 of h800 can be sent successfully to any device of h20, and other devices of h800 cannot send successfully to any device of h20.
I use the following rdma example to achieve successful transmission of any rdma device from h800 to h20, so I feel like there is a problem with the code?
https://gitee.com/brucewanght/RDMA-Tutorial/blob/master/RDMA_RC_example.c
The rdma device for h800 and h20 are as follows:
h800:
h20:
I'd appreciate any help.
@staryxchen commented on GitHub (Jul 24, 2025):
Hi @a4zhangfei @Time-Limit
The reason for this issue may be a system limitation that does not allow the NIC to access the memory of a GPU that is not in the same PCIe switch(BTW, we already has some workaround to ensure that this limitation is avoided, see #661 and #581 ). As an example, mlx5_bond_0 cannot access the memory of GPU1. In transfer_engine_bench, the gpu_id is always 0 by default, so you will see that only mlx5_bond_0 works. There are two ways to confirm the root cause of this problem:
@duzeyan commented on GitHub (Jul 25, 2025):
We have the same problem when using sglang. The "remote operation error" error occurs when the target node's --device_name and --gpu_id parameters in transfer_engine_bench don't match. Do you have any configuration to avoid this problem?
@staryxchen commented on GitHub (Jul 25, 2025):
Unfortunately, mooncake (or any user-mode program) cannot remove this restriction. We can only try to avoid situations where RNIC and GPU are not match (btw, for optimal performance, we should also avoid such situations), as mentioned in the PR I mentioned earlier.
@github-actions[bot] commented on GitHub (Jul 14, 2026):
This issue has had no activity for 90 days and will be closed in 7 days if there is no further activity. Please comment or react if it should stay open.
@github-actions[bot] commented on GitHub (Jul 21, 2026):
Closing due to 3 months of inactivity. If this is still relevant, please comment and we can reopen.