Dissertação

{en_GB=Exploiting Processing Near Cache for Memory Bound Vector Operations} {} EVALUATED

{pt=Para reduzir o tempo de acesso à memória, grande parte dos processadores recentes incluí caches. Apesar dos benefícios que estas estruturas trazem ao nível do desempenho, operações convencionais como cópias, mapeamentos e reduções simples requerem a transferência de grandes quantidades de dados para o processador. Isto impõe custos significativos em termos de desempenho e energia, sendo a maior parte do tempo de processamento despendido a transferir dados entre o processador e a hierarquia de memória. Para mitigar este problema, um Sistema de Computação em Cache (designado por CCS) que acelera a execução de funções cuja performance é limitada pela largura de banda da memória é apresentado no âmbito desta tese. O CCS tira partido de linhas de cache longas e localidade dos operandos para evitar a transferência de dados para o processador, e explora o paralelismo das unidades de computação vetoriais para acelerar 48 operações frequentemente usadas em padrões de mapeamento e redução. O CCS foi validado por simulação e comparado com o soft-processador PULPino a executar numa placa de avaliação Xilinx ZYNQ-7 ZC706. Adicionalmente, o CCS foi integrado num sistema em conjunto com o soft-processador MB-LITE e um subsistema de memória, e o sistema foi implementado numa placa de desenvolvimento Xilinx Virtex-7 VC709. Comparado com o MB-LITE, o CCS apresenta melhorias de desempenho de 18x a 94x, e melhorias de eficiência energética de 11x a 67x. Por outro lado, o desempenho do CCS é melhor que o do PULPino entre 132x e 401x para operandos com 1024 elementos., en=To reduce the average memory access time, most current processors make use of a multilevel cache subsystem. However, despite the proven benefits of such cache structures in the resulting throughput, conventional operations such as copy, simple maps and reductions still require moving large amounts of data to the processing cores. This imposes significant energy and performance overheads, with most of the execution time being spent moving data across the memory hierarchy. To mitigate this problem, a CCS (Cache Compute System) that targets memory-bound kernels such as map and reduce operations is proposed. The developed CCS takes advantage of long cache lines and data locality to avoid data transfers to the processor, and exploits the intrinsic parallelism of vector compute units to accelerate a set of 48 operations commonly used in map and reduce patterns. The CCS architecture was validated by simulation using gem5 and compared with a PULPino soft-core running on a Xilinx ZYNQ-7 ZC706 Evaluation Board. Furthermore, the CCS was integrated in a system featuring an MB-LITE soft-core and a memory subsystem, and the system was implemented in a Xilinx Virtex-7 VC709 Development Board. When compared to the MB-Lite core, the proposed CCS presents performance improvements in the execution of the commands ranging from 18x to 94x, and energy efficiency gains from 11x to 67x. On the other hand, the CCS can perform between 132x and 401x better than PULPino for 1024 32-bit elements operands.}
{pt=Processamento perto dos dados, Processamento perto da cache, Operações limitadas pela memória, Operações de mapeamento e redução, Sistema de Computação em Cache, Implementação RTL, en=Near Data Processing, Near-cache computing, Memory bound operations, map and reduce, Cache Compute System, RTL implementation}

Novembro 26, 2018, 14:0

Orientação

ORIENTADOR

Pedro Filipe Zeferino Tomás

Departamento de Engenharia Electrotécnica e de Computadores (DEEC)

Professor Auxiliar

ORIENTADOR

Gabriel Falcão Paiva Fernandes

Universidade de Coimbra

Professor Auxiliar