承接 Day 14(Isaac Sim 容器化),今天來看 Isaac Lab。它是基於 Isaac Sim 的強化學習(RL)/模仿學習(IL)框架,整合了 GPU 加速的物理模擬與 Python 機器學習生態系。我們將說明如何容器化 Isaac Lab,處理 Python 相依、CUDA/cuDNN 驗證,並跑起最小 RL/IL 任務。
nvcr.io/nvidia/isaac-sim:2023.1.1
延伸。pip install -e .
。FROM nvcr.io/nvidia/isaac-sim:2023.1.1
# 環境變數
ENV ACCEPT_EULA=Y \
PRIVACY_CONSENT=Y \
ISAACSIM_HEADLESS=true
# 安裝 Python 依賴
RUN apt-get update && apt-get install -y python3-pip git && rm -rf /var/lib/apt/lists/*
# 安裝 PyTorch (與 CUDA 對應版本)
RUN pip3 install torch==2.2.0+cu121 torchvision==0.17.0+cu121 --extra-index-url https://download.pytorch.org/whl/cu121
# 下載 Isaac Lab
RUN git clone https://github.com/isaac-sim/IsaacLab.git /workspace/isaaclab
WORKDIR /workspace/isaaclab
RUN pip3 install -e .
注意:PyTorch CUDA 版本需與 Isaac Sim 映像內的 CUDA/cuDNN 相容。可在容器內
nvcc --version
與torch.cuda.is_available()
驗證。
apiVersion: v1
kind: Pod
metadata:
name: isaac-lab-ppo
namespace: robotics
spec:
restartPolicy: Never
containers:
- name: isaac-lab
image: myrepo/isaac-lab:latest
command: ["python3","scripts/train.py","--task","Cartpole"]
resources:
limits:
nvidia.com/gpu: 1
volumeMounts:
- name: datasets
mountPath: /workspace/datasets
volumes:
- name: datasets
persistentVolumeClaim:
claimName: pvc-isaac-datasets
Cartpole
是最小 RL 任務,可驗證容器是否正常跑訓練 loop。CUDA 驗證:
kubectl exec -n robotics isaac-lab-ppo -- python3 -c "import torch; print(torch.cuda.is_available())"
預期:輸出 True
。
cuDNN 驗證:
python3 -c "import torch; print(torch.backends.cudnn.version())"
預期:顯示 cuDNN 版本號。
訓練驗收:
kubectl logs isaac-lab-ppo -n robotics
nvidia.com/gpu
,GPU Operator 正常。pip install -e .
已執行。連休はあっという間だったQAQ