[NPU][Bugfix] Disable pinned memory to fix DeepSeek-V2 DP-attention hang (#39423)
This commit is contained in:
@@ -56,9 +56,7 @@ class NPUDeviceMixin(DeviceMixin):
|
||||
return torch.npu.mem_get_info(device_id)
|
||||
|
||||
def is_pin_memory_available(self, device=None) -> bool:
|
||||
if device is not None and str(device) == "cpu":
|
||||
return False
|
||||
return True
|
||||
return False
|
||||
|
||||
@classmethod
|
||||
def seed_everything(cls, seed: int | None = None) -> None:
|
||||
|
||||
@@ -381,10 +381,13 @@ class TestNpuDeviceMixin(CustomTestCase):
|
||||
mock_npu.synchronize.assert_called_once()
|
||||
|
||||
def test_pin_memory_available_for_npu_targets(self):
|
||||
# Pinned memory stays disabled on NPU: torch_npu's pinned-memory +
|
||||
# non_blocking H2D path is not verified against CANN (see
|
||||
# NPUSRTPlatform.is_pin_memory_available).
|
||||
base = NPUSRTPlatform()
|
||||
self.assertTrue(base.is_pin_memory_available())
|
||||
self.assertTrue(base.is_pin_memory_available(device="npu"))
|
||||
self.assertTrue(base.is_pin_memory_available(device=torch.device("npu", 0)))
|
||||
self.assertFalse(base.is_pin_memory_available())
|
||||
self.assertFalse(base.is_pin_memory_available(device="npu"))
|
||||
self.assertFalse(base.is_pin_memory_available(device=torch.device("npu", 0)))
|
||||
self.assertFalse(base.is_pin_memory_available(device="cpu"))
|
||||
self.assertFalse(base.is_pin_memory_available(device=torch.device("cpu")))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user