GPU 샌드박스는 비공개 프리뷰 상태이며, 이미 CPU 전용 샌드박스를 사용하고 있더라도 조직이 허용 목록에 등록되어야 합니다. 액세스를 요청하려면 계정 담당 팀에 문의하거나 forge-support@coreweave.com으로 이메일을 보내세요. 조직이 허용 목록에 등록되기 전까지 GPU 샌드박스 생성 요청은
CWSANDBOX_GPU_NOT_ALLOWED 오류와 함께 실패합니다.격리 수준은 배치 모드에 따라 달라집니다
GPU 가상화는 서버리스 용량에서만 지원됩니다. 직접 소유한 CKS 클러스터에서는 GPU 샌드박스가 가상화되지 않습니다.시작하기 전에
다음 항목이 필요합니다.- 조직에 GPU 샌드박스가 활성화되어 있어야 합니다.
-
서버리스 예시에 사용할 Forge API 키. CKS 배치에는
SANDBOX_USERID 및 액세스 관리(IAM) 액션이 있는 CoreWeave API 액세스 토큰이 필요합니다. 사용자 인증 정보 선택 및 조회를 참조하세요. -
Python 클라이언트
cwsandbox1.14.2 이상:
GPU 요청의 작동 방식
두 배치 모드 모두에 동일한 규칙이 적용됩니다.- GPU 요청은 GPU만 예약합니다. GPU와 함께 실행할 작업에 맞춰 CPU와 메모리를 명시적으로 설정하세요. CPU와 메모리 값을 생략하면 정책의
defaultCpu및defaultMemory가 사용될 수 있지만, 최종적으로 결정된 할당은 여전히 정책의 리소스 요구 사항을 충족해야 합니다. - 샌드박스는 GPU를 통째로 할당받습니다. GPU는 샌드박스 간에 공유, 분할 또는 시분할되지 않습니다.
- 샌드박스는 단일 노드에서 실행됩니다. 서버리스 용량에서는 샌드박스에 정확히 GPU 1개가 할당됩니다. CKS 클러스터에서는 샌드박스의 최대 크기가 노드 하나 전체이며, 여기에 포함되는 GPU 수는 GPU 유형에 따라 다릅니다. GPU가 8개인 노드에서는 CKS 샌드박스가 GPU를 1개부터 최대 8개까지 요청할 수 있습니다. GPU를 여러 개 요청하려면 요청한 수만큼의 가용 GPU와 요청한 CPU 및 메모리가 하나의 노드에서 동시에 확보되어야 합니다.
- GPU 유형은 선택 메뉴가 아니라 필터입니다. 선택 항목인
type키는 러너가 제공하는 GPU 유형 중 하나와 대소문자까지 정확히 일치해야 합니다. 러너의 모든 GPU를 허용하려면 이 키를 생략하세요.
서버리스 용량에서 GPU 샌드박스 실행하기
서버리스 배치는 자체 러너와 정책이 필요하지 않습니다. CoreWeave가 정책과 하드웨어를 소유합니다. GPU 샌드박스는 가상 머신에서 실행되므로 신뢰할 수 없는 코드를 실행하는 데 적합합니다.사용 가능한 GPU
서버리스 용량에서는 NVIDIA RTX PRO 6000 Blackwell Server Edition이라는 단일 GPU 모델을 사용합니다. 서버리스 용량에서는 GPU 1개짜리 샌드박스만 지원됩니다. GPU가 2개 이상인 샌드박스를 실행하려면 CKS 클러스터를 사용하세요.
이 GPU를 탑재한 인스턴스 유형은 High Memory와 Standard Memory 두 가지입니다. 두 유형은 GPU가 아니라 호스트 RAM이 다르며, 샌드박스에는 동일한 GPU 유형을 제공하므로 샌드박스가 어느 유형에 배치될지는 선택할 수 없습니다.
플랫폼이 CoreWeave 관리형 컴퓨팅에서 GPU를 부여하도록 GPU 요청에서
type 키를 제외하세요. 여기서도 이 필드를 사용할 수 있지만, 선택이 아닌 필터 역할을 합니다. 어떤 러너와도 일치하지 않는 type을 지정하면 CWSANDBOX_RUNNER_UNAVAILABLE 오류로 실패합니다. 지원되지 않는 유형을 받은 러너는 CWSANDBOX_PLACEMENT_CONSTRAINT_UNSATISFIED 오류를 반환하며 이를 거부합니다.
다음 예시와 같이 resources를 사용하여 GPU 수와 함께 CPU와 메모리를 선택하세요.
디스크는 CPU, 메모리, GPU와 함께 요청하는 것이 아니라 별도로 요청합니다. ResourceOptions에는 디스크 필드가 없습니다. 컨테이너의 루트 파일 시스템은 노드 로컬 임시 저장소이며, 샌드박스는 이 저장소의 일정 부분을 예약하지 않습니다. 따라서 샌드박스 내부의 df는 샌드박스별 할당량이 아닌 노드의 파일 시스템을 보고합니다. 전용 쓰기 가능 경로가 필요하면 스크래치 볼륨을 선언하세요:
medium="memory"를 설정하세요. 메모리 기반 볼륨은 반드시 크기를 선언해야 하며, 한 컨테이너에 있는 메모리 기반 볼륨의 합계는 해당 컨테이너 메모리 요청량의 80%를 초과할 수 없습니다.
runtime_class도 설정하지 마세요. GPU를 요청하면 GPU 가상 머신 런타임 클래스가 자동으로 선택되지만, 직접 고정한 런타임 클래스는 지정한 그대로 사용됩니다. 따라서 GPU를 요청하면서 CPU 클래스를 고정하면 GPU에 접근할 수 없는 샌드박스가 생성됩니다.
샌드박스 생성
FORGE_API_KEY를 Forge API 키로 설정한 다음, 아래 예시를 실행하세요. 이 예시는 GPU 1개, CPU 2개, 메모리 8GiB로 샌드박스를 생성한 후 nvidia-smi가 보고하는 GPU를 출력합니다.
- Python
- TypeScript
이 예제는 평면 구조의
AuthHeaders를 통해 Forge API 키를 전달합니다.resources dict는 요청량과 제한을 같은 값으로 설정합니다. "gpu": 1은 "gpu": {"count": 1}의 축약형입니다. 서버리스는 샌드박스당 GPU 1개만 지원하므로 count 값을 1로 유지하세요.resource_gpu 속성은 플랫폼이 확정한 GPU 할당(예: {'count': 1})을 반환합니다.CKS 클러스터에서 GPU 샌드박스 실행하기
CKS 배치에서 Admin은 샌드박스가 사용할 수 있는 GPU와 그 수를 결정합니다. 러너는 클러스터의 노드에 있는 GPU 유형을 제공하며, 러너가 가진 정책은 샌드박스가 요청할 수 있는 범위를 제한합니다.사전 요구 사항
CKS에서 GPU를 요청하기 전에 다음을 완료하세요.- GPU 노드와
Ready상태의 러너가 있는 CKS 클러스터. 자체 컴퓨팅 사용하기를 참조하세요. - 해당 러너에 GPU를 허용하는 정책.
resources아래의maxGpuCount는 샌드박스 하나가 요청할 수 있는 GPU 수의 한도를 지정합니다. 한도를 두지 않으려면 이 필드를 생략하고, GPU 요청을 거부하려면0으로 설정하세요. GPU 샌드박스가 클러스터의 기본 런타임 클래스로 실행되도록defaultGpuRuntimeClass는 설정하지 마세요.cw-kata-nvidia-gpu와 같은 Kata 기반 GPU 런타임 클래스는 고객 CKS 클러스터에서 지원되지 않습니다. 전체 필드는 샌드박스 정책 설정을 참조하세요. SANDBOX_USERIAM 액션과CWSANDBOX_API_KEY로 설정된 CoreWeave API 액세스 토큰.
러너의 GPU 유형 찾기
각 러너는 노드가 탑재한 GPU 유형을 표시합니다.type을 선택하기 전에 목록을 확인하세요.
type으로 전달할 정확한 문자열 값입니다. 일치 여부는 대소문자를 구분하므로 B200과 b200은 같은 유형이 아닙니다. 대신 GPU 유형으로 러너를 필터링하려면 list_runners()에 gpu_type을 전달하세요. 자세한 내용은 사용 가능한 러너 검색을 참조하세요.
샌드박스 만들기
다음 예시는 CKS에 특정 유형의 GPU 2개, CPU 8개, 메모리 32 GiB를 갖춘 샌드박스를 배치합니다.[GPU-TYPE]을 러너가 지원하는 유형 중 하나로 바꾸거나, type 키를 삭제하여 러너의 모든 GPU를 허용하세요. 샌드박스가 클러스터의 기본 런타임 클래스를 사용하도록 runtime_class는 설정하지 마세요.
runner_ids=["[RUNNER-ID]"]를 추가하세요. resource_gpu의 확인된 할당은 요청한 유형이 있더라도 개수만 보고합니다(예: {'count': 2}).
GPU 개수는 정책의 maxGpuCount와 단일 노드의 사용 가능한 GPU 수에 의해 한도됩니다. 정책 한도를 초과하는 요청은 CWSANDBOX_RESOURCE_CEILING_EXCEEDED 오류와 함께 실패합니다. 러너가 제공하지 않는 type이거나 대소문자가 다른 경우, 적합한 러너를 찾지 못해 CWSANDBOX_RUNNER_UNAVAILABLE 오류와 함께 실패합니다.
컨테이너 이미지
다음 예시에서는 서버리스 용량과 앞에서 설정한 Forge API 키를 사용합니다. 플랫폼은 GPU 샌드박스 내부에 NVIDIA 드라이버와nvidia-smi 도구를 제공하므로 기본 이미지가 이미 GPU를 인식할 수 있습니다. CUDA 애플리케이션을 실행하려면 코드에 필요한 CUDA 런타임과 라이브러리를 포함하는 이미지(예: pytorch/pytorch 또는 nvidia/cuda 이미지)를 사용하세요.
이미지를 GPU에 맞추세요. RTX PRO 6000 Blackwell Server Edition은 컴퓨트 capability 12.0(sm_120)이며 CUDA 12.8 이상이 필요하고, PyTorch 2.7이 이를 위해 빌드된 첫 릴리스였습니다. 이전 이미지도 GPU의 이름을 올바르게 보고하는데, 이는 드라이버를 통해 디바이스 메타데이터를 조회하기 때문입니다. 그런 다음 첫 번째 커널 실행에서 CUDA error: no kernel image is available for execution on the device 오류와 함께 실패합니다. 디바이스 이름을 신뢰하기보다는 프레임워크가 sm_120을 나열하는지 확인하세요:
일반적인 오류
다음 단계
- 샌드박스 설정에서는 모든
ResourceOptions필드, QoS 클래스, timeout을 다룹니다. - 샌드박스 정책 설정에서는 Admin이 CKS 러너에 설정하는 GPU, 런타임 클래스, 리소스 제약 조건을 설명합니다.
- 시작하기에서는 CPU 전용 서버리스 샌드박스와 사용자 인증 정보를 다룹니다.
- 자체 컴퓨팅 사용하기에서는 러너를 설정하고 클러스터에서 첫 번째 샌드박스를 실행하는 방법을 다룹니다.