2008-10-17 13 views
0

nVidia는 개발자가 대규모 병렬 아키텍처 및 벡터화 작업을 활용하여 그래픽 카드를 활용할 수 있도록하는 CUDA API를 출시했습니다. PyCUDA와 같은 라이브러리는 스크립팅 언어 개발자가 선택한 코드를 GPU로 보낼 수 있도록 만들어졌습니다.GPGPU VM : 가상 머신을 그래픽 처리 장치로 이식하기위한 모든 오픈 소스 프로젝트가 있습니까?

그리고 Erlang과 같이 강력한 형식의 동시성 친화적 인 언어를 기반으로 Parrot과 같은 다국어 가상 시스템을 설계하려는 노력이 증가하고 있습니다.

그래서 GPU의 모든 이점을 활용하도록 맞춤 설정된 가상 컴퓨터 환경을 코딩하는 오픈 소스 프로젝트가 있습니까?

모든 GPU를 활용할 수있는 주요 스크립팅 언어를 실행하기위한 강력한 형식의 모나드 보안 동시 환경을 제공하는 것이 매우 흥미로운 분야라고 생각합니다. 그러나 지금까지 Google에서 아무 것도 발견하지 못했습니다.

누구든지이 작업을하고 있습니까?

편집 : GPU를 공유하는 대신 전용 GPU를 사용하는 것이 좋습니다.

답변

0

아니요. 그래픽 카드는 제한된 자원의 일부를 유지 관리 잡일에 사용하기보다는 카드를 처리 할 수있는 전체 용량을 남겨두고 처리 할 수있는 기계에서 항상 호스트되기 때문에 .

즉, GPU는 VM 작업, 스크립트 처리 등을 위해 설계되지 않았기 때문에 적절하지 않습니다. 이러한 작업은 제대로 작동하려면 엄청난 양의 리소스가 필요합니다.

-Adam

6

완전히 GPU에 전체의 프로세스를 마이그레이션하려고 아무도의 그것은 그런 종류의 좋은 아니에요없는 이유 - 가지가는 예측할 수없는 코드는 평균 GPU의와 확률에 매우 많이 실행 및 메모리 모델. 심지어 CPU가 훨씬 많고 범용 코드를 더 잘 처리 할 수있는 짝수 셀도 여전히 일반적인 CPU 구성 요소를 가지고 있습니다.

GPU 인 경우 이러한 종류의 GPU는 적합하지 않으며 CPU가됩니다.

3

Java 및 .NET과 같은 최신 VM은 실제로 현재 GPU보다 훨씬 풍부한 기능을 지원합니다. 놀랍지 않은 양의 원시 연산 능력을 GPU에서 얻을 수 있지만 재귀 함수 호출이나 함수 포인터와 같이 여전히 누락 된 기본 기능이 있습니다. 이들은 기능적 또는 객체 지향 언어를 구현하는 데 필요합니다. GPU는 결국 이러한 기능을 갖지만 현재는 그렇지 않습니다.

즉, NVIDIA에는 이미 PTX이라는 공용 ISA가 있습니다. 간단한 VM 코드를이 언어로 변환하는 변환 프로그램을 작성하여 모든 NVIDIA GPU에서 실행할 수 있어야하지만이 작업을 수행하는 프로젝트를 알지 못합니다.

0

CUDA의 현재 NVIDIA 구현에서 주요 제한 요소 중 하나는 각 장치가 단일 CPU 스레드에서만 액세스 할 수 있다는 것입니다. 따라서 가상 컴퓨터는 물론, 동일한 실제 컴퓨터의 프로그램간에 장치를 공유하는 것은 불가능합니다.

1

VM은 장치를 가상화하고 장치의 효율적인 사용에 중요한 PCIE 및 기타 버스를 노출시키지 않으므로 VM을 사용하여 CUDA 하드웨어에 액세스 할 수 없습니다.VM 해킹이 있지만 사용할 수있는 보안 취약점이 있습니다.

OpenSolaris/BSD에서 감옥을 사용하여 그러한 보증을 제공 할 수 있지만 이러한 운영 체제 용 CUDA 드라이버는 없습니다.