Impacto do Subsistema de Memória em Arquiteturas CPU e GPU
Resumo
A variedade de arquiteturas e tipos de aplicações paralelas impõe um grande desafio à desenvolvedores. A mesma aplicação pode ter um bom desempenho quando executada em uma arquitetura, porém um mal desempenho em outra arquitetura. Na maioria das situações, a adaptação do código fonte para a arquitetura é suficiente para solucionar tais problemas, embora demande tempo. Portanto, é importante um estudo detalhado sobre como uma aplicação se comporta em diferentes arquiteturas a fim de otimizá-la para executar em uma variedade de arquiteturas com um bom desempenho. Os trabalhos relacionados nesta área, em sua maioria, focam em uma análise abrangendo o tempo de execução e energia. Outros trabalhos focam no comportamento do subsistema de memória em uma arquitetura específica, e propõe mecanismos ou alterações à arquitetura. Neste trabalho, é realizada uma investigação detalhada do impacto do subsistema de memória em diferentes arquiteturas, que é um dos aspectos mais importantes a serem considerados, utilizando o mesmo conjunto de aplicações. Neste estudo, foram realizados experimentos com as arquiteturas Ivy Bridge (CPU) e Kepler (GPU), e aplicações do conjunto de benchmarks SHOC. Desta forma, foi possível compreender o motivo de uma aplicação desempenhar bem em uma arquitetura e mal em outra.Referências
Ausavarungnirun, R., Ghose, S., Kayiran, O., Loh, G. H., Das, C. R., Kandemir, M. T., and Mutlu, O. (2015). Exploiting inter-warp heterogeneity to improve gpgpu performance. In 2015 International Conference on Parallel Architecture and Compilation (PACT), pages 25–38. IEEE.
Borkar, S. and Chien, A. A. (2011). The future of microprocessors. Communications of the ACM, 54(5):67–77.
Cook, S. (2012). CUDA programming: a developer's guide to parallel computing with GPUs. Newnes.
Coteus, P. W., Knickerbocker, J. U., Lam, C. H., and Vlasov, Y. A. (2011). Technologies for exascale systems. IBM Journal of Research and Development, 55(5):14–1.
Cruz, E. H., Diener, M., Alves, M. A., Pilla, L. L., and Navaux, P. O. (2016). Lapt: A locality-aware page table for thread and data mapping. Parallel Computing (PARCO), 54:59 – 71.
Danalis, A., Marin, G., McCurdy, C., Meredith, J. S., Roth, P. C., Spafford, K., Tipparaju, V., and Vetter, J. S. (2010). The scalable heterogeneous computing (SHOC) benchmark suite. In Proceedings of 3rd Workshop on General Purpose Processing on Graphics Processing Units, GPGPU 2010, Pittsburgh, Pennsylvania, USA, March 14, 2010, pages 63–74.
George, V., Piazza, T., and Jiang, H. (2011). Technology insight: Intel next generation microarchitecture codename ivy bridge. In Intel Developer Forum.
Intel (2012). CPU utilization. Intel Performance Counter Monitor A better way to measure
Intel (2016). Intel VTune Amplier XE 2016.
Jia, W., Shaw, K. A., and Martonosi, M. (2014). Mrpb: Memory request prioritization for massively parallel processors. In 2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA), pages 272–283. IEEE.
Kirk, D. B. and Wen-mei, W. H. (2012). Programming massively parallel processors: a hands-on approach. Newnes.
Mei, X. and Chu, X. (2015). Dissecting GPU memory hierarchy through microbenchmarking. CoRR, abs/1509.02308.
Mittal, S. and Vetter, J. S. (2015). A survey of cpu-gpu heterogeneous computing techniques. ACM Computing Surveys (CSUR), 47(4):69:1–69:35.
Nvidia (2016). Developer Zone CUDA Toolkit Documentation.
Ziakas, D., Baum, A., Maddox, R. A., and Safranek, R. J. (2010). Intel QuickPath Interconnect Architectural Features Supporting Scalable System Architectures. In Symposium on High Performance Interconnects (HOTI), pages 1–6.
Borkar, S. and Chien, A. A. (2011). The future of microprocessors. Communications of the ACM, 54(5):67–77.
Cook, S. (2012). CUDA programming: a developer's guide to parallel computing with GPUs. Newnes.
Coteus, P. W., Knickerbocker, J. U., Lam, C. H., and Vlasov, Y. A. (2011). Technologies for exascale systems. IBM Journal of Research and Development, 55(5):14–1.
Cruz, E. H., Diener, M., Alves, M. A., Pilla, L. L., and Navaux, P. O. (2016). Lapt: A locality-aware page table for thread and data mapping. Parallel Computing (PARCO), 54:59 – 71.
Danalis, A., Marin, G., McCurdy, C., Meredith, J. S., Roth, P. C., Spafford, K., Tipparaju, V., and Vetter, J. S. (2010). The scalable heterogeneous computing (SHOC) benchmark suite. In Proceedings of 3rd Workshop on General Purpose Processing on Graphics Processing Units, GPGPU 2010, Pittsburgh, Pennsylvania, USA, March 14, 2010, pages 63–74.
George, V., Piazza, T., and Jiang, H. (2011). Technology insight: Intel next generation microarchitecture codename ivy bridge. In Intel Developer Forum.
Intel (2012). CPU utilization. Intel Performance Counter Monitor A better way to measure
Intel (2016). Intel VTune Amplier XE 2016.
Jia, W., Shaw, K. A., and Martonosi, M. (2014). Mrpb: Memory request prioritization for massively parallel processors. In 2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA), pages 272–283. IEEE.
Kirk, D. B. and Wen-mei, W. H. (2012). Programming massively parallel processors: a hands-on approach. Newnes.
Mei, X. and Chu, X. (2015). Dissecting GPU memory hierarchy through microbenchmarking. CoRR, abs/1509.02308.
Mittal, S. and Vetter, J. S. (2015). A survey of cpu-gpu heterogeneous computing techniques. ACM Computing Surveys (CSUR), 47(4):69:1–69:35.
Nvidia (2016). Developer Zone CUDA Toolkit Documentation.
Ziakas, D., Baum, A., Maddox, R. A., and Safranek, R. J. (2010). Intel QuickPath Interconnect Architectural Features Supporting Scalable System Architectures. In Symposium on High Performance Interconnects (HOTI), pages 1–6.
Publicado
05/10/2016
Como Citar
SERPA, Matheus; CRUZ, Eduardo; MOREIRA, Francis; DIENER, Matthias; NAVAUX, Philipe.
Impacto do Subsistema de Memória em Arquiteturas CPU e GPU. In: SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 17. , 2016, Aracajú.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2016
.
p. 145-156.
DOI: https://doi.org/10.5753/wscad.2016.14255.