2009-12-18 4 views

답변

3

우리 회사는 과학 계산을 위해 OpenCL을 사용하고 있습니다. 제가 사용하는 개발 팀의 일원은 아니지만, 이미지를 대규모로 처리하고, 재구성을 상상하고, 이전에 작성된 과학 코드를 대규모로 병렬 처리하여 사용하는 몇 가지 사항을 알려 드릴 수 있습니다.

기본적으로 OpenCL은 다소 최첨단입니다. 당신이 그것을 다루고 싶지 않거나 그것을 다루어야 만하지 않는다면, 그것을 필요로하는 사람들에게 남겨진 것이 가장 좋습니다. 나는 당신을 낙담 시키려고하지 않고 있지만, 틈새 시장을 위해 설계된 틈새 제품입니다. 잠재적 인 고용 목적을 위해 다른 프로그래밍 분야를 공부하는 것이 더 나을 것입니다.

2

OpenCL은 "성능 향상"버튼이 아닙니다. 성능 향상을 위해 만족해야 할 몇 가지 전제 조건이 있습니다. 첫 번째 것은 적절한 하드웨어입니다 (Tesla GPU가 도움이됩니다). 그것으로부터 이익을 얻을 수있는 소프트웨어에 관해서는, 그것은 많은 병렬 컴퓨팅을 수행하는 소프트웨어입니다. 이것은 대부분의 "일일"소프트웨어를 제외하고 그래픽 처리 응용 프로그램 (렌더러, 이미지 조작 프로그램), 작업이 병렬 인 대형 데이터 처리 응용 프로그램 및 과학 응용 프로그램을 남겨 둡니다.

보통 OpenCL의 혜택을받을 수있는 응용 프로그램을 작성하면 이미 혜택을 얻을 수 있다는 것을 알고 있습니다.

+1

일반 GeForce/Radeon 카드와 전문 라인업 간의 OpenCL 지원에는 차이가 없습니다. –

2

우선 OpenCL을 사용하여 전체 응용 프로그램을 "다시 쓸"수 없습니다. GUI에 대해서도 "일반"언어가 필요합니다.

OpenCL을 사용하면 매우 큰 데이터 병렬 문제를 가속화 할 수 있습니다. 대부분의 문제는이 범주에 속하지 않습니다.

가장 유망한 후보는 그래픽/비디오 및 사운드 프로세싱입니다. 그러나 매우 큰 데이터 세트에서 동일한 작업을 요구하는 모든 문제는 적합 할 것입니다.

+0

더 많은 CPU 전력을 필요로하는 대부분의 일반 응용 프로그램은 QuickTime X에서 사용되는 Grand Central Dispatcher를 더 잘 사용할 것이라고 생각합니다. 여기에 나온 대답에서 OpenCL은 제한된 응용 프로그램 그룹에 대해 매우 구체적입니다. OpenCL 다른 플랫폼에서 사용할 수있는 프로그래밍 언어 C 기반을 사용할 수 있기 때문에 앞으로 나아갈 수 있습니다. – kiamlaluno

+0

GCD는 기본적으로 매우 정교한 스레드 풀 구현입니다. 직접 스레드를 관리하면 더 효율적으로 작업을 수행 할 수 있습니다. –

관련 문제