비디오 프레임을 캡처 중입니다. 모든 프레임은 Image2D로서 커널에 전달됩니다. 저는 사용자가 선택할 수있는 약 5 개의 간단한 이미지 처리 알고리즘 (흐림, 선명도 등)을 가지고 있습니다 (다른 것들의 조합도 가능합니다).커널에서 다양한 수의 알고리즘을 처리하는 방법은 무엇입니까?
- 한 커널 : : 여기 세 가지 가능성을 볼 런타임에 선택 알고리즘 커널의 문자열을 구성하고 컴파일 (그리고 한 번 컴파일 지연의 오버 헤드를 가지고)
- 한 커널 : 선택한 알고리즘을 플래그로 처리하십시오 (조건부 분기가 바람직하지 않음을 이해하지만)
- 알고리즘 당 하나의 커널 :
Image2D
이read_only
또는write_only
일 수 있으며, 반복적으로 커널의 출력 이미지 하나가 GPU에서 가져온 이미지이고 GPU에 대한 이미지입니다. 다음 커널의 이미지를 출력한다.
따라야 할 엄지 손가락 기준이 있습니까?
조건부 실행에 대해서 : 당신이 말하는 분기의 종류는 그렇게 나쁘지 않을 것입니다. 모든 작업 항목은 주어진 커널 실행에 대해 여전히 동일한 경로로 진행됩니다. 그것은 서로 다른 작업 항목이 서로 다른 방향으로 분기되어 실제 성능을 저하시키는 상황입니다. – James
제임스 감사합니다. 평가 해 보겠습니다. – rdoubleui