MIG 를 이용하여 56개의 인스턴스를 생성하여 인퍼런스용으로 사용하게 될 경우에 최적의 퍼포먼스를 낼 수가 있으며 256개의 CPU 쓰레드와 1TB 시스템 메모리를 통하여 56명의 접속자가 장비에 접속하거나 56개의 인퍼런스 작업을 동시에 진행하여도 문제가 없을것으로 예상됩니다 아직까지 실험데이터는 없습니다
메모리할당이 가능한 범위라고 이해하시면 될것 같습니다 효율적인 스펙 할당에 있어서는 유휴메모리를 최대한 없애는것이 좋습니다
DGX A100 시스템은 서버 OS 를 기반으로 하고 있으며 Docker 컨테이너 역시 원활한 GUI 환경을 지원하지 않습니다 CAD 프로그램은 호환이 힘들것으로 예상됩니다
25명에 대해서는 절대적인 기준이 아닙니다 모델 사이즈에따라서 동작 시키기 위한 GPU 메모리가 필요한데 많이 사용하는 Bert 나 Imagenet 등의 트레이닝을 위해서는 10GB 이상의 GPU메모리를 필요로 합니다 그래서 25명정도라고 설정된것이며 56명은 최소단위로 MIG 인스턴스를 생성하였을때 56개 까지 생성 가능하다는 뜻입니다
MIG Device 는 컨테이너에서 1개의 Device 만 Enable 하는것을 권장 드리고 있습니다 MIG 기능이 활성화 되는 GPU 는 P2P 및 NVLink 가 비활성화 되기 때문이며 동시 실행 컨테이너 수 제한 기능은 Docker CE 에서는 지원되지 않는것으로 알고 있습니다
일반 CPU 서버와 같은 서비스용 시스템이 아니기 때문에 장비 자체에 특별한 보안관련 솔루션은 포함되어있지 않습니다 일반적인 OS 용 Firewall 이나 상단 네트워크 보안장비 들이 필요하다고 보시면 될 것 같습니다
소음은 풀로드시 약 100 dbA 를 넘어가는것으로 알고있습니다 소비전력이 큰 장비이다보니 (6.5kW) 충분한 전력설계와 이중화 구성을 통하여 장비가 셧다운되지 않도록 운영하는것이 중요하다고 보실 수 있습니다
사용중인 모든 유저가 MIG 기능을 제어할 수 있는것이 아니기 때문에 관리자가 작업을 해 주는것이 좋으며 유저에 따라 GPU 스펙을 다르게 가져갈 수도 있습니다. 단 모드 변경시에 GPU 는 IDLE 상태여야하며 권한레벨에 따라서 디바이스 자체를 FIX 할 수는 없습니다
MIG 는 베어메탈 환경에서 논리적으로 분할하여 사용하게 되며 vGPU 는 하이퍼바이저 위에서 정해진 프로파일대로 할당을 하게 되며 vGPU와는 달리 MIG 는 별도의 라이센스가 필요 없습니다
실질적으로 56유저가 동시에 사용하는 케이스는 아직까지 없어서 실측치는 없지만 각각의 56 MIG Device 의 성능은 동일한 스펙으로 Slice 되기 때문에 동일한 성능이라고 보시면 되겠습니다
vGPU 할당을 위한 프로파일이 FIX 되어 있어 프로파일에 있는 방식으로만 할당 가능하다고 보면 될 것 같습니다
Nvidia 홈페이지에 GPU 드라이버 및 Cuda Toolkit 설치 파일을 다운로드 받을 때 환경을 선택하게 됩니다 보통 Linux-64 bit 를 선택하여 다운로드 하게 되며 리눅스 버전보다는 사용하는 GPU의 모델에 따라 지원하는 드라이버 및 Cuda 버전이 나뉘게 된다고 보시면 됩니다
VM 상에서 GPU를 사용하는 방법은 패쓰스루 방식 과 vGPU 방식이 있는데 그리드 환경 및 vGPU를 사용하기 위해서는 NVIDIA 라이센스 정책 상 라이센스가 없으면 vGPU 할당이 불가합니다
사용하시게 될 솔루션이 어느정도의 GPU 스펙을 요구하는지를 우선적으로 고려하셔야 할 것 같습니다
VM 의 경우에는 하이퍼바이저가 설치되어있는 시스템의 스펙에 따라서 동작환경이 바뀌거나 드라이버 이슈등이 발생할 수 있기 때문에 Docker 처럼 공개 및 불특정 대상에게 배포는 힘들 것 같습니다
성능 향상의 경우를 객관적으로 판단하기 위해서는 각 GPU의 스펙시트 등을 확인하여 XX TFOPS 등으로 부동소수점 연산능력으로 판단을 하셔야 할 수 있습니다
vGPU 를 할당한 VM 에서 사용하는 작업에 따라서 레이턴시가 다릅니다 알기쉽게 게임을 예로들면 실시간으로 대응을 해야하는 FPS 게임등의 경우에도 레이턴시 지연으로 인한 딜레이를 개개인마다 차이가 있기 때문에 vGPU 를 2개정도까지 나누어도 레이턴시가 느껴진다고 하는 유저도 있는반면에 4개까지 나뉘어도 '사용할만하다' 라고 대답하는 유저가 있기때문에 실 사용 유저들의 피드백을 기준으로 판단해야할 것입니다
GPU 모델마다 vGPU 를 할당할 수 있는 프로파일이 지정되어 있으며 많은 수로 vGPU를 나누게될 경우에 질문주신대로 레이턴시가 증가하게됩니다 그러므로 일반 사무작업과 같은 수준의 경우에는 vGPU를 많이 나누어도 실 사용에 크게 무리가 없는 반면에, 실시간으로 대응해야하는 작업의 경우에는 vGPU를 최소한으로 나누어서 사용해야하며, 레이턴시나 성능의 경우에는 절대적인 기준이 없습니다
vGPU 는 GPU 의 자원을 VM 에 할당하는 개념이며 MIG 는 GPU의 사양을 논리적인 방식으로 GPU를 Slice 하여 Docker 상에서 사용하기 위한 개념이므로 vGPU 와 MIG 는 포지셔닝이 다르다고 보시면 되겠습니다