Key points are not available for this paper at this time.
작업 배열은 의존 관계가 있는 작업의 2차원 배열입니다. 각 작업은 왼쪽 열의 일부 작업에서 결과 값을 사용하며, 따라서 이러한 왼쪽 작업이 완료된 후에만 시작할 수 있습니다. 기존의 CUDA 구현은 작업을 동기화하기 위해 왼쪽에서 오른쪽으로 각 열에 대해 별도의 CUDA 커널 호출을 반복적으로 수행합니다. 그러나 이 기존의 CUDA 구현에는 여러 가지 단점이 있습니다: CUDA 커널 호출에는 일정한 오버헤드가 있으며, CUDA 커널의 실행 시간은 마지막으로 종료되는 CUDA 블록에 의해 결정됩니다. 또한, 모든 작업은 후속 작업을 위한 낮은 메모리 접근 성능으로 전역 메모리에 결과 값을 기록하고 보존해야 합니다. 이 논문의 주요 기여는 작업 배열을 소개하고 작업 배열에 대한 이러한 오버헤드를 상당히 줄이는 단일 커널 소프트 동기화(SKSS) 기술을 제시하는 것입니다. SKSS는 전역 카운터를 사용하여 작업 배열의 각 행에 할당된 CUDA 블록과 함께 단 하나의 CUDA 커널 호출만 수행합니다. 우리의 SKSS 기술의 잠재력을 명확히 하기 위해, 우리는 SKSS 기술을 사용하여 0-1 배낭 문제에 대한 동적 프로그래밍, 합산 면적 테이블 계산, 그리고 그레이스케일 이미지의 오류 확산을 구현하고, 이전에 발표된 최상의 GPU 구현과 비교했습니다. 매우 놀랍게도, NVIDIA Titan X를 사용한 실험 결과는 우리 SKSS 구현이 0-1 배낭 문제에 대해 1.29-2.11배, 합산 면적 테이블 계산에 대해 1.08-1.56배, 오류 확산에 대해 1.61-2.11배 더 빠른 것을 보여주었습니다.
Funasaka 외 (수요일), 이 질문을 연구했습니다.