본문 바로가기

nVidia

(2)

[kubernetes] Extended Resource로 나만의 리소스 제약 (request, limit) 만들어서 사용하기 - GPU RAM 나눠쓰기 여기서 말하는 Resource는 "CRD(Custom Resource Definition)"의 Resource가 아니라, 정말 "자원"개념의 "Resource"다. GPU는 왜 나눠쓸 수 없을까? 나는 NVIDIA RTX 8000 GPU를 Node에 1개 달아둔 환경에서 작업중이다. NVIDIA RTX 8000은 Datacenter에서 사용할 수 있도록 허용된 NVIDIA 드라이버 라이선스가 있으며, 무려 VRAM이 48GB 나 된다!!! Kubernetes에는 리소스 쿼터라는 개념이 있어서, CPU, RAM을 나눠서 사용할 수 있도록 기능을 제공해 준다. 관련링크 : kubernetes.io/docs/concepts/configuration/manage-resources-containers/ 예를들어,..
[kubernetes] node에 달린 NVIDIA GPU를 Pod가 사용하지 않도록 하기 오랜만? 오래만에 글이다. ( 라고 맨날쓴다. ㅎ ) kubernetes에서 GPU를 사용하다 보니 문제가 몇가지 생겨서 이를 해결하는 방법을 찾아, 기록으로 남겨두고자 한다. 너무 기니깐.. 정리하면 조건 : Kubernetes에서 Container Runtime을 Docker로 사용하고, NVIDIA GPU 사용을 위해 docker의 default-runtime을 nvidia-docker로 설정한 경우. 문제 : Kubernetes에서 뜨는 Pod에서 GPU 자원을 못쓰게 하고 싶은데, docker nvidia runtime으로 인해 Container가 무조건 GPU를 보게 되는 상황. 해결 : 환경 변수로 CUDA_VISIBLE_DEVICES= 값을 줘, CUDA Library 단에서 GPU 자원을..