job 96576가 TIMEOUT(12h)로 끝났으나 실제론 느려서가 아니라 멈춰서 — 마지막 완료 후 4h50m 동안 진행 0건max_tasks_per_gpu=2의 같은 GPU를 쓰는 두 worker가 함께 물린 것으로 추정MAX_TASKS_PER_GPU=1로 재제출, 완료된 88개는 resume scan이 스킵공개 ckpt flexpi-robotwin(step_048060)로 논문 RoboTwin 50-task 수치(94.6%)를 이 클러스터에서 재현하는 것이 목표. 환경 구축(flexpi-eval env 클론)과 smoke 검증(lift_pot 2/2), OIDN → optix 디노이저 우회는 260826-robotwin_eval_setup.html에서 완료. 이번 카드는 그 뒤 제출한 첫 full sweep(job 96576)의 실제 결과와, 12h wall-time을 다 쓰고도 미완으로 끝난 원인 분석을 다룬다.
job 96576: scripts/sweep_flexpi_robotwin_worker.sh로 50 task × {clean, random} × 100 ep = 100 units 제출. own QOS, 8 GPU × 2 worker/GPU, 12h cap, --container=nvcr.io/nvidia/isaac-lab:2.2.0.
완료 후 sacct·worker 로그를 task별/GPU별로 집계해 성공률과 미완 unit의 마지막 로그 시각을 대조하는 방식으로 hang 여부를 분리했다. RoboTwin expert-check가 던지는 target_pose cannot be None 류 예외(seed 스킵, 벤더 코드가 자체 처리)는 traceback이 있어도 hang과 무관함을 별도로 확인.
| n | 평균 | |
|---|---|---|
| clean | 46 | 95.13% |
| random | 42 | 95.29% |
| 전체 | 88 | 95.20% |
| 논문 (50 task, 100 units) | 100 | 94.6% |
두 phase 모두 완료된 42 task 평균 95.04%. 100% 달성 21 units. 최저 구간: stack_bowls_three clean 77%, place_can_basket clean 78%, turn_switch clean 80%, blocks_ranking_size clean 81%, hanging_mug random 81%. 추론 지연은 9,127회 호출 평균 398.6 ms/call(min 260 / max 829; eager, compile off, 4 steps, full-joint) — 260826 smoke의 397.5 ms/call과 일치.
job은 TIMEOUT(12:00:00)로 종료됐지만, 마지막 완료 18:34:38 이후 강제종료(23:24)까지 4h50m 동안 완료 0건 — 느려서가 아니라 멈춰서 시간을 다 썼다.
| GPU | 멈춘 unit | 마지막 로그 |
|---|---|---|
| 0 | adjust_bottle random, beat_block_hammer random | 12:21 (step 95/200) |
| 2 | open_microwave clean, rotate_qrcode clean | 13:01 (step 511/800), 15:30 (step 31/400) |
| 5 | place_bread_skillet clean, put_object_cabinet clean | 13:02 (step 137/500) |
| 7 | place_phone_stand random, move_pillbottle_pad random | — |
max_tasks_per_gpu=2이므로 한 GPU를 공유하는 두 worker가 함께 물린 것 — task별 버그가 아니라 GPU 단위 wedge로 보인다(한쪽이 물리면 co-tenant도 결국 같이 물림). 롤아웃 중간 step에서 정지 후 로그 한 줄도 없음. 이 8개 때문에 나머지 phase 4개는 launch조차 못 해 총 12 units 미완.Error: target_pose cannot be None / 'NoneType' object is not subscriptable traceback 12건은 RoboTwin expert-check의 seed 스킵(벤더 코드가 잡고 다음 seed로 진행)이며 hang과 무관.재현은 성공 방향 — 88 units 평균 95.20%로 논문 94.6%를 이미 상회. 남은 12개가 최종 평균을 크게 흔들 규모는 아니다(12개 전부 0%여도 전체 83.8%, 전부 95%면 95.2% 유지 — 어느 쪽이든 결론은 안 바뀜).
파이프라인의 실질 한계는 성능이 아니라 hang이다. max_tasks_per_gpu=2가 원인 후보 1순위지만, optix 디노이저 + 2 proc/GPU 조합이 트리거인지는 대조군이 없어 단정할 수 없다 — tau(X-WAM 하네스)의 RoboTwin eval도 2 client/GPU였지만 그쪽은 OIDN이 애초에 작동 안 하던 상태였어서 조건이 다르다. 변수를 분리하려면 별도 실험이 필요.
job 97455 flexpi_rt_resume (제출됨, PENDING/QOSMaxCpuPerUserLimit): 같은 출력 dir에 RESUME_DIR로 재개, 남은 12 units만, NUM_GPUS=4 MAX_TASKS_PER_GPU=1, own 4 GPU, 6h cap. 완료된 88개는 resume scan이 스킵.
hang의 정확한 근본 원인 미규명 (optix denoiser vs 2-proc-per-GPU 경합 vs 다른 원인, 대조군 부재). 재발 시 대응: worker별 진행 워치독(마지막 로그 mtime 기준 kill+재시작) 도입 또는 max_tasks_per_gpu=1 고정.
1. job 97455 완료 후 100/100 최종 집계 → 논문 94.6% 대비 확정.
2. action-only(VLA) sweep (사용자 결정: 97455 완료 후): REGIME=action으로 같은 ckpt 50 task sweep. Flex-π 핵심 주장(한 체크포인트, regime 선택)의 검증 + 지연 대조(398ms → 100~150ms 예상).