Summary
Some GPU/NPU test modules perform device setup at import time. On CPU-only hosts, full pytest collection can fail before markers such as -m "not gpu" have a chance to deselect those tests.
Why this matters
CPU-only CI and local development should be able to collect and run the CPU test suite without initializing CUDA/NPU runtime state. Import-time device setup also makes failures harder to diagnose because collection fails before the test body runs.
Suggested fix
- Avoid creating
DeviceManager() or similar accelerator-dependent objects at module import time in test files.
- Move accelerator setup into GPU-marked test functions or fixtures.
- Skip inside those fixtures when the required accelerator runtime is unavailable.
- Verify that
pytest tests/ -m "not gpu" can collect and run on CPU-only hosts.
Expected outcome
CPU-only test runs should be able to execute non-GPU tests without CUDA/NPU initialization side effects during collection.
Summary
Some GPU/NPU test modules perform device setup at import time. On CPU-only hosts, full pytest collection can fail before markers such as
-m "not gpu"have a chance to deselect those tests.Why this matters
CPU-only CI and local development should be able to collect and run the CPU test suite without initializing CUDA/NPU runtime state. Import-time device setup also makes failures harder to diagnose because collection fails before the test body runs.
Suggested fix
DeviceManager()or similar accelerator-dependent objects at module import time in test files.pytest tests/ -m "not gpu"can collect and run on CPU-only hosts.Expected outcome
CPU-only test runs should be able to execute non-GPU tests without CUDA/NPU initialization side effects during collection.