2013-02-01 3 views
1

여러 대의 저가형 컴퓨터가 클라우드 시나리오를 통해 요청/응답을 통해 중앙 서버에있는 GPU로 CUDA 호출을 할 수 있습니까? 이 로우 엔드 컴퓨터가 "가상"GPU를 소유 한 것처럼 만듭니다.네트워크화 된 CUDA GPU

답변

2

나는 비슷한 문제를 해결해야했습니다.

데이터베이스가 로우 엔드 머신에 있었고 로컬 네트워크에서 GPU 클러스터를 사용하고있었습니다.

데이터베이스를 구문 분석하기 위해 로우 엔드 시스템에서 작은 클라이언트를 만들고 google protocol buffers으로 데이터를 직렬화하고 서버에 zmq sockets으로 보냅니다. 데이터 분배를 위해 게시자/가입자 소켓을 asynchrouns 할 수 있습니다.

서버 쪽에서 데이터를 비 직렬화하고 계산을 실행하는 CUDA 프로그램이 있습니다 (대몬화된 응용 프로그램 일 수도 있으므로 항상 매번 실행하지 않아도됩니다).

데이터가 서버에서 준비되면 클라이언트에서 동기 메시지 (요청/응답 소켓)를 발행 할 수 있고 서버가 메시지를 수신하면 함수 래퍼를 CUDA 커널에 호출합니다.

클라이언트에서 결과를 다시 처리해야하는 경우 역방향 경로를 따라 클라이언트로 데이터를 다시 보낼 수 있습니다.

데이터가 이미 서버에있는 경우 훨씬 쉽습니다. 메시지를 보내고 함수를 호출하려면 요청/응답 소켓 만 있으면됩니다.

zmq 설명서를 확인하면 많은 프로그래밍 언어로 많은 예제가 있습니다.