이 응답은 너무 늦을 수 있지만 어쨌든 주목할 가치가 있습니다. 에뮬레이터 또는 LLVM 백엔드를 사용하려면 CUDA 장치 드라이버 (libcuda.so)를 설치하지 않고도 GPU Ocelot ( 이 중 저는 핵심 기여자 중 한 명 )을 컴파일 할 수 있습니다. NVIDIA GPU가없는 시스템에서 에뮬레이터를 시연했습니다.
에뮬레이터는 이전 GPU가 지원하지 않는 기능을 포함 할 수있는 PTX 1.4 및 PTX 2.1 사양을 충실하게 구현하려고합니다. LLVM 변환기는 CUDA가 GPU뿐만 아니라 멀티 코어 CPU를 프로그래밍하는 효과적인 방법이 될 수 있도록 PTX에서 x86으로 정확하고 효율적인 변환을 위해 노력하고 있습니다. -deviceemu
꽤 오랫동안 CUDA의 사용되지 않는 기능 이었지만 LLVM 변환기는 항상 더 빨랐습니다.
또한 에뮬레이터에는 정렬 된 메모리 액세스, 공유 메모리에 대한 액세스가 올바르게 동기화되고 전역 메모리 역 참조가 할당 된 메모리 영역에 액세스하는지 확인하기 위해 여러 가지 정확성 검사기가 에뮬레이터에 내장되어 있습니다. 우리는 또한 주로 gdb에서 영감을 얻은 명령 줄 대화 형 디버거 를 CUDA 커널, 설정 중단 점 및 감시 점 등을 통해 단일 단계로 구현했습니다 . 이러한 도구는 특히 CUDA 프로그램의 디버깅을 촉진하기 위해 개발되었습니다. 유용 할 수 있습니다.
Linux 전용 측면에 대해 죄송합니다. 우리는 Windows 브랜치 ( Mac OS X 포트 포함 )를 시작했지만 엔지니어링 부담은 이미 우리의 연구 활동을 강조 할만큼 충분히 큽니다. 시간과 관심이있는 사람이 있으면 Windows 지원을 제공 할 수 있습니다!
도움이 되었기를 바랍니다.