Mostrar registro simples

dc.contributor.advisorAlves, Marco Antonio Zanata, 1984-pt_BR
dc.contributor.otherUniversidade Federal do Paraná. Setor de Ciências Exatas. Programa de Pós-Graduação em Informáticapt_BR
dc.creatorSokulski, Rodrigo Machniewiczpt_BR
dc.date.accessioned2023-03-02T15:03:20Z
dc.date.available2023-03-02T15:03:20Z
dc.date.issued2022pt_BR
dc.identifier.urihttps://hdl.handle.net/1884/81390
dc.descriptionOrientador: Prof. Dr. Marco Antonio Zanata Alvespt_BR
dc.descriptionDissertação (mestrado) - Universidade Federal do Paraná, Setor de Ciências Exatas, Programa de Pós-Graduação em Informática. Defesa : Curitiba, 09/12/2022pt_BR
dc.descriptionInclui referências: p. 91-98pt_BR
dc.descriptionÁrea de concentração: Ciência da Computaçãopt_BR
dc.description.abstractResumo: O rápido desenvolvimento dos sistemas computacionais nas últimas décadas levou ao surgimento de uma grande disparidade entre as velocidades de processamento e fornecimento de dados, ocasionando o problema conhecido como Memory Wall. Dispositivos Near-Data Processing (NDP), também denominados Processing-In-Memory (PIM), buscam mitigar esse problema adicionando unidades de processamento próximas aos dados ou junto aos circuitos que os armazenam. O surgimento das memórias 3D, com uma camada lógica capaz de suportar circuitos adicionais, fez emergir diversas novas propostas de dispositivos NDP. Dentre essas propostas, as mais eficientes executam instruções vetoriais próximas à memória. A Vector-In-Memory Architecture (VIMA) é um exemplo desse processamento vetorial. Essa arquitetura propõe a inclusão de algumas unidades funcionais vetoriais na camada lógica de memórias 3D, permitindo que instruções a serem executadas dentro da memória acessem o paralelismo interno dela. O uso de dispositivos NDP, em sua grande maioria, depende de conhecimentos específicos de programadores sobre intrinsics ou bibliotecas especializadas que acessam suas funcionalidades. Porém, essa dependência dificulta a adoção desses dispositivos, além de ser suscetível a erros. Outra abordagem seria o uso de compiladores capazes de fornecer conversões automáticas para NDP. Contudo, a recompilação de programas proprietários ou antigos pode ser impraticável, enquanto a manutenção de diferentes versões de código para as diversas variações de NDP pode ser inviável. De forma alternativa, extensões de hardware também podem ser usadas para essas conversões. Esses mecanismos são capazes de converter as instruções que seriam executadas pelo processador para instruções NDP durante a execução, não exigindo compilações especializadas ou conhecimentos adicionais por parte dos programadores. Porém, até onde sabemos, a tradução binária foi proposta apenas para NDPs com instruções escalares, dependendo do auxílio de bibliotecas especializadas para suas conversões. A contribuição deste trabalho é o Simple AVX to PIM Vectorizer (SAPIVe), uma extensão de hardware capaz de converter durante a execução as instruções vetoriais de arquiteturas com processadores tradicionais para instruções vetoriais de processamento em memória VIMA. Ao ser avaliado sobre programas sintéticos ideais para a conversão, o mecanismo proposto obtém ganhos de desempenho no tempo de execução de até 5x, em relação a uma execução tradicional em CPU, sem perdas significativas para aplicações reais fora de seus padrões esperados de conversão. Tais ganhos podem aumentar em sistemas futuros, visto que o crescimento no tamanho do Reorder Buffer (ROB) dos processadores permite aumentar o número de conversões paralelas realizadas pelo SAPIVe.pt_BR
dc.description.abstractAbstract: The fast development of computer systems in recent decades has led to the rise of a significant disparity between the processing and data supply speeds, causing the problem known as Memory Wall. Near-Data Processing (NDP) devices, also known as Processing-In-Memory (PIM) devices, seek to mitigate this problem by adding processing units close to the data or close to the circuits that store it. The emergence of 3D memories, with a logical layer capable of supporting additional circuits, gave rise to several new proposals for NDPs devices. Among these proposals, the most efficient execute vector instructions close to memory. Vector-In-Memory Architecture (VIMA) is an example of this vector processing. This architecture offers the inclusion of some vector units in the logical layer of 3D memories, allowing instructions executed inside the memory to access its internal parallelism. The use of NDP devices, for the most part, depends on programmers’ specific knowledge of intrinsics or specialized libraries that access their functionality. However, this dependency hinders these techniques adoption, in addition to being susceptible to errors. Another approach would be to use compilers capable of providing automatic conversions for NDP, however recompiling proprietary or old programs may be impractical, while maintaining different code versions for the many variations of NDP may be unfeasible. Alternatively, hardware extensions can also be used for these conversions. These mechanisms are capable of converting the instructions that would be executed by the processor to NDP instructions in runtime, not requiring specialized compilations or additional knowledge on the part of programmers. Nonetheless, as far as we know, binary translation only have been proposed for NDPs with scalar instructions, depending on the aid of specialized libraries for its conversions. The main contribution of this work is Simple AVX to PIM Vectorizer (SAPIVe), a hardware extension capable of converting in runtime the traditional vector instructions into VIMA memory vector instructions. When evaluated on synthetic programs that are ideal for conversion, the proposed mechanism obtains speedups of up to 5x, in relation to a usual Central Processing Unit (CPU) execution, without significant losses for real applications outside their expected instructions pattern standards for conversion. Such gains may increase in future systems since the size growth in processor Reorder Buffer (ROB) allows increasing the number of SAPIVe parallel conversions.pt_BR
dc.format.extent1 recurso online : PDF.pt_BR
dc.format.mimetypeapplication/pdfpt_BR
dc.languagePortuguêspt_BR
dc.subjectProcessamento eletronico de dadospt_BR
dc.subjectSistemas de memoria de computadorespt_BR
dc.subjectMemória magnética (Computador)pt_BR
dc.subjectCiência da Computaçãopt_BR
dc.titleConversão dinâmica de instruções para processamento vetorial em memóriapt_BR
dc.typeDissertação Digitalpt_BR


Arquivos deste item

Thumbnail

Este item aparece na(s) seguinte(s) coleção(s)

Mostrar registro simples