Improving the efficiency of multi threaded processing in-memory

Detalhes bibliográficos
Autor(a) principal: Forlin, Bruno Endres
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