GPU 프로그래밍
GPU에서 조건에 맞는 요소만 배열에서 골라 다른 배열에 채워 넣어 출력하고 싶다(각 스레드의 출력 수는 0 또는 1). 각 스레드의 쓰기 위치 주소를 정하는 데 자주 사용되는 병렬 계산은?
- A행렬 전치
- B프리픽스 섬(스캔, 앞에서부터의 누적합)
- C고속 푸리에 변환
정답과 해설 보기
정답: B. 프리픽스 섬(스캔, 앞에서부터의 누적합)
각 스레드가 출력할지 여부를 0 또는 1로 나타내고 그 앞에서부터의 누적합(배타적 프리픽스 섬)을 구하면, 각 스레드의 값은 "자신보다 앞에서 출력하는 스레드의 수"가 되며 그것이 그대로 쓰기 위치 주소가 됩니다. 스캔은 리덕션과 마찬가지로 트리 형태로 병렬 계산할 수 있습니다. 출력 수가 요소마다 다른 처리를 병렬 그대로 채워서 출력하기 위한 기본 도구입니다.