Dyca : multi-core dynamically adaptable cache bypassing mechanism
Resumo
Resumo: A maioria dos processadores modernos possuem uma hierarquia de cache formada de múltiplos níveis para mitigar a latência de acesso a memória principal. Além disso, estes processadores também possuem um número cada vez maior de núcleos, a medida que o número de núcleos aumenta, mais núcleos e threads compartilham o último nível de cache (LLC - Last Level Cache), que consome grande parte da energia e área do chip. Portanto, enquanto o tamanho e o número de núcleos aumentam, novas soluções devem garantir o melhor uso de recursos reduzindo os conflitos de cache e problemas de poluição de cache. Esta dissertação explora o conhecimento de que algumas aplicações apresentam baixa localidade temporal e espacial durante os acessos aos dados. Para esses casos, o LLC impõe uma barreira de latência extra para acessar os dados na memória principal além de um desperdício de energia durante a instalação das linhas de cache. Assim, o desvio (bypass) de um ou mais níveis de cache pode beneficiar tais aplicativos, melhorando o desempenho geral do sistema e diminuindo o consumo de energia. Nesta dissertação, propomos um preditor online para contornar a adaptação dinâmica do uso da LLC. Nosso mecanismo avalia cada fase de execução das aplicações coletando contadores de hardware habilitados por mecanismos de amostragem e usando um modelo de regressão linear capaz de identificar se o LLC beneficia o desempenho do aplicativo, adaptando o uso da LLC para cada aplicação sendo executada. Desta forma, diminuindo o tempo de execução em uma execução singular, além de aumentando o desempenho geral do sistema. Esse desvio de cache também cria desafios quanto ao protocolo de coerência em execuções de múltiplos aplicativos. Contudo, nosso mecanismo é capaz de garantido esta coerência. Nossos resultados para execuções singulares mostram um possível aumento no tempo de execução de até 22%. Já para execuções de múltiplos programas, mostram que ganhos de até 21% no tempo de execução podem ser alcançados e também a redução da taxa de faltas na LLC, oriundos da diminuição da poluição e conflitos na cache. Abstract: Most modern processors have a multilevel cache hierarchy to mitigate main memory access latency. In addition, these processors also have an increasing number of cores, as the number of cores increases, more cores and threads share the Last Level Cache (LLC), which consumes a lot of energy and area of the chip. Therefore, while the size and number of cores increases, new solutions should ensure the best use of resources by reducing cache conflicts and cache pollution issues. This dissertation explores the knowledge that some applications have low temporal and spatial locality during data accesses. For these cases, LLC imposes an extra latency barrier to accessing the data in main memory as well as a waste of energy when installing the cache lines. Thus, bypassing one or more cache levels can benefit such applications, improving overall system performance and lowering power consumption. In this dissertation, we propose an online predictor to dynamic adapt the use of LLC. Our mechanism evaluates each execution phase by collecting hardware counters enabled by sampling mechanisms and using a linear regression model capable of identifying whether LLC benefits application performance or not, adapting LLC usage for each running application. In this way, decreasing the execution time in a single execution, in addition to increasing the overall performance of the system. This cache bypass also creates protocol coherence challenges in multi-application runs. However, our mechanism is capable of guaranteeing this coherence. Our results for single program executions show possible performance gains of up to 22%. As for the execution of multiple programs, they show that gains of up to 21% in execution time can be achieved and also a reduction in the miss rate in the LLC, resulting from the reduction of pollution and conflicts in the cache.
Collections
- Dissertações [261]