2010-05-26 3 views
4

GPU 컴퓨팅에 잘 맵핑해야하는 (재정적 인) 작업이 몇 가지 있습니다.하지만 OpenCL 또는 DirectCompute를 사용해야하는지 잘 모르겠습니다. GPU 컴퓨팅을 해봤지만 오래 전 (3 년)이었습니다. 그 당시에는 OpenGL을 통해 해냈습니다.GPU 프로그래밍을위한 DirectCompute 대 OpenCL?

일부 OpenCL 프레젠테이션을 보았는데 정말 멋지게 보입니다. DirectCompute에 대해서는 아직 보지 못했지만, 또한 좋을 것으로 기대합니다.

저는 현재 플랫폼 간 호환성에 관심이 없습니다. 게다가 두 모델이 서로 비슷해질 때 큰 두통을 일으킬 정도로 유사하지 않을 것으로 기대합니다.

그래서이 두 사람 중 누구도 사용 했습니까? 특히 DirectCompute? OpenCL (및 CUDA)과 비교하면 어떻습니까?

+0

어떤 하드웨어를 가지고 있는지, 어떤 운영 체제를 대상으로 할 것인지, 코드를 원하는지 여부에 따라 달라집니다. 교차 플랫폼. –

+0

DirectCompute는 Windows에서만 사용할 수 있으며 DirectX 10 또는 최신 비디오 카드가 필요합니다. –

답변

3

그래픽이 아닌 계산을 고려할 때 커뮤니티 도움의 길을 더 많이 찾을 가능성이 있기 때문에 DirectCompute보다 OpenCL을 선호하는 것이 좋습니다.

이미 하나의 응용 프로그램을 다른 응용 프로그램과 병렬 처리하는 작업이 비교적 간단하다는 것을 이미 알고 있다면 동일한 이유로 OpenCL과 DirectCompute 모두에서 CUDA를 고려할 수 있습니다.

이전에 OpenGL에서 작업했습니다. 그들 중 누구라도 그것과 비교해서 사용하는 즐거움이되어야합니다!

1

저는 OpenCL을 배우고 있습니다. 내가 당신에게 비슷한 결정을 내릴 때 OpenCL의 가장 큰 장점은 이기종 환경 (CUDA 및 다른 솔루션과는 반대)에 유리합니다. 나는 하드웨어 만이 아니라 OS도 의미한다. OpenCL은 예를 들어 CUDA보다 훨씬 더 자유로운 표준입니다.

코드를 작성하는 것은 비용이 많이 드는 작업입니다. 나는 미래에 어떤 gpgpu 코드라도 사용할 수 있기를 원합니다. 많은 병렬 CPU에서, 하나 또는 다른 벤더 또는 다른 운영 체제의 장치에서 metter가 없습니다. 내 컴퓨터에서 작은 작업을 수행 할 수 있지만 Unitsity의 훨씬 큰 머신에서는 많은 CPU를 사용하고 다른 작업 패러렐 작업에서는 테슬라에서 더 많은 데이터 parrarel 작업을 수행 할 수 있습니다. OpenCL은 코드의 재사용을 다양한 하드웨어 및 OS에 제공합니다.

0

또 다른 옵션은 GPU를 대상으로하고 대체 CPU 다중 코어 및 SIMD 명령어 대상이있는 C++ AMP입니다. 그것은 당신이 컴퓨팅에 집중할 수있게 해줄 것이고, 그래픽과 통합 할 필요가 있다면 그것을위한 interop 계층도 있습니다. 공개 스펙을 통해 우리는 어느 시점에서 다른 운영 체제에 대한 구현을보아야합니다. 자세한 정보를 보려면 여기를 클릭하십시오. http://blogs.msdn.com/b/nativeconcurrency/archive/2011/09/13/c-amp-in-a-nutshell.aspx

+0

C++ AMP가 다른 플랫폼에 제공 될 것이라는 특별한 이유가 있습니까? 나는 gcc와 아마 인텔이 AMP를 구현하기 전에는 실제로 크로스 플랫폼이라고 부를 수 없다고 생각한다. 그러한 것들의 구현 속도 (OpenMP는 즉시 지원되지 않았다)를 감안할 때, "어느 시점"은 5 년 내에 있을지도 모른다. – eudoxos

+0

@ eudoxos, 요점은 오픈 스펙을 통해 * 가능하다는 것입니다. 작년 퓨전 컨퍼런스에서 AMD가 컴파일러에서 C++ AMP를 지원하겠다고 발표 한 것을 감안할 때 마이크로 소프트가 다른 플랫폼에서 구현을 실제로보고 싶어한다는 것을 감안할 때 나는 다음과 같이 말했다. "우리는 다른 운영 체제 어떤 점에서". 당신은 옳습니다. 아무도 '어떤 요점'이 무엇인지는 말하지 않았습니다. 그래서 저는 각자 자신의 결론을 이끌어 내고 그들의 믿음을 나눌 수 있습니다. –

관련 문제