Improving the efficiency of multi threaded processing in-memory
Autor(a) principal: | |
---|---|
Data de Publicação: | 2022 |
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/274160 |
Resumo: | Processamento em memória (PIM), com a ajuda de modernas tecnologias de integra ção, emergiu como uma solução prática para o memory wall enquanto melhora a performance e efciciência energética de aplicações contemporâneas. Novas tecnologias de memória juntamente com o surgimento de técnicas de integração 3D proveram os meios para computar dados na memória. Seja explorando as capacidades analógicas ou integrando lógica e memória. Dispositivos PIM tem o objetivo de explorar toda a banda da memória, usando o paralelismo de dados das aplicações de diferentes formas. Com modelos de programação genéricos, e dispositivos de hardware que podem ser acessados independentes, é natural que programadores tentem explorar paralelismo a nível de thread. Com threads de propósito geral, estruturas de dados compartilhados inevitavelmente surgem, as quais devem ser lidadas corretamente para garantir consistência na memória. Independentemente da maneira como essa consistência é mantida, dados devem ser transmitidos entre diferentes regiões de memória. Os atuais dispositivos comerciais PIM ignoram esse aspectos em seus designs e deixam a transferencia de dados à cargo do processador. Enviando dados através do bus de memória para as caches, onde eles serão rearranja dos e enviados de volta para a memória. Nós argumentamos que esse processo vai contra os princípios de design PIM, aumentando os movimentos de dados entre o PIM e o processador. Nós demonstramos essa ineficiência analiticamente e experimen talmente, desenvolvendo um modelo de consumo de potência que consegue extrair limites superiores e inferiores para a comunicação via o processador. Dependendo do processador usado, retransmitir dados através das caches pode custar 3 × mais energia, salientando os altos custos energéticos em usar o processador para esta tarefa. Para rodar corretamente esses experimentos, nós precisamos executar benchmarks muito integrados com o processador, enquanto extraímos suas métricas. Existe uma falta de ferramentas capazes de rapidamente simular diferentes designs PIM e suas integrações com múltiplos processadores multi-core. Logo, essa dissertação apresenta Sim2PIM um simples simulador para dispositivos PIM que integra qualquer arquite tura PIM com um processador multi-core e a hierarquia de memória. Analisando casos de compartilhamento de dados, esse trabalho mostra que essa comunicação, se execudada pelo processador, pode minar os benefícios de dispositivos PIM. Nós usamos esse simulador para demonstrar que se o dispositivo PIM depende do proces sador para compartilhamento de dados, o custo de comunicação entre threads escala mais rápido com o tamanho dos dados do que o custo da computação, em alguns casos podendo custar 86% do tempo total de execução. Nós propomos uma solução interna para o PIM que reduz os custos de performance e energia de compartilhamento de dados, mantendo a comunicação dentro do módulo de memória. Esse mecanismo pode acessar unidades PIM e seus espaços de memória independentemente, se desacoplando do padrão de acesso à memória DDR, enquanto opera sem supervisão do processador. Com baixos custos de área e potência, podemos atingir ganhos de performance e energia em transferências de dados entre unidades PIM. A solução Inter-PIM reduz o custo de performance de movimento de dados entre threads em 20% quando os dados estão alinhados na memória e em mais de 4× quando não estão. Inter-PIM evita usar o processador para comunicação, significativamente melhorando a eficiência energética do compartilhamento de dados em mais de 9×. |
id |
URGS_ac77a3a218845c3907a2798d434b93e0 |
---|---|
oai_identifier_str |
oai:www.lume.ufrgs.br:10183/274160 |
network_acronym_str |
URGS |
network_name_str |
Biblioteca Digital de Teses e Dissertações da UFRGS |
repository_id_str |
1853 |
spelling |
Forlin, Bruno EndresCarro, LuigiSantos, Paulo Cesar dos2024-03-26T05:51:03Z2022http://hdl.handle.net/10183/274160001139592Processamento em memória (PIM), com a ajuda de modernas tecnologias de integra ção, emergiu como uma solução prática para o memory wall enquanto melhora a performance e efciciência energética de aplicações contemporâneas. Novas tecnologias de memória juntamente com o surgimento de técnicas de integração 3D proveram os meios para computar dados na memória. Seja explorando as capacidades analógicas ou integrando lógica e memória. Dispositivos PIM tem o objetivo de explorar toda a banda da memória, usando o paralelismo de dados das aplicações de diferentes formas. Com modelos de programação genéricos, e dispositivos de hardware que podem ser acessados independentes, é natural que programadores tentem explorar paralelismo a nível de thread. Com threads de propósito geral, estruturas de dados compartilhados inevitavelmente surgem, as quais devem ser lidadas corretamente para garantir consistência na memória. Independentemente da maneira como essa consistência é mantida, dados devem ser transmitidos entre diferentes regiões de memória. Os atuais dispositivos comerciais PIM ignoram esse aspectos em seus designs e deixam a transferencia de dados à cargo do processador. Enviando dados através do bus de memória para as caches, onde eles serão rearranja dos e enviados de volta para a memória. Nós argumentamos que esse processo vai contra os princípios de design PIM, aumentando os movimentos de dados entre o PIM e o processador. Nós demonstramos essa ineficiência analiticamente e experimen talmente, desenvolvendo um modelo de consumo de potência que consegue extrair limites superiores e inferiores para a comunicação via o processador. Dependendo do processador usado, retransmitir dados através das caches pode custar 3 × mais energia, salientando os altos custos energéticos em usar o processador para esta tarefa. Para rodar corretamente esses experimentos, nós precisamos executar benchmarks muito integrados com o processador, enquanto extraímos suas métricas. Existe uma falta de ferramentas capazes de rapidamente simular diferentes designs PIM e suas integrações com múltiplos processadores multi-core. Logo, essa dissertação apresenta Sim2PIM um simples simulador para dispositivos PIM que integra qualquer arquite tura PIM com um processador multi-core e a hierarquia de memória. Analisando casos de compartilhamento de dados, esse trabalho mostra que essa comunicação, se execudada pelo processador, pode minar os benefícios de dispositivos PIM. Nós usamos esse simulador para demonstrar que se o dispositivo PIM depende do proces sador para compartilhamento de dados, o custo de comunicação entre threads escala mais rápido com o tamanho dos dados do que o custo da computação, em alguns casos podendo custar 86% do tempo total de execução. Nós propomos uma solução interna para o PIM que reduz os custos de performance e energia de compartilhamento de dados, mantendo a comunicação dentro do módulo de memória. Esse mecanismo pode acessar unidades PIM e seus espaços de memória independentemente, se desacoplando do padrão de acesso à memória DDR, enquanto opera sem supervisão do processador. Com baixos custos de área e potência, podemos atingir ganhos de performance e energia em transferências de dados entre unidades PIM. A solução Inter-PIM reduz o custo de performance de movimento de dados entre threads em 20% quando os dados estão alinhados na memória e em mais de 4× quando não estão. Inter-PIM evita usar o processador para comunicação, significativamente melhorando a eficiência energética do compartilhamento de dados em mais de 9×.Processing-in-Memory (PIM), with the help of modern memory integration tech nologies, has emerged as a practical approach to mitigate the memory wall and improve performance and energy efficiency in contemporary applications. Novel memory technologies and the advent of 3D-stacked integration have provided means to compute data in memory, either by exploring the inherent analog capabilities or by tight-coupling logic and memory. PIM devices aim to explore the entire memory bandwidth, leveraging the application’s data parallelism in different ways. With general-purpose programming models and hardware devices that can be accessed inde pendently, it is only natural that programmers try to exploit thread-level parallelism in the applications. Shared data structures inevitably appear with general-purpose threads and must be handled correctly to maintain memory consistency. Whether this maintenance is done by software or hardware, data must still travel between different memory regions. Current commercial PIM devices ignore data transfer in their designs and leave this task to the host processor, sending data through the memory bus to the host caches, where it will be rearranged and sent back to memory. We argue that this process goes against the principles of PIM design by increasing data movement between PIM and host. We demonstrate this inefficiency analytically and, with experiments, develop a power model that can extract an upper and lower bound for communication energy in the host. Depending on the host processor used, relaying data through the caches can cost 3 × more energy than the DRAM access, highlighting the heavy energy costs involved in using the host for communication. To correctly execute these experiments, we need to run benchmarks tightly integrated with the host processor while extracting its metrics. There is a lack of tools capable of quickly simulating different PIM designs and their suitable integration with multiple multi-core host processors. Thus, this dissertation presents Sim2PIM, a Simulation Framework for PIM devices that seamlessly integrates any PIM architecture with a multi-core host processor and the memory hierarchy. By analyzing data-sharing corner cases, this work shows that this communication, if executed through the host, can hinder the benefits of PIM devices. We use the simulator to demonstrate that if the PIM device relies on the host for data-sharing, communication between PIM units scales faster with the data size compared to computation. In some cases, it can cost 86% of the total execution time. We propose a PIM-side communication solution that can reduce the performance and energy costs of data-sharing by maintaining data in the memory module. Inter-PIM can access PIM units and their memory spaces independently, decoupling them from the standard DDR memory access pattern while operating without host oversight. We can achieve performance and energy gains on data transfers between PIM units with a low area and power overheads. The Inter-PIM solution reduces the performance costs of inter-thread data movement by around 20% when data is aligned in memory and more than 4× when data is not aligned. Inter-PIM completely avoids using the host hardware to communicate, significantly improving data-sharing energy efficiency by more than 9×.application/pdfengMemoria : ProcessamentoParalelismoProcessing in-memoryMemory energyMulti-threadSimulationThread-communicationImproving the efficiency of multi threaded processing in-memoryMelhorando a eficiência de processamento em memória em múltiplas threads info: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-RS2022mestradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSTEXT001139592.pdf.txt001139592.pdf.txtExtracted Texttext/plain192167http://www.lume.ufrgs.br/bitstream/10183/274160/2/001139592.pdf.txtd025a0b857ccdc4f8f82fad31beeb164MD52ORIGINAL001139592.pdfTexto completo (inglês)application/pdf2550280http://www.lume.ufrgs.br/bitstream/10183/274160/1/001139592.pdf79c91c7d0c5973d1a9ad7153a6eb5e01MD5110183/2741602024-03-27 06:38:43.078822oai:www.lume.ufrgs.br:10183/274160Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532024-03-27T09:38:43Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false |
dc.title.pt_BR.fl_str_mv |
Improving the efficiency of multi threaded processing in-memory |
dc.title.alternative.pt.fl_str_mv |
Melhorando a eficiência de processamento em memória em múltiplas threads |
title |
Improving the efficiency of multi threaded processing in-memory |
spellingShingle |
Improving the efficiency of multi threaded processing in-memory Forlin, Bruno Endres Memoria : Processamento Paralelismo Processing in-memory Memory energy Multi-thread Simulation Thread-communication |
title_short |
Improving the efficiency of multi threaded processing in-memory |
title_full |
Improving the efficiency of multi threaded processing in-memory |
title_fullStr |
Improving the efficiency of multi threaded processing in-memory |
title_full_unstemmed |
Improving the efficiency of multi threaded processing in-memory |
title_sort |
Improving the efficiency of multi threaded processing in-memory |
author |
Forlin, Bruno Endres |
author_facet |
Forlin, Bruno Endres |
author_role |
author |
dc.contributor.author.fl_str_mv |
Forlin, Bruno Endres |
dc.contributor.advisor1.fl_str_mv |
Carro, Luigi |
dc.contributor.advisor-co1.fl_str_mv |
Santos, Paulo Cesar dos |
contributor_str_mv |
Carro, Luigi Santos, Paulo Cesar dos |
dc.subject.por.fl_str_mv |
Memoria : Processamento Paralelismo |
topic |
Memoria : Processamento Paralelismo Processing in-memory Memory energy Multi-thread Simulation Thread-communication |
dc.subject.eng.fl_str_mv |
Processing in-memory Memory energy Multi-thread Simulation Thread-communication |
description |
Processamento em memória (PIM), com a ajuda de modernas tecnologias de integra ção, emergiu como uma solução prática para o memory wall enquanto melhora a performance e efciciência energética de aplicações contemporâneas. Novas tecnologias de memória juntamente com o surgimento de técnicas de integração 3D proveram os meios para computar dados na memória. Seja explorando as capacidades analógicas ou integrando lógica e memória. Dispositivos PIM tem o objetivo de explorar toda a banda da memória, usando o paralelismo de dados das aplicações de diferentes formas. Com modelos de programação genéricos, e dispositivos de hardware que podem ser acessados independentes, é natural que programadores tentem explorar paralelismo a nível de thread. Com threads de propósito geral, estruturas de dados compartilhados inevitavelmente surgem, as quais devem ser lidadas corretamente para garantir consistência na memória. Independentemente da maneira como essa consistência é mantida, dados devem ser transmitidos entre diferentes regiões de memória. Os atuais dispositivos comerciais PIM ignoram esse aspectos em seus designs e deixam a transferencia de dados à cargo do processador. Enviando dados através do bus de memória para as caches, onde eles serão rearranja dos e enviados de volta para a memória. Nós argumentamos que esse processo vai contra os princípios de design PIM, aumentando os movimentos de dados entre o PIM e o processador. Nós demonstramos essa ineficiência analiticamente e experimen talmente, desenvolvendo um modelo de consumo de potência que consegue extrair limites superiores e inferiores para a comunicação via o processador. Dependendo do processador usado, retransmitir dados através das caches pode custar 3 × mais energia, salientando os altos custos energéticos em usar o processador para esta tarefa. Para rodar corretamente esses experimentos, nós precisamos executar benchmarks muito integrados com o processador, enquanto extraímos suas métricas. Existe uma falta de ferramentas capazes de rapidamente simular diferentes designs PIM e suas integrações com múltiplos processadores multi-core. Logo, essa dissertação apresenta Sim2PIM um simples simulador para dispositivos PIM que integra qualquer arquite tura PIM com um processador multi-core e a hierarquia de memória. Analisando casos de compartilhamento de dados, esse trabalho mostra que essa comunicação, se execudada pelo processador, pode minar os benefícios de dispositivos PIM. Nós usamos esse simulador para demonstrar que se o dispositivo PIM depende do proces sador para compartilhamento de dados, o custo de comunicação entre threads escala mais rápido com o tamanho dos dados do que o custo da computação, em alguns casos podendo custar 86% do tempo total de execução. Nós propomos uma solução interna para o PIM que reduz os custos de performance e energia de compartilhamento de dados, mantendo a comunicação dentro do módulo de memória. Esse mecanismo pode acessar unidades PIM e seus espaços de memória independentemente, se desacoplando do padrão de acesso à memória DDR, enquanto opera sem supervisão do processador. Com baixos custos de área e potência, podemos atingir ganhos de performance e energia em transferências de dados entre unidades PIM. A solução Inter-PIM reduz o custo de performance de movimento de dados entre threads em 20% quando os dados estão alinhados na memória e em mais de 4× quando não estão. Inter-PIM evita usar o processador para comunicação, significativamente melhorando a eficiência energética do compartilhamento de dados em mais de 9×. |
publishDate |
2022 |
dc.date.issued.fl_str_mv |
2022 |
dc.date.accessioned.fl_str_mv |
2024-03-26T05:51:03Z |
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/274160 |
dc.identifier.nrb.pt_BR.fl_str_mv |
001139592 |
url |
http://hdl.handle.net/10183/274160 |
identifier_str_mv |
001139592 |
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/274160/2/001139592.pdf.txt http://www.lume.ufrgs.br/bitstream/10183/274160/1/001139592.pdf |
bitstream.checksum.fl_str_mv |
d025a0b857ccdc4f8f82fad31beeb164 79c91c7d0c5973d1a9ad7153a6eb5e01 |
bitstream.checksumAlgorithm.fl_str_mv |
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_ |
1810085641490268160 |