2012-06-25 2 views
0

이것은 바보 같지만 확실한 답을 찾지 못했습니다. OpenCL의 확장성에 크게 도움이되는 응용 프로그램이 있습니다. 하지만 기존 코드를 가지고 OpenCL을 구현하려면 어떻게해야할까요? 래퍼를 사용해야합니까? 코드를 OpenCL에 이식해야합니까?C/C++ 응용 프로그램에서 OpenCL을 사용할 수 있습니까?

+3

OpenCL에서 계산 코드 (커널)를 작성하지만 나머지는 단순히 C/C++로 남을 수 있습니다. – Bart

+0

그렇다면 OpenCL이라는 핵심 부분을 필요로하지 않을까요? 따라서 OpenCL 코어를 중심으로 전체 프로그램을 다시 작성해야합니다. 수천 개의 파일이있는 대용량 프로그램의 고통이 아닐까요? 아니면 여기서 잘못된 생각을하고 있습니까? – SRG3006

+0

현재 소스를 볼 수 없으므로 정확한 착수에 대해 말씀 드릴 수 없습니다. 그러나 예, OpenCL과 병렬화하려는 부분은 OpenCL로 작성해야합니다. 따라서 호출 코드가 비교적 유사하게 유지되는 동안 코어를 다시 작성해야 할 가능성이 큽니다. 귀하의 응용 프로그램이 단계별 변환을 허용하는지 여부는 알 수 없지만 전환하는 경우 점진적으로 전환 할 수 있습니다. – Bart

답변

1

래퍼가 충분하지 않습니다. OpenCL C에서 코드를 다시 작성해야하며 대부분 병렬 처리 (다중 코어/스레드에서 실행)를 위해 알고리즘을 다시 설계해야합니다. 무료 점심 식사는 없습니다.

0

@vocaro가 말한 바.

GPGPU 프로그래밍에 대한 다른 접근 방법을 시도하려는 시도가 있습니다. OpenMP가 멀티 스레딩에 한 일종의 시도입니다. 하지만 아직은 제대로 구현하지 못했습니다.

관련 문제