Nvidia 카드를 사용하여 CPU 및 GPU에서 OpenCL 프로그래밍을 하시겠습니까?

Nvidia 카드를 사용하여 CPU 및 GPU에서 OpenCL 프로그래밍을 하시겠습니까?

Ubuntu 10.10과 Nvidia GTX 480 그래픽 카드가 설치된 bi Xeon 시스템이 있고 CPU와 GPU에서 OpenCL을 사용하고 싶습니다.

apt-get을 사용하여 최신 Nvidia 드라이버(nvidia-current)를 설치했고 Nvidia 페이지에서 최신 CUDA Toolkit(3.2)을 다운로드하여 설치했습니다.

하지만 이를 통해 CPU가 아닌 Nvidia GPU에서만 OpenCL 코드를 실행할 수 있습니다.

그런 다음 인터넷에서 ATI SDK가 CPU에서 OpenCL 코드를 실행할 수 있다는 기사를 읽었습니다.

최신 버전의 ATI 드라이버를 설치한 다음 SDK를 컴파일해 보았습니다.

그런 다음 CPU에서는 코드를 실행할 수 있었지만 더 이상 GPU에서는 실행할 수 없었습니다.

Nvidia GPU와 Xeon CPU 모두에서 OpenCL 코드를 실행할 수 있는 방법이 있습니까?

답변1

Nvidia CUDA 및 ATI Stream OpenCL 구현은 모두 Khronos ICD 확장을 지원하므로 clGetPlatformIDs를 호출하면 두 개의 서로 다른 플랫폼을 얻게 됩니다. 따라서 이러한 플랫폼에서 CPU/GPU 장치를 쿼리할 수 있으며 물론 ATI 플랫폼은 CPU를 반환합니다. 장치 및 Nvidia 플랫폼은 GPU 장치를 반환합니다.

그런 다음 이러한 장치에 CommandQueues를 만들고 커널을 시작할 수 있습니다. 물론 이는 GPU와 CPU 간에 작업을 공유하는 것이 쉽지 않다는 것을 의미하지만, 적어도 앱에 CPU에서 GPU로 전환하는 버튼이 있으면 매우 쉬울 것입니다.

관련 정보