2016-11-07 1 views
3

CPU 또는 GPU에서 실행할 수있는 알고리즘을 사용하여 라이브러리를 개발하고 싶습니다. GPU는 Nvidia가 될 수 있습니다 (알고리즘은 CUDA를 사용합니다). 그렇지 않으면 알고리즘이 OpenCL을 사용합니다.CUDA/OpenCL 유닛 테스트를 위해 GPU를 에뮬레이트 할 수 있습니까?

때문에 나는 아마이 프로젝트에 GPU를 에뮬레이트하고 싶은 :

  • 나는 소프트웨어를 개발하기 위해 다른 컴퓨터를 사용하고 그들 중 일부는 GPU가 없습니다.

  • 소프트웨어는 마침내 GPU를 가질 수있는 서버에서 실행되며 단위 테스트는 실행되고 통과되어야합니다.

단위 테스트를 위해 GPU를 에뮬레이션 할 수있는 방법이 있습니까? 다음 링크에서

은 :

GPU Emulator for CUDA programming without the hardware

그들은 솔루션 만 CUDA를 들어,하지 OpenCL을 위해 그들이 제안하는 소프트웨어를 보여 "GPUOcelot은"더 이상 적극적으로 유지되지 않습니다.

+0

성능은 CPU에서 상당히 악화되지만 알고리즘이 작동하는지 테스트 할 수있는 방법이 있는지, 그리고 GPU가 설치되어 있지 않으면 제대로 프로그래밍되었는지를 알아야합니다. 단위 테스트에서 데이터베이스가 목록 화되는 것을 모방하는 라이브러리가 있습니다. 예를 들어, fakemongo https://github.com/fakemongo는 SQL 함수가 올바른지 테스트하기 위해 mongodb 데이터베이스를 에뮬레이션합니다. [하드웨어없이 CUDA 프로그래밍을위한 GPU 에뮬레이터]의 – Rob

+0

가능한 복제 (http://stackoverflow.com/questions/3087361/gpu-emulator-for-cuda-programming-without-the-hardware) 그들은 단지 말 링크에서 –

+1

cuda (opencl에 관한 정보가 아님)와 솔루션은 적극적으로 유지 관리되지 않는 소프트웨어를 제안합니다. – Rob

답변

3

에뮬레이션의 의미에 따라 다릅니다. GPU의 속도를 에뮬레이션 할 수 없습니다.

GPU는 구조적으로 CPU와 매우 다르며 많은 작업 스레드 (1000s, 10000s, ...)가 있기 때문에이를 사용합니다. CPU는 코드를 병렬화하더라도 소수의 스레드 만 가질 수 있습니다. 또한 서로 다른 명령어 세트를 가지고 있습니다.

하지만 NVIDIA GPUs의 경우 NVEmulate, AMD의 경우 OpenCL Emulator-Debugger과 같은 특수 소프트웨어를 사용하여 실행을 에뮬레이트 할 수 있습니다.

관련 질문 : GPU Emulator for CUDA programming without the hardware, 여기에는 CUDA 에뮬레이션을 위해 gpuocelot이 권장됩니다.

+0

고맙습니다.이게 내가 찾고 있던 것입니다. 내 컴퓨터에는 GPU가 있지만 때로는 gpu가없는 오래된 노트북을 사용하여 소파에 코드를 작성하는 것을 선호하며 코드가 작동하는지 알아야합니다. 이 경우에 – Rob

+1

@Rob을 사용하면 rCUDA를 살펴볼 수 있습니다. GPU가없는 노드에서 원격 GPU에 액세스 할 수 있습니다. 참조 : http://www.rcuda.net/index.php/what-s-rcuda.html –

관련 문제