기본적으로 단일 GPU (NVidia K20c)에서 여러 MPI 등급을 실행하고 싶습니다. MPS 및 케플러 Hyper-Q의 존재를 알고 있습니다.하나의 GPU에서 여러 MPI 랭크를 실행할 때 정말로 MPS가 필요합니까, 아니면 Kepler의 Hyper-Q로 충분합니까?
그러나 내 질문은 Hyper-Q 자체가 내 필요에 충분합니까? 아니면 MPS를 사용해야합니까? 위의 하이퍼 -Q 링크에 따르면 "Hyper-Q를 사용하려면 별도의 코딩 작업이 필요하지 않으며, CUDA 5를 설치 한 Tesla K20 GPU와 환경 변수를 설정하면 여러 MPI 순위에서 GPU를 공유 할 수 있습니다. 그러면 Hyper-Q를 사용할 수 있습니다. "
MPS가 전혀 필요 없다는 뜻입니까?
p.s. 또한 비슷한 주제에 대해 다음 질문을 알고 있지만 내 질문에 명확하게 대답하지 않는 것 같습니다. Do I have to use the MPS (MULTI-PROCESS SERVICE) when using CUDA6.5 + MPI?
감사합니다.
빠른 응답을 보내 주셔서 감사합니다. 그러나 Hyper-Q가 어떤 역할을하는지 명확하지 않습니다. 위의 링크에 따르면, Hyper-Q 자체는 "호스트와 GPU간에 32 개의 작업 대기열을 제공하여 GPU에서 여러 MPI 프로세스를 동시에 실행할 수있게하는 것"이라고 Fermi 아키텍처는 여러 순위의 실행을 직렬화합니다. Hyper-Q가 모든 순위를 직렬화하는 경우 Hyper-Q의 요점은 무엇입니까? 또는 Hyper-Q는 하드웨어 기능 일 뿐이며 원래의 Hyper-Q 게시에서 생략 된 중요한 점인 병렬 처리를 사용하려면 MPS와 함께 사용해야합니다. 감사! – rsm
단일 프로세스에서 오는 CUDA 작업과 여러 프로세스에서 오는 CUDA 작업 간에는 차이점이 있습니다. Hyper-Q는 단일 프로세스에서 발생하는 요청에 대한 동시성에 대한 일부 장벽을 제거합니다. 그러나 Hyper-Q와 관련없는 CUDA 동작으로 인해 여러 프로세스의 요청이 계속해서 발생합니다. MPS는 여러 프로세스/순위에서 CUDA 작업을 수집하여 단일 프로세스에서 온 것처럼 GPU에 발급하여 Hyper-Q를 적용 할 수있는 "퍼널"역할을합니다. –
설명 주셔서 대단히 감사합니다. – rsm