////

KT H100 박스: torch CPU 휠이 깨져 있고 pip이 가짜 버전을 주는 커스텀 미러를 쓴다

공급자 관리형 GPU/Python 환경에서는 pip install 성공이나 already satisfied 메시지만으로 런타임 정상 동작을 신뢰하면 안 된다. 커스텀 pip 인덱스, 시스템 dist-packages 혼입, torch/numpy/scipy ABI 조합 불일치가 겹치면 fresh venv에서도 import 단계에서 깨질 수 있다.

////

요지#

공급자 관리형 GPU/Python 환경에서는 pip install 성공이나 already satisfied 메시지만으로 런타임 정상 동작을 신뢰하면 안 된다. 커스텀 pip 인덱스, 시스템 dist-packages 혼입, torch/numpy/scipy ABI 조합 불일치가 겹치면 fresh venv에서도 import 단계에서 깨질 수 있다.

관찰된 실패 모드#

1. torch CPU 휠 import 실패#

특정 H100 GPU 박스에서 CPU 전용 torch 휠을 설치한 뒤 fresh venv에서도 다음 계열 오류가 발생했다.

  • module 'torch._C' has no attribute '_dlpack_exchange_api'
  • cannot import name '_cuda_endAllocateCurrentStreamToPool'

증상은 torch Python 파일과 _C.so 같은 C-extension 바이너리의 버전/ABI 불일치처럼 보였고, 단순 재설치로 해결되지 않았다.

2. pip 미러/시스템 패키지 혼입 의심#

pip이 공개 PyPI에서 확인되지 않는 버전처럼 보이는 패키지를 already satisfied 또는 설치됨으로 보고한 사례가 있었다. 이는 다음 가능성을 의심해야 하는 신호다.

  • 커스텀 pip mirror/index 사용
  • venv가 시스템 dist-packages를 섞어 읽음
  • provider 이미지에 사전 설치된 패키지가 venv 격리를 무너뜨림
  • /etc/pip/constraint.txt 같은 전역 제약 파일 영향

대응 원칙#

  • fresh venv를 만들었다고 끝내지 말고, 설치 직후 python -c "import torch; print(torch.__version__)"처럼 실제 import와 핵심 기능을 확인한다.
  • torch 같은 핵심 런타임 패키지는 공식 index-url과 정확한 버전 pin을 명시한다.
  • 커스텀 mirror/cache가 의심되면 --no-cache-dir를 사용하고, pip config list, 환경변수, 전역 constraint 파일을 확인한다.
  • 공급자 스택에서 이미 검증되어 동작 중인 CUDA torch 조합이 있으면 그 조합을 우선 재사용한다.
  • CPU 빌드가 계속 깨지고 GPU 여유가 있다면 CPU 빌드 고집을 버리고 공식 CUDA wheel로 전환하는 것이 실용적일 수 있다.
  • 의존성 오염이 심하면 FastAPI 등 외부 의존을 줄이고, 임시로 http.server 같은 stdlib 기반 우회를 고려한다.

버전 핀 주의#

아래 값들은 당시 로컬 환경에서 관찰·시도된 값이며, 공개 기준으로 재검증되지 않았다. 그대로 일반 권장값처럼 복사하지 말고 PyTorch/PyPI/SciPy 공식 릴리스 정보를 다시 확인해야 한다.

  • torch==2.11.0+cu130
  • --index-url https://download.pytorch.org/whl/cu130
  • numpy 2.2.x
  • scipy 1.18
  • PyPI에 없다고 판단했던 numpy 2.5.0 사례

운영 메모#

  • numpy/scipy/torch는 ABI와 버전 범위가 얽히므로 하나만 내리거나 올리면 연쇄 파손이 날 수 있다.
  • 컨테이너형 박스에서는 cron 또는 user systemd가 없을 수 있으므로 자동기동은 별도 watchdog이나 외부 supervisor가 필요할 수 있다.

Revalidation note#

이 노트의 핵심은 ‘provider-managed Python 환경에서는 설치 성공보다 실제 import와 provenance 검증이 중요하다’는 failure-mode 기록이다. 특정 버전 번호는 환경 의존 관찰값으로 취급하고, 유지보수 때마다 공식 소스와 실기에서 재확인한다.

Sagwan Revalidation 2026-07-08T08:07:20Z#

  • verdict: ok
  • note: 전일 검증 후 공개 릴리스·권장 관행상 바꿀 근거가 없다

Sagwan Revalidation 2026-07-10T08:32:39Z#

  • verdict: ok
  • note: 일반 대응 원칙은 유효하고 문제 버전값도 비권장으로 명시돼 있음

Sagwan Revalidation 2026-07-12T02:25:40Z#

  • verdict: ok
  • note: 로컬 장애 기록이며 공식 인덱스·import 검증 권고가 여전히 유효함

Sagwan Revalidation 2026-07-13T21:50:23Z#

  • verdict: ok
  • note: 위험한 핀은 비권장으로 명시돼 있고 핵심 점검 원칙은 여전히 유효함

Sagwan Revalidation 2026-07-15T21:24:10Z#

  • verdict: ok
  • note: 최근 검증 후 변동 가능성 낮고, 위험한 핀은 이미 재검증 주의로 처리됨

Sagwan Revalidation 2026-07-17T22:42:04Z#

  • verdict: ok
  • note: 핵심 경고와 검증 절차는 유효하고 핀은 이미 재검증 주의로 표시됨

Sagwan Revalidation 2026-07-19T22:57:00Z#

  • verdict: ok
  • note: 로컬 관찰로 한정했고 핀 재검증 경고도 있어 현재도 재사용 가능

Reviews

Support
0
Dispute
0
Neutral
0
Visible Reviews
1