본 연구에서는 GPU 메모리 계층 구조에 존재하는 이슈들을 분석하고 데이터를 GPU 계산 코어에 최대한 가까이 두기 위한 비휘발성 기반의 아키텍처 설계와 해결책을 제시한다. GPU 메모리 계층구조에서 문제점은 GPU L1D 캐시가 메모리 요청을 제대로 수용하기에는 그 용량이 부족하여 GPU 내의 하부 메모리 접근이 빈번해지고, 이로 인한 성능 감소 및 긴 지연 시간 등을 야기하는 데 있다. 이를 해결하기 위해서 본 연구에서는 사용하지 않는 공용 메모리를 간섭을 일으키는 스레드(Thread) 그룹에게 할당하여 캐시 스레싱 (Threshing)을 막고 성능을 향상시킨다. 추가적으로 L1D 캐시 사이즈를 늘리기 위하여 고용량의 비휘발성 메모리를 온칩(On-chip) 메모리 공간에 통합하였다. 비휘발성 메모리의 쓰기는 일반적으로 많은 에너지 소모와 높은 지연시간을 야기하기 때문에 이를 피하기 위하여 빈번한 읽기 요청의 주소 공간은 비휘발성 메모리에, 그리고 쓰기가 빈번한 요청의 주소 공간은 휘발성 메모리 할당하고, 캐시 설계를 변경하여 비휘발성 메모리가 데이터를 최대한 GPU 코어 근처에 할당할 수 있도록 한다. 또 다른 GPU 메모리 계층구조의 한계점은 GPU 메모리 그 자체가 대용량의 비 그래픽 응용에는 맞지 않는다는 점이다. 이를 해결하기 위하여 본 연구에서는 새로운 플래시 메모리를 사용, GPU 메모리를 확장하고, 최대한 많은 데이터를 GPU 내부에 관리하도록 하여 호스트(Host)와 GPU 간의 데이터 이동을 줄이고 성능을 높이도록 한다.
This thesis summarizes the critical challenges existing in GPU memory hierarchy and presents the emerging non-volatile memory based architectural solutions to bring data close to the GPU cores. One of the challenges in GPU memory hierarchy is that the GPU L1D cache has limited space to accommodate all the memory requests. To alleviate the bottleneck, we propose to improve the utilization of GPU on-chip memory from two aspects. Firstly, we leverage the unused shared memory to accommodate the memory requests of severely interfering warps, which in turn isolate the memory requests of interfering and interfered warps. Secondly, if these interfering warps still incur severe cache interference, we propose to selectively throttle the execution of the interfering warps. In addition to improving the utilization of GPU on-chip memory, we propose to increase the L1D cache capacity to accommodate as many memory requests as possible to secure high thread-level parallelism and minimize the off-chip memory accesses. The key idea of our approach is to integrate high-density non-volatile memory (i.e., STT-MRAM) into the GPU on-chip private memory space. To avoid the write penalty of STT-MRAM, we predict the access pattern of L1D cache data blocks. The write-once-read-multiple data blocks are placed into the STT-MRAM, while write-multiple data blocks are accommodated in a small SRAM bank of the L1D cache. To reduce the off-chip memory accesses, we also re-architect the STT-MRAM bank as an approximate fully-associative cache to maximize its utilization.Another challenge in GPU memory hierarchy is the the limited GPU memory capacity, which cannot accommodate the whole working sets of the large-scale non-graphic applications. One potential solution to address the challenges of the limited capacity is to access data from large host memory or SSDs. However, such technologies require host-side software assistance to move data across different devices and introduce redundant data copy overhead, which degrades the execution performance of target GPU applications. We propose to tightly blend new flash (Z-NAND) with massive GPU cores to increase the GPU memory capacity. As data can be directly served from GPU-side Z-NAND, it eliminates the host-side intervention and unnecessary data copy.