Mostrar registro simples

dc.contributor.advisorCarro, Luigipt_BR
dc.contributor.authorForlin, Bruno Endrespt_BR
dc.date.accessioned2024-03-26T05:51:03Zpt_BR
dc.date.issued2022pt_BR
dc.identifier.urihttp://hdl.handle.net/10183/274160pt_BR
dc.description.abstractProcessing-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×.en
dc.description.abstractProcessamento 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×.pt_BR
dc.format.mimetypeapplication/pdfpt_BR
dc.language.isoengpt_BR
dc.rightsOpen Accessen
dc.subjectProcessing in-memoryen
dc.subjectMemoria : Processamentopt_BR
dc.subjectParalelismopt_BR
dc.subjectMemory energyen
dc.subjectMulti-threaden
dc.subjectSimulationen
dc.subjectThread-communicationen
dc.titleImproving the efficiency of multi threaded processing in-memorypt_BR
dc.title.alternativeMelhorando a eficiência de processamento em memória em múltiplas threads pt
dc.typeDissertaçãopt_BR
dc.contributor.advisor-coSantos, Paulo Cesar dospt_BR
dc.identifier.nrb001139592pt_BR
dc.degree.grantorUniversidade Federal do Rio Grande do Sulpt_BR
dc.degree.departmentInstituto de Informáticapt_BR
dc.degree.programPrograma de Pós-Graduação em Computaçãopt_BR
dc.degree.localPorto Alegre, BR-RSpt_BR
dc.degree.date2022pt_BR
dc.degree.levelmestradopt_BR


Thumbnail
   

Este item está licenciado na Creative Commons License

Mostrar registro simples