Profiling and reducing micro-architecture bottlenecks at the hardware level

Detalhes bibliográficos
Autor(a) principal: Moreira, Francis Birck
Data de Publicação: 2014
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFRGS
Texto Completo: http://hdl.handle.net/10183/103977
Resumo: A maior parte dos mecanismos em processadores superescalares atuais usam granularidade de instrução para criar ou caracterizar especulações, tais como predição de desvios ou prefetchers. No entanto, muitas das características das instruções podem ser obtidas ao analisar uma granularidade mais grossa, o bloco básico de código, aumentando a quantidade de código coberta em um espaço similar de armazenamento. Adicionalmente, códigos podem ser analisados mais precisamente e prover uma variedade maior de informação ao observar diferentes tipos de instruções e suas relações. Devido a estas vantagens, a análise no nível de blocos pode fornecer mais oportunidades para mecanismos que necessitam desta informação. Por exemplo, é possível integrar informações de desvios mal previstos e acessos a memória para gerar informações mais precisas de quais acessos a memória oferecem melhor desempenho ao serem priorizados. Nesta tese propomos o Block-Level Architecture Profiler (BLAP) (Block Level Architecture Profiler), um mecanismo em hardware que caracteriza gargalos no nível microarquitetural, tal como loads delinquentes, desvios de difícil previsão e contenção nas unidades funcionais. O BLAP trabalha no nível de bloco básico, apenas detectando e fornecendo informações que podem ser usada para otimizar tais gargalos. Um mecanismo para a remoção de prefetches e uma política de controlador de memória DRAM foram criados para usar a informação criada pelo BLAP e demonstrar seu potencial. Juntos, estes mecanismos são capazes de melhorar o desempenho do sistema em até 17.39% (3.9% em média). Nosso método mostrou também ganhos médios de 13.14% quando avaliado com uma pressão na memória mais alta devido a prefetchers mais agressivos.
id URGS_3e2b49f5ea95a368b028c911518f4b74
oai_identifier_str oai:www.lume.ufrgs.br:10183/103977
network_acronym_str URGS
network_name_str Biblioteca Digital de Teses e Dissertações da UFRGS
repository_id_str 1853
spelling Moreira, Francis BirckNavaux, Philippe Olivier Alexandre2014-09-30T02:13:13Z2014http://hdl.handle.net/10183/103977000937875A maior parte dos mecanismos em processadores superescalares atuais usam granularidade de instrução para criar ou caracterizar especulações, tais como predição de desvios ou prefetchers. No entanto, muitas das características das instruções podem ser obtidas ao analisar uma granularidade mais grossa, o bloco básico de código, aumentando a quantidade de código coberta em um espaço similar de armazenamento. Adicionalmente, códigos podem ser analisados mais precisamente e prover uma variedade maior de informação ao observar diferentes tipos de instruções e suas relações. Devido a estas vantagens, a análise no nível de blocos pode fornecer mais oportunidades para mecanismos que necessitam desta informação. Por exemplo, é possível integrar informações de desvios mal previstos e acessos a memória para gerar informações mais precisas de quais acessos a memória oferecem melhor desempenho ao serem priorizados. Nesta tese propomos o Block-Level Architecture Profiler (BLAP) (Block Level Architecture Profiler), um mecanismo em hardware que caracteriza gargalos no nível microarquitetural, tal como loads delinquentes, desvios de difícil previsão e contenção nas unidades funcionais. O BLAP trabalha no nível de bloco básico, apenas detectando e fornecendo informações que podem ser usada para otimizar tais gargalos. Um mecanismo para a remoção de prefetches e uma política de controlador de memória DRAM foram criados para usar a informação criada pelo BLAP e demonstrar seu potencial. Juntos, estes mecanismos são capazes de melhorar o desempenho do sistema em até 17.39% (3.9% em média). Nosso método mostrou também ganhos médios de 13.14% quando avaliado com uma pressão na memória mais alta devido a prefetchers mais agressivos.Most mechanisms in current superscalar processors use instruction granularity information for speculation, such as branch predictors or prefetchers. However, many of these characteristics can be obtained at the basic block level, increasing the amount of code that can be covered while requiring less space to store the data. Moreover, the code can be profiled more accurately and provide a higher variety of information by analyzing different instruction types inside a block. Because of these advantages, block-level analysis can offer more opportunities for mechanisms that use this information. For example, it is possible to integrate information about branch prediction and memory accesses to provide precise information for speculative mechanisms, increasing accuracy and performance. We propose a BLAP, an online mechanism that profiles bottlenecks at the microarchitectural level, such as delinquent memory loads, hard-to-predict branches and contention for functional units. BLAP works at the basic block level, providing information that can be used to reduce the impact of these bottlenecks. A prefetch dropping mechanism and a memory controller policy were developed to use the profiled information provided by BLAP. Together, these mechanisms are able to improve performance by up to 17.39% (3.90% on average). Our technique showed average gains of 13.14% when evaluated under high memory pressure due to highly aggressive prefetch.application/pdfengProcessamento paraleloProcessamento distribuídoSystem architectureProgram profilingHardware designProfiling and reducing micro-architecture bottlenecks at the hardware levelBLAP : um caracterizador de blocos básicos de arquiteturainfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPrograma de Pós-Graduação em ComputaçãoPorto Alegre, BR-RS2014mestradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL000937875.pdf000937875.pdfTexto completo (inglês)application/pdf564478http://www.lume.ufrgs.br/bitstream/10183/103977/1/000937875.pdf9c9f79df736df56c2465fc0a75bd7fe3MD51TEXT000937875.pdf.txt000937875.pdf.txtExtracted Texttext/plain153086http://www.lume.ufrgs.br/bitstream/10183/103977/2/000937875.pdf.txtd3d2975a09eb69e136740285a99cf0f8MD52THUMBNAIL000937875.pdf.jpg000937875.pdf.jpgGenerated Thumbnailimage/jpeg1040http://www.lume.ufrgs.br/bitstream/10183/103977/3/000937875.pdf.jpgae665083b3f1a6e9645ae8b2083a4ab4MD5310183/1039772022-02-22 05:14:54.079828oai:www.lume.ufrgs.br:10183/103977Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532022-02-22T08:14:54Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Profiling and reducing micro-architecture bottlenecks at the hardware level
dc.title.alternative.pt.fl_str_mv BLAP : um caracterizador de blocos básicos de arquitetura
title Profiling and reducing micro-architecture bottlenecks at the hardware level
spellingShingle Profiling and reducing micro-architecture bottlenecks at the hardware level
Moreira, Francis Birck
Processamento paralelo
Processamento distribuído
System architecture
Program profiling
Hardware design
title_short Profiling and reducing micro-architecture bottlenecks at the hardware level
title_full Profiling and reducing micro-architecture bottlenecks at the hardware level
title_fullStr Profiling and reducing micro-architecture bottlenecks at the hardware level
title_full_unstemmed Profiling and reducing micro-architecture bottlenecks at the hardware level
title_sort Profiling and reducing micro-architecture bottlenecks at the hardware level
author Moreira, Francis Birck
author_facet Moreira, Francis Birck
author_role author
dc.contributor.author.fl_str_mv Moreira, Francis Birck
dc.contributor.advisor1.fl_str_mv Navaux, Philippe Olivier Alexandre
contributor_str_mv Navaux, Philippe Olivier Alexandre
dc.subject.por.fl_str_mv Processamento paralelo
Processamento distribuído
topic Processamento paralelo
Processamento distribuído
System architecture
Program profiling
Hardware design
dc.subject.eng.fl_str_mv System architecture
Program profiling
Hardware design
description A maior parte dos mecanismos em processadores superescalares atuais usam granularidade de instrução para criar ou caracterizar especulações, tais como predição de desvios ou prefetchers. No entanto, muitas das características das instruções podem ser obtidas ao analisar uma granularidade mais grossa, o bloco básico de código, aumentando a quantidade de código coberta em um espaço similar de armazenamento. Adicionalmente, códigos podem ser analisados mais precisamente e prover uma variedade maior de informação ao observar diferentes tipos de instruções e suas relações. Devido a estas vantagens, a análise no nível de blocos pode fornecer mais oportunidades para mecanismos que necessitam desta informação. Por exemplo, é possível integrar informações de desvios mal previstos e acessos a memória para gerar informações mais precisas de quais acessos a memória oferecem melhor desempenho ao serem priorizados. Nesta tese propomos o Block-Level Architecture Profiler (BLAP) (Block Level Architecture Profiler), um mecanismo em hardware que caracteriza gargalos no nível microarquitetural, tal como loads delinquentes, desvios de difícil previsão e contenção nas unidades funcionais. O BLAP trabalha no nível de bloco básico, apenas detectando e fornecendo informações que podem ser usada para otimizar tais gargalos. Um mecanismo para a remoção de prefetches e uma política de controlador de memória DRAM foram criados para usar a informação criada pelo BLAP e demonstrar seu potencial. Juntos, estes mecanismos são capazes de melhorar o desempenho do sistema em até 17.39% (3.9% em média). Nosso método mostrou também ganhos médios de 13.14% quando avaliado com uma pressão na memória mais alta devido a prefetchers mais agressivos.
publishDate 2014
dc.date.accessioned.fl_str_mv 2014-09-30T02:13:13Z
dc.date.issued.fl_str_mv 2014
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/103977
dc.identifier.nrb.pt_BR.fl_str_mv 000937875
url http://hdl.handle.net/10183/103977
identifier_str_mv 000937875
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Biblioteca Digital de Teses e Dissertações da UFRGS
collection Biblioteca Digital de Teses e Dissertações da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/103977/1/000937875.pdf
http://www.lume.ufrgs.br/bitstream/10183/103977/2/000937875.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/103977/3/000937875.pdf.jpg
bitstream.checksum.fl_str_mv 9c9f79df736df56c2465fc0a75bd7fe3
d3d2975a09eb69e136740285a99cf0f8
ae665083b3f1a6e9645ae8b2083a4ab4
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv lume@ufrgs.br||lume@ufrgs.br
_version_ 1810085300788002816