GPU의 CUDA 또는 OpenCL 코드의 병렬성에 대한 일반적인 질문이 있습니다. 나는 NVIDIA GTX 470을 사용합니다.GPU의 병렬 처리 - CUDA/OpenCL
나는 Cuda 프로그래밍 가이드에서 간략하게 읽었지만 여기에서 묻는 관련 답변을 찾지 못했습니다.
저는 CUDA 커널을 호출하는 최상위 함수를 가지고 있습니다 (같은 커널의 경우 OpenCL 버전이 있습니다). 이 최상위 함수는 3 개의 다른 데이터 세트 (이미지 데이터 R, G, B) 에 대해 내 주요 기능에서 'for 루프'로 3 번 호출되며 실제 코드 렛은 이미지/프레임에 2 'for loops'가 있습니다.
내가 알고 싶은 것은 여기에서 어떤 종류의 병렬 처리가 활용되는지입니다 - 작업 수준 병렬 처리 또는 데이터 병렬 처리?
그래서이 CUDA와 C 코드는 코드 렛과 최상위 코드의 여러 기능/기능에 대한 다중 스레드를 만들고 병렬로 실행하고 작업 병렬 처리를 사용합니다. 그렇다면 누가 명시 적으로 코드에 포함되어 있거나 링크 된 스레딩 라이브러리가 없으므로 누가 그것을 작성합니다.
OR
이것은 독립되므로 데이터 병렬성을 달성하고 반복 '루프'에 대한 다른 스레드/태스크를 생성한다. 이러한 종류의 병렬 처리를 수행하는 경우, for 루프 반복마다 다른 종속성이 없으므로 병렬로 예약 할 수 있다는 점을 참고하여이를 악용합니까?
컴파일러/스케줄러에게 루프/함수를 병렬로 예약하도록 지시하는 특수 컴파일러 생성자/내장 함수 (openMP와 같은 병렬 루프)가 표시되지 않으므로?
모든 독서 자료가 도움이 될 것입니다.