프로그램 최적화 할때 GPU(GPGPU)로 하는게 힘든가요? 아니면 CPU 최적화가 힘든가요?

yellowstone의 이미지

요즘 GPGPU처리도 나오고,멀티코어, 하이퍼 쓰레딩, AVX2 명령어 세트도 나오는데 유저 입장에서는 최신기능이나 최신 명령어를 지원하기 바랍니다. 하지만 프로그래머 입장에서 보면 최적화가 힘든걸로 보입니다.

프로그래머 입장에서 최적화 작업이 힘든가요?
그러면 GPU를 이용한 GPGPU(예 Open CL 2.0) 최적화가 힘든가요? 아니면 AVX2, 멀티코어, 하이퍼 쓰레딩 지원등 CPU를 최적화 작업이 힘든가요?

sshtel의 이미지

동일한 시스템을 GPU 또는 CPU에서 처리할 때 최적화 난이도를 물으시는건가요?
이건 도메인에 따라 어떤 프로세서를 사용할지 결정해야 하는 문제입니다.
GPGPU에 특화되어 최적화 효과를 볼 수 있는 시스템이 있고 CPU 최적화에 더 유리한 시스템이 있는 법이지요.

병렬성을 고려한다고 했을 때 기존의 대부분의 어플리케이션들은 태스크 병렬화에 대한 최적화의 이득을 보는 경우가 많습니다.
각각의 스레드들이 상이한 일들을 하기 때문이고 대부분은 CPU와 I/O에 의존적입니다.

GPU는 데이터 병렬성을 극대화 할 수 있을 때 효과를 보기 쉽습니다. 2D, 3D 이미지 처리는 각 영역별로 처리하는 연산이 동일하고 단순시 프로세서의 연산능력만을 필요로 하기 떄문에 GPU에 적용이 쉽습니다. 병렬성에 의한 효과를 보기 좋지요.