2014-05-24 1 views
0

정상적인 CPU 직렬 실행 호출 대신 OpenACC를 사용할 수 있는지 파악하려고합니다. 일반적으로 프로그래밍은 3D 프로그래밍에 관한 것이거나 GPU를 어떤 방식 으로든 사용합니다. I.E. 이미지 처리 또는 셰이더를 사용해야하는 다른 유형의 렌더링 이 도서관이 나에게 도움이되는지 아닌지 알아 내려고하고있다.OpenACC가 정상적인 GPU 렌더링을 제거합니까?

내가 묻는 이유는 가능한 한 3D 그래픽을 렌더링 할 때 멀리 떨어져있는 프로세스가 느려지기 때문입니다. 아니면 (이론적으로) "높은 프레임 속도"를 유지할 수 있는지 여부입니다.

그렇다면 트레이드 오프는 얼마이며 얼마입니까? 나는 CPU에서 순차적으로 수행 할 수있는 작업을 향상시키기 위해 3D 그래픽 (디스플레이) 성능을 느슨하게하지 않을 것입니다.

편집 : 이것은 C++ 컨텍스트입니다.

답변

0

익숙한 AMD 및 NVIDIA GPU에서 OpenACC 프로그램은 쉐이더 프로그램에서 어느 정도 사용되는 컴퓨팅 리소스를 사용합니다. GPU에는 계산과 그래픽간에 공유되지 않는 그래픽 하드웨어가 많이 있지만 공유 리소스가 있습니다. 마찬가지로, GPU는 PCIE에 의해 시스템에 연결될 수 있기 때문에 공유 리소스 또는 경쟁 지점을 제공 할 수도 있습니다 (단, 현대적인 Gen3 x16 PCIE의 대역폭을 사용하지 않는 희귀 한 컴퓨팅 또는 그래픽 프로그램입니다) 연결).

그래픽 (또는 계산) 쉐이더와 OpenACC 가속을 모두 사용했다면 어느 정도 리소스에 대한 경쟁이있을 수 있습니다. 논쟁의 수준, 즉 상충 관계는 제가 일반화 할 수있는 것이 아닙니다. 프로그램의 세부 사항과 계산 함수와 그래픽 함수의 범위와 세부 순서에 따라 크게 달라집니다.

GPU 설계자는 이러한 유형의 유스 케이스를 염두에두고 있으므로 일반적으로 GPU는 리소스를 놓고 경쟁 할 수있는 다양한 작업간에 신속한 컨텍스트 전환을 잘 수행합니다.

관련 문제