이기종시스템 구조(HSA)는 두 유닛의 각각에 메모리 폴(pools)이 가상메모리를 통해 공유할 수 있게 됨에 따라 CPU와 GPU아키텍처의 오랜 문제를 해결하였다. 그러나 물리적 실제 시스템에서는 가상메모리 처리를 위해 GPU와 GPU 사이의 빈번한 메모리 이동으로 병목현상(Bottleneck)과 일관성 요청(Coherence request)의 오버헤드를 갖게 된다. 본 연구는 CPU와 GPU간의 효율적인 메인 메모리 접근방안으로 퓨전프로세서 알고리즘을 제안하였다. CPU가 요청한 처리할 메모리 영역을 GPU의 코어에 맞게 분배 제어해주는 기능으로 작업관리자(Job Manager)와 Re-mapper, Pre-fetcher를 제안하였다. 이를 통해 CPU와 GPU간의 빈번한 메시지도 감소되고 CPU의 메모리주소에 없는 Page-Table 요청이 낮아져 두 매체간의 효율성이 증대되었다. 제안한 알고리즘의 검증 방안으로 QEMU(:short for Quick EMUlator)기반의 에뮬레이터를 개발하고 CUDA(:Compute Unified Device. Architecture), OpenMP, OpenCL 등의 알고리즘과 비교평가를 하였다. 성능평가 결과, 본 연구에서 제안한 융합 프로세서 구조를 기존과 비교했을 때 최대 198%이상 빠르게 처리되면서 메모리 복사, 캐시미스 등의 오버헤드를 최소화하였다.
이기종시스템 구조(HSA)는 두 유닛의 각각에 메모리 폴(pools)이 가상메모리를 통해 공유할 수 있게 됨에 따라 CPU와 GPU 아키텍처의 오랜 문제를 해결하였다. 그러나 물리적 실제 시스템에서는 가상메모리 처리를 위해 GPU와 GPU 사이의 빈번한 메모리 이동으로 병목현상(Bottleneck)과 일관성 요청(Coherence request)의 오버헤드를 갖게 된다. 본 연구는 CPU와 GPU간의 효율적인 메인 메모리 접근방안으로 퓨전프로세서 알고리즘을 제안하였다. CPU가 요청한 처리할 메모리 영역을 GPU의 코어에 맞게 분배 제어해주는 기능으로 작업관리자(Job Manager)와 Re-mapper, Pre-fetcher를 제안하였다. 이를 통해 CPU와 GPU간의 빈번한 메시지도 감소되고 CPU의 메모리주소에 없는 Page-Table 요청이 낮아져 두 매체간의 효율성이 증대되었다. 제안한 알고리즘의 검증 방안으로 QEMU(:short for Quick EMUlator)기반의 에뮬레이터를 개발하고 CUDA(:Compute Unified Device. Architecture), OpenMP, OpenCL 등의 알고리즘과 비교평가를 하였다. 성능평가 결과, 본 연구에서 제안한 융합 프로세서 구조를 기존과 비교했을 때 최대 198%이상 빠르게 처리되면서 메모리 복사, 캐시미스 등의 오버헤드를 최소화하였다.
The HSA resolves an old problem with existing CPU and GPU architectures by allowing both units to directly access each other's memory pools via unified virtual memory. In a physically realized system, however, frequent data exchanges between CPU and GPU for a virtual memory block result bottlenecks ...
The HSA resolves an old problem with existing CPU and GPU architectures by allowing both units to directly access each other's memory pools via unified virtual memory. In a physically realized system, however, frequent data exchanges between CPU and GPU for a virtual memory block result bottlenecks and coherence request overheads. In this paper, we propose Fusion Processor Architecture for efficient access of main memory from both CPU and GPU. It consists of Job Manager, Re-mapper, and Pre-fetcher to control, organize, and distribute work loads and working areas for GPU cores. These components help on reducing memory exchanges between the two processors and improving overall efficiency by eliminating faulty page table requests. To verify proposed algorithm architectures, we develop an emulator based on QEMU, and compare several architectures such as CUDA(Compute Unified Device Architecture), OpenMP, OpenCL. As a result, Proposed fusion processor architectures show 198% faster than others by removing unnecessary memory copies and cache-miss overheads.
The HSA resolves an old problem with existing CPU and GPU architectures by allowing both units to directly access each other's memory pools via unified virtual memory. In a physically realized system, however, frequent data exchanges between CPU and GPU for a virtual memory block result bottlenecks and coherence request overheads. In this paper, we propose Fusion Processor Architecture for efficient access of main memory from both CPU and GPU. It consists of Job Manager, Re-mapper, and Pre-fetcher to control, organize, and distribute work loads and working areas for GPU cores. These components help on reducing memory exchanges between the two processors and improving overall efficiency by eliminating faulty page table requests. To verify proposed algorithm architectures, we develop an emulator based on QEMU, and compare several architectures such as CUDA(Compute Unified Device Architecture), OpenMP, OpenCL. As a result, Proposed fusion processor architectures show 198% faster than others by removing unnecessary memory copies and cache-miss overheads.
본 연구는 기존 문제의 해결 방안으로 CPU와 GPU간의 직접적인 데이터 복사 없이 CPU가 요청한 데이터의 주소 정보를 수신하고 GPU의 코어에 맞게 메모리 테이블 관리자 계층에서 상호 변환·분배·제어하는 퓨전프로세서 알고리즘을 제안하였다. 세부적으로 기능에 따라 작업관리자(Job Manager)와 리매퍼 (Re-mapper)와 프리페처 (Re-fetcher)로 분류하여 CPU-GPU간 데이터 처리에 병목현상(Bottleneck)을 줄이고, 효율적인 캐시의 일관성을 유지로 메모리 복사, 캐시미스 등의 오버헤드를 최소화하였다.
제안 방법
는 퓨전프로세서 알고리즘을 제안하였다. 세부적으로 기능에 따라 작업관리자(Job Manager)와 리매퍼 (Re-mapper)와 프리페처 (Re-fetcher)로 분류하여 CPU-GPU간 데이터 처리에 병목현상(Bottleneck)을 줄이고, 효율적인 캐시의 일관성을 유지로 메모리 복사, 캐시미스 등의 오버헤드를 최소화하였다. 또한 기존 OpenGL, OpenMP, GUDA과 제안된 융합알고리즘의 비교에서도 최대 198%의 성능향상을 확인할 수 있었다.
대상 데이터
NVIDIA의 모바일 코어인 Tegra X1와 직접적인 비교평가를 하면 좋겠지만, 대부분 제품이 태블릿으로 QEMU에서 비교할 수 없어 X1와 비슷한 Quardo K620로 비교 평가하였다. 표 1과 같이 X1과 차이점은 CUDA core가 384개로 높고 GPU 대역폭 또한 25.
데이터처리
본 아키텍처의 동작의 동작 검증과 응용프로그램을 위해 x86 PC 기반의 하드웨어 가상화 에뮬레이터인 QEMU에서 제안된 융합구조를 OpenCL, Open MP, CUDA 등의 플랫폼과 비교를 통해 검증하였다.
성능/효과
안하였다. HW로 처리되는 CUDA에 비교에서도 115%부터 198%까지 분야별로 높은 효율을 보여주었다. 하지만 이미지 압축과 같은 비교에서는 융합 알고 리즘 또한 오버헤드가 많이 증가했으며, 4K H.
CUDA와 OpenMP의 선행연구와 같이 데이터 크기와 메모리 사이즈에 대한 오버헤드가 증가하였다[7-8]. 벡터의 곱셈과 덧셈에서 OpenMP에 비해본 제안 알고리즘의 메모리 오버헤드가 낮은 것을 알 수 있다. 또한 그림 9의 OpenMP의 처리속도는 벡터 곱셈의 최적화 문제로 OpenCL에 비해서 낮게 나오는 것으로 예상한다.
후속연구
265, 4K VP9과 같은 고해상도 영상에 처리를 위한 메인메모리 할당 방안을 최적화할 필요가 있다. 점차 발전하는 다중 계층 멀티코어 형태로 발전하는 모바일에서 CPU-GPU간의 계층적 캐시와 TSV기반 메인메모리의 효율적인 공유방안을 연구할 필요가 있다. 현재는 QEMU 없이 아키텍처 간 비교평가를 위한 FAA 기반에 시뮬레이터를 개발하고 있으며, 이와 함께 본 융합 알고리즘을 국내 멀티미디어 셋톱박스와 블랙박스용 반도체를 공급하는 기업에 기술이전 중에 있다.
HW로 처리되는 CUDA에 비교에서도 115%부터 198%까지 분야별로 높은 효율을 보여주었다. 하지만 이미지 압축과 같은 비교에서는 융합 알고 리즘 또한 오버헤드가 많이 증가했으며, 4K H.265, 4K VP9과 같은 고해상도 영상에 처리를 위한 메인메모리 할당 방안을 최적화할 필요가 있다. 점차 발전하는 다중 계층 멀티코어 형태로 발전하는 모바일에서 CPU-GPU간의 계층적 캐시와 TSV기반 메인메모리의 효율적인 공유방안을 연구할 필요가 있다.
질의응답
핵심어
질문
논문에서 추출한 답변
본 연구에서 CPU와 GPU간의 효율적인 메인 메모리 접근방안으로 어떤 알고리즘을 제안하였는가?
그러나 물리적 실제 시스템에서는 가상메모리 처리를 위해 GPU와 GPU 사이의 빈번한 메모리 이동으로 병목현상(Bottleneck)과 일관성 요청(Coherence request)의 오버헤드를 갖게 된다. 본 연구는 CPU와 GPU간의 효율적인 메인 메모리 접근방안으로 퓨전프로세서 알고리즘을 제안하였다. CPU가 요청한 처리할 메모리 영역을 GPU의 코어에 맞게 분배 제어해주는 기능으로 작업관리자(Job Manager)와 Re-mapper, Pre-fetcher를 제안하였다.
OpenMP 벡터의 곱셈 연산 성능이 덧셈보다 상대적인 오버헤드가 적은 이유는 무엇인가?
여기서 특이한 것은 벡터의 곱셈 연산 성능이 덧셈보다 상대적인 오버헤드가 적은 것을 알 수 있다. 이는 GPU 코어가 곱셈에 최적화되어 있기 때문이다.
퓨전프로세서 알고리즘은 무엇인가?
본 연구는 기존 문제의 해결 방안으로 CPU와 GPU간의 직접적인 데이터 복사 없이 CPU가 요청한 데이터의 주소 정보를 수신하고 GPU의 코어에 맞게 메모리 테이블 관리자 계층에서 상호 변환·분배·제어하는 퓨전프로세서 알고리즘을 제안하였다. 세부적으로 기능에 따라 작업관리자(Job Manager)와 리매퍼 (Re-mapper)와 프리페처 (Re-fetcher)로 분류하여 CPU-GPU간 데이터 처리에 병목현상(Bottleneck)을 줄이고, 효율적인 캐시의 일관성을 유지로 메모리 복사, 캐시미스 등의 오버헤드를 최소화하였다.
참고문헌 (12)
J. Power, A. Basu, J. Gu, S. Puthoor, B. M. Beckmann, M. Dill, and D. Aood, "Heterogeneous system coherence for integrated CPU-GPU systems," Proceedings of the 46th Annual IEEE/ACM Int. Symposium on Microarchitecture. ACM, California, USA, Dec. 2013. pp. 457-467.
C. Balkesen, J. Teubner, G. Alonso, and M. T. Ozsu, "Main-memory hash joins on multicore CPUs: Tuning to the underlying hardware," Data Engineering (ICDE), 2013 IEEE 29th Int. Conf. on. IEEE, Brisbane, Australia, April 2013. pp. 362-373.
B. Pichai, L. Hsu, and A. Bhattacharjee. "Architectural support for address translation on gpus: Designing memory management units for cpu/gpus with unified address spaces," ACM Special Interest Group on Programming Languages(SIGPLAN) Notices, vol. 49 no.4, 2014, pp 743-758.
G. Kim, M. Lee, J. Jeong, and J. Kim, "Multi-GPU system design with memory networks," Proceedings of the 47th Annual IEEE/ACM Int. Symposium on Microarchitecture. IEEE Computer Society, Cambridge, United Kingdom, Dec. 2014. pp. 484-495
J. Jeffers and J. Reinders, High Performance Parallelism Pearls Volume Two: Multicore and Many-core Programming Approaches, Waltham: Morgan Kaufmann, 2015.
B. Hechtman, A. Blake, and J. Daniel, "Evaluating cache coherent shared virtual memory for heterogeneous multicore chips," Performance Analysis of Systems and Software (ISPASS), 2013 IEEE Int. Symposium on. IEEE, Texas, USA, April. 2013. pp. 118-119.
S. Potluri, H. Wang, D. Bureddy, A. Singh, C. Rosales, and D. Panda, "Optimizing MPI communication on multi-GPU systems using CUDA inter-process communication," Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), 2012 IEEE 26th International. IEEE, Shanghai, China, May 2012. pp. 1848-1857.
S. Lin, Y. Liao, and Y. Hsu, "A Reliable and Secure GPU-Assisted File System," Algorithms and Architectures for Parallel Processing. Springer Int. Publishing, vol. 8630, 2014, pp. 71-84.
I. Singh, A. Shriraman, W. Fung, M. O'Connor, and T. Aamodt, "Cache coherence for GPU architectures," on High Performance Computer Architecture (HPCA), 19th International Symposium on, 2013, pp. 578-590.
S. Kim and Y. Choi, "Analysis of Human Activity Using Motion Vector and GPU," J. of the Korea Institute of Electronic Communication Sciences, vol. 9, no. 10, 2014, pp. 1095-1102.
J. Park, "Comparison Speed of Pedestrian Detection with Parallel Processing Graphic Processor and General Purpose Processor," J. of the Korea Institute of Electronic Communication Sciences, vol. 10, no. 2, 2015, pp. 239-246.
S. Lee and W. Jeong, "Design of the Entropy Processor using the Memory Stream Allocation for the Image Processing," J. of the Korea Institute of Electronic Communication Sciences, vol. 7, no. 5, 2012, pp. 1017-1026.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.