cpu docker fix v1
Browse files- docker-entrypoint.sh +2 -2
- gradio-web/main.py +1 -1
- gradio-web/minimal_robomme_env_cpu_step.py +1 -1
- gradio-web/test/test_main_launch_config.py +18 -3
- human_readme.md +1 -1
docker-entrypoint.sh
CHANGED
|
@@ -7,8 +7,8 @@ fi
|
|
| 7 |
|
| 8 |
export CUDA_VISIBLE_DEVICES=-1
|
| 9 |
export NVIDIA_VISIBLE_DEVICES=void
|
| 10 |
-
export SAPIEN_RENDER_DEVICE=cpu
|
| 11 |
unset NVIDIA_DRIVER_CAPABILITIES
|
|
|
|
| 12 |
unset MUJOCO_GL
|
| 13 |
if [ -z "${VK_ICD_FILENAMES:-}" ] && [ -f /usr/share/vulkan/icd.d/lvp_icd.x86_64.json ]; then
|
| 14 |
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.x86_64.json
|
|
@@ -18,6 +18,6 @@ echo "[entrypoint] Starting RoboMME Gradio app in CPU-only mode"
|
|
| 18 |
echo "[entrypoint] OMP_NUM_THREADS=$OMP_NUM_THREADS"
|
| 19 |
echo "[entrypoint] CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES"
|
| 20 |
echo "[entrypoint] NVIDIA_VISIBLE_DEVICES=$NVIDIA_VISIBLE_DEVICES"
|
| 21 |
-
echo "[entrypoint] SAPIEN_RENDER_DEVICE=$SAPIEN_RENDER_DEVICE"
|
| 22 |
echo "[entrypoint] VK_ICD_FILENAMES=${VK_ICD_FILENAMES:-<unset>}"
|
| 23 |
exec "$@"
|
|
|
|
| 7 |
|
| 8 |
export CUDA_VISIBLE_DEVICES=-1
|
| 9 |
export NVIDIA_VISIBLE_DEVICES=void
|
|
|
|
| 10 |
unset NVIDIA_DRIVER_CAPABILITIES
|
| 11 |
+
unset SAPIEN_RENDER_DEVICE
|
| 12 |
unset MUJOCO_GL
|
| 13 |
if [ -z "${VK_ICD_FILENAMES:-}" ] && [ -f /usr/share/vulkan/icd.d/lvp_icd.x86_64.json ]; then
|
| 14 |
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.x86_64.json
|
|
|
|
| 18 |
echo "[entrypoint] OMP_NUM_THREADS=$OMP_NUM_THREADS"
|
| 19 |
echo "[entrypoint] CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES"
|
| 20 |
echo "[entrypoint] NVIDIA_VISIBLE_DEVICES=$NVIDIA_VISIBLE_DEVICES"
|
| 21 |
+
echo "[entrypoint] SAPIEN_RENDER_DEVICE=${SAPIEN_RENDER_DEVICE:-<unset>}"
|
| 22 |
echo "[entrypoint] VK_ICD_FILENAMES=${VK_ICD_FILENAMES:-<unset>}"
|
| 23 |
exec "$@"
|
gradio-web/main.py
CHANGED
|
@@ -19,10 +19,10 @@ DEFAULT_LLVMPipe_ICD = Path("/usr/share/vulkan/icd.d/lvp_icd.x86_64.json")
|
|
| 19 |
CPU_ONLY_ENV_OVERRIDES = {
|
| 20 |
"CUDA_VISIBLE_DEVICES": "-1",
|
| 21 |
"NVIDIA_VISIBLE_DEVICES": "void",
|
| 22 |
-
"SAPIEN_RENDER_DEVICE": "cpu",
|
| 23 |
}
|
| 24 |
CPU_ONLY_ENV_CLEAR_KEYS = (
|
| 25 |
"NVIDIA_DRIVER_CAPABILITIES",
|
|
|
|
| 26 |
"MUJOCO_GL",
|
| 27 |
)
|
| 28 |
|
|
|
|
| 19 |
CPU_ONLY_ENV_OVERRIDES = {
|
| 20 |
"CUDA_VISIBLE_DEVICES": "-1",
|
| 21 |
"NVIDIA_VISIBLE_DEVICES": "void",
|
|
|
|
| 22 |
}
|
| 23 |
CPU_ONLY_ENV_CLEAR_KEYS = (
|
| 24 |
"NVIDIA_DRIVER_CAPABILITIES",
|
| 25 |
+
"SAPIEN_RENDER_DEVICE",
|
| 26 |
"MUJOCO_GL",
|
| 27 |
)
|
| 28 |
|
gradio-web/minimal_robomme_env_cpu_step.py
CHANGED
|
@@ -26,8 +26,8 @@ if str(SRC_DIR) not in sys.path:
|
|
| 26 |
def configure_cpu_only_runtime() -> None:
|
| 27 |
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
|
| 28 |
os.environ["NVIDIA_VISIBLE_DEVICES"] = "void"
|
| 29 |
-
os.environ["SAPIEN_RENDER_DEVICE"] = "cpu"
|
| 30 |
os.environ.pop("NVIDIA_DRIVER_CAPABILITIES", None)
|
|
|
|
| 31 |
os.environ.pop("MUJOCO_GL", None)
|
| 32 |
if "VK_ICD_FILENAMES" not in os.environ:
|
| 33 |
lvp_icd = Path("/usr/share/vulkan/icd.d/lvp_icd.x86_64.json")
|
|
|
|
| 26 |
def configure_cpu_only_runtime() -> None:
|
| 27 |
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
|
| 28 |
os.environ["NVIDIA_VISIBLE_DEVICES"] = "void"
|
|
|
|
| 29 |
os.environ.pop("NVIDIA_DRIVER_CAPABILITIES", None)
|
| 30 |
+
os.environ.pop("SAPIEN_RENDER_DEVICE", None)
|
| 31 |
os.environ.pop("MUJOCO_GL", None)
|
| 32 |
if "VK_ICD_FILENAMES" not in os.environ:
|
| 33 |
lvp_icd = Path("/usr/share/vulkan/icd.d/lvp_icd.x86_64.json")
|
gradio-web/test/test_main_launch_config.py
CHANGED
|
@@ -54,9 +54,9 @@ def test_main_launch_passes_ui_css_and_forces_cpu_runtime(monkeypatch, reload_mo
|
|
| 54 |
assert fake_demo.launch_kwargs["head"] == fake_demo.head
|
| 55 |
assert os.environ["CUDA_VISIBLE_DEVICES"] == "-1"
|
| 56 |
assert os.environ["NVIDIA_VISIBLE_DEVICES"] == "void"
|
| 57 |
-
assert os.environ["SAPIEN_RENDER_DEVICE"] == "cpu"
|
| 58 |
assert os.environ["VK_ICD_FILENAMES"] == "/tmp/another_nvidia_icd.json"
|
| 59 |
assert "NVIDIA_DRIVER_CAPABILITIES" not in os.environ
|
|
|
|
| 60 |
assert "MUJOCO_GL" not in os.environ
|
| 61 |
|
| 62 |
|
|
@@ -83,9 +83,9 @@ def test_configure_cpu_only_runtime_autosets_llvmpipe_icd(monkeypatch, reload_mo
|
|
| 83 |
|
| 84 |
assert os.environ["CUDA_VISIBLE_DEVICES"] == "-1"
|
| 85 |
assert os.environ["NVIDIA_VISIBLE_DEVICES"] == "void"
|
| 86 |
-
assert os.environ["SAPIEN_RENDER_DEVICE"] == "cpu"
|
| 87 |
assert os.environ["VK_ICD_FILENAMES"] == DEFAULT_LLVMPipe_ICD
|
| 88 |
assert "NVIDIA_DRIVER_CAPABILITIES" not in os.environ
|
|
|
|
| 89 |
assert "MUJOCO_GL" not in os.environ
|
| 90 |
|
| 91 |
|
|
@@ -109,7 +109,22 @@ def test_configure_cpu_only_runtime_preserves_existing_vk_icd(monkeypatch, reloa
|
|
| 109 |
|
| 110 |
assert os.environ["CUDA_VISIBLE_DEVICES"] == "-1"
|
| 111 |
assert os.environ["NVIDIA_VISIBLE_DEVICES"] == "void"
|
| 112 |
-
assert os.environ["SAPIEN_RENDER_DEVICE"] == "cpu"
|
| 113 |
assert os.environ["VK_ICD_FILENAMES"] == "/tmp/preserved_icd.json"
|
| 114 |
assert "NVIDIA_DRIVER_CAPABILITIES" not in os.environ
|
|
|
|
| 115 |
assert "MUJOCO_GL" not in os.environ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
assert fake_demo.launch_kwargs["head"] == fake_demo.head
|
| 55 |
assert os.environ["CUDA_VISIBLE_DEVICES"] == "-1"
|
| 56 |
assert os.environ["NVIDIA_VISIBLE_DEVICES"] == "void"
|
|
|
|
| 57 |
assert os.environ["VK_ICD_FILENAMES"] == "/tmp/another_nvidia_icd.json"
|
| 58 |
assert "NVIDIA_DRIVER_CAPABILITIES" not in os.environ
|
| 59 |
+
assert "SAPIEN_RENDER_DEVICE" not in os.environ
|
| 60 |
assert "MUJOCO_GL" not in os.environ
|
| 61 |
|
| 62 |
|
|
|
|
| 83 |
|
| 84 |
assert os.environ["CUDA_VISIBLE_DEVICES"] == "-1"
|
| 85 |
assert os.environ["NVIDIA_VISIBLE_DEVICES"] == "void"
|
|
|
|
| 86 |
assert os.environ["VK_ICD_FILENAMES"] == DEFAULT_LLVMPipe_ICD
|
| 87 |
assert "NVIDIA_DRIVER_CAPABILITIES" not in os.environ
|
| 88 |
+
assert "SAPIEN_RENDER_DEVICE" not in os.environ
|
| 89 |
assert "MUJOCO_GL" not in os.environ
|
| 90 |
|
| 91 |
|
|
|
|
| 109 |
|
| 110 |
assert os.environ["CUDA_VISIBLE_DEVICES"] == "-1"
|
| 111 |
assert os.environ["NVIDIA_VISIBLE_DEVICES"] == "void"
|
|
|
|
| 112 |
assert os.environ["VK_ICD_FILENAMES"] == "/tmp/preserved_icd.json"
|
| 113 |
assert "NVIDIA_DRIVER_CAPABILITIES" not in os.environ
|
| 114 |
+
assert "SAPIEN_RENDER_DEVICE" not in os.environ
|
| 115 |
assert "MUJOCO_GL" not in os.environ
|
| 116 |
+
|
| 117 |
+
|
| 118 |
+
def test_configure_cpu_only_runtime_clears_stale_sapien_render_device(monkeypatch, reload_module):
|
| 119 |
+
monkeypatch.setenv("SAPIEN_RENDER_DEVICE", "cpu")
|
| 120 |
+
monkeypatch.setenv("CUDA_VISIBLE_DEVICES", "7")
|
| 121 |
+
monkeypatch.setenv("NVIDIA_VISIBLE_DEVICES", "all")
|
| 122 |
+
|
| 123 |
+
main = reload_module("main")
|
| 124 |
+
monkeypatch.setenv("SAPIEN_RENDER_DEVICE", "cuda:0")
|
| 125 |
+
|
| 126 |
+
main.configure_cpu_only_runtime()
|
| 127 |
+
|
| 128 |
+
assert os.environ["CUDA_VISIBLE_DEVICES"] == "-1"
|
| 129 |
+
assert os.environ["NVIDIA_VISIBLE_DEVICES"] == "void"
|
| 130 |
+
assert "SAPIEN_RENDER_DEVICE" not in os.environ
|
human_readme.md
CHANGED
|
@@ -155,7 +155,7 @@ A2: This Docker image is configured for CPU-only execution and should not rely o
|
|
| 155 |
```python
|
| 156 |
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
|
| 157 |
os.environ['NVIDIA_VISIBLE_DEVICES'] = 'void'
|
| 158 |
-
os.environ
|
| 159 |
os.environ.pop('NVIDIA_DRIVER_CAPABILITIES', None)
|
| 160 |
os.environ.pop('MUJOCO_GL', None)
|
| 161 |
os.environ.setdefault('VK_ICD_FILENAMES', '/usr/share/vulkan/icd.d/lvp_icd.x86_64.json')
|
|
|
|
| 155 |
```python
|
| 156 |
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
|
| 157 |
os.environ['NVIDIA_VISIBLE_DEVICES'] = 'void'
|
| 158 |
+
os.environ.pop('SAPIEN_RENDER_DEVICE', None)
|
| 159 |
os.environ.pop('NVIDIA_DRIVER_CAPABILITIES', None)
|
| 160 |
os.environ.pop('MUJOCO_GL', None)
|
| 161 |
os.environ.setdefault('VK_ICD_FILENAMES', '/usr/share/vulkan/icd.d/lvp_icd.x86_64.json')
|