나는 CUDA와 OpenCL에 대해 강한 감정을 가지고 있지 않습니다. 아마도 OpenCL은 개방형 표준이라는 점에서 장기적인 미래입니다.
그러나 현재의 NVIDIA 대 GPGPU 용 ATI 카드 (그래픽 성능이 아니라 GPGPU)에 대해 강한 의견이 있습니다. 이를 위해 현재 상위 500 대 클러스터 목록 에서 NVIDIA가 AMD 4 시스템을 1로, gpgpu.org 에서 NVIDIA 에 대한 검색 결과 (문서, 온라인 리소스 링크 등)를 이끌고 있음 을 지적하겠습니다 . AMD 6 : 1의 결과보다 많습니다.
이 차이의 큰 부분은 사용 가능한 온라인 정보의 양입니다. NVIDIA CUDA Zone 과 AMD의 GPGPU Developer Central을 비교해보십시오 . 시작하는 개발자를위한 항목의 양은 비교에 가깝지 않습니다. NVIDIAs 사이트에서는 아마도 당신과 같은 문제를 해결하는 사람들이 작성한 수많은 문서와 기고 코드를 찾을 수 있습니다. NVIDIA 및 다른 곳에서 온 수많은 온라인 수업과 개발자의 모범 사례 가이드 등과 같은 매우 유용한 문서를 찾을 수 있습니다. 무료 개발 도구 (프로파일 러, cuda-gdb 등)의 가용성은 NVIDIA 방식을 압도적으로 기울입니다.
(편집자 :이 단락의 정보는 더 이상 정확하지 않습니다.) 그리고 일부 차이점은 하드웨어이기도합니다. AMD 카드는 피크 플롭 측면에서 더 나은 사양을 가지고 있지만 그 중 상당 부분을 확보하려면 문제를 완전히 독립적 인 많은 스트림 프로세서로 분리해야 할뿐만 아니라 각 작업 항목도 벡터화해야합니다. GPGPUing 코드가 충분히 어렵다는 점을 감안할 때 추가 아키텍처 복잡성은 일부 프로젝트를 만들거나 중단하기에 충분합니다.
이 모든 결과는 NVIDIA 사용자 커뮤니티가 계속 성장하고 있다는 것입니다. 내가 아는 3 ~ 4 개 그룹 중 GPU 클러스터 구축을 고려하고있는 그룹 중 누구도 AMD 카드를 심각하게 고려하고 있지 않습니다. 이는 NVIDIA 측에서 더 많은 그룹이 논문을 작성하고 코드를 기고하는 등을 의미합니다.
저는 NVIDIA 실이 아닙니다. 이 방식이 아니고 똑같이 매력적인 GPGPU 플랫폼이 두 개 (또는 그 이상!) 있었으면 좋겠습니다. 경쟁이 좋다. 아마도 AMD는 곧 게임을 강화할 것이며 다가오는 퓨전 제품은 매우 매력적으로 보입니다. 그러나 누군가에게 오늘 구매할 카드와 지금 당장 노력을 기울이는 데 시간을 할애 할 장소에 대한 조언을 제공하면서 양심적으로 두 개발 환경이 똑같이 좋다고 말할 수는 없습니다.
추가 편집 : 위의 내용은 원래 질문에 대한 답변 측면에서 약간 타원이라고 생각하므로 좀 더 명확하게 만들겠습니다. 하드웨어에서 얻을 수있는 성능은 무한한 시간을 사용할 수있는 이상적인 세상에서 기본 하드웨어와 프로그래밍 언어의 기능에만 의존합니다. 그러나 실제로 투자 한 고정 된 시간으로 얻을 수있는 성능의 양은 개발 도구, 기존 커뮤니티 코드베이스 (예 : 공개적으로 사용 가능한 라이브러리 등)에 크게 의존합니다. 이러한 고려 사항은 모두 NVIDIA를 강력하게 지적합니다.
(편집자 :이 단락의 정보는 더 이상 정확하지 않습니다.) 하드웨어 측면에서 AMD 카드의 SIMD 장치 내에서 벡터화에 대한 요구 사항은 NVIDIA 하드웨어보다 종이 성능을 훨씬 더 어렵게 만듭니다.