diff --git a/python/sglang/srt/platforms/npu.py b/python/sglang/srt/platforms/npu.py index c1382ff76..d01220efb 100644 --- a/python/sglang/srt/platforms/npu.py +++ b/python/sglang/srt/platforms/npu.py @@ -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: diff --git a/test/registered/unit/platforms/test_platform_interface.py b/test/registered/unit/platforms/test_platform_interface.py index 5614dd7f0..cd9548672 100644 --- a/test/registered/unit/platforms/test_platform_interface.py +++ b/test/registered/unit/platforms/test_platform_interface.py @@ -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")))