Publicada a versão Vortex 2.1, um GPGPU aberto baseado na arquitetura RISC-V

Publicada uma nova edição do projeto Vortex, que desenvolve um GPGPU aberto baseado na arquitetura do conjunto de instruções RISC-V, projetado para realizar cálculos paralelos utilizando a API OpenCL e o modelo de execução SIMT (Single Instruction, Multiple Threads). O projeto também pode ser utilizado em pesquisas na área de gráficos 3D e no desenvolvimento de novas arquiteturas de GPU. Esquemas, descrições de blocos de hardware em linguagem Verilog, simulador, drivers e documentação de projeto correspondente são distribuídos sob a licença Apache 2.0.

A base do GPGPU é um ISA típico RISC-V, expandido com algumas instruções adicionais necessárias para suportar as funções da GPU e o gerenciamento de fluxos. As mudanças na arquitetura do conjunto de instruções RISC-V são minimizadas e, sempre que possível, utiliza-se instruções vetoriais já existentes. Uma abordagem semelhante é aplicada no projeto RV64X, que também desenvolve uma GPU aberta baseada em tecnologias RISC-V.

Publicada a versão Vortex 2.1, um GPGPU aberto baseado na arquitetura RISC-V

Principais características do Vortex:

  • Suporte para arquiteturas de conjunto de instruções RISC-V de 32 e 64 bits RV32IMF e RV64IMAFD.
  • Número configurável de núcleos, blocos de tarefas (warps) e threads.
  • Número configurável de ALU, FPU, LSU e SFU para cada núcleo.
  • Largura de emissão do pipeline (pipeline issue width) configurável.
  • Memória compartilhada opcional e caches de níveis L1, L2 e L3.
  • Suporte para a especificação OpenCL 1.2.
  • Possibilidade de implementação baseada em FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 e Xilinx Versal VCK5000.
  • Instruções avançadas: «tex» para acelerar o processamento de texturas, vx_rast para gerenciar a rasterização, vx_rop para processar fragmentos, profundidade e transparência, vx_imadd para a operação «multiplicar e somar», vx_wspawn, vx_tmc e vx_bar para ativar os frentes de instruções e os fluxos dentro delas (wavefront, conjunto de threads, executadas paralelamente por SIMD Engine), vx_split e vx_join.
  • Suporte à representação intermediária de shaders SPIR-V é implementado através da translação para OpenCL.
  • Para desenvolvimento de aplicações, é oferecida uma ferramenta que inclui variantes adaptadas do PoCL (compilador e runtime OpenCL), LLVM/Clang, GCC e Binutils para trabalhar com Vortex.
  • É suportada a simulação de funcionamento do chip utilizando Verilator (simulador Verilog), RTLSIM (simulação RTL) e SimX (simulação de software).

Para gráficos baseados em tecnologia Vortex, está em desenvolvimento a GPU Skybox aberta, que suporta a API gráfica Vulkan. O protótipo Skybox, criado com FPGA Altera Stratix 10 e contendo 32 núcleos (512 threads), conseguiu, a uma frequência de 230 MHz, alcançar um desempenho de preenchimento de 3,7 gigapixels por segundo (29,4 gigatransações por segundo). Vale ressaltar que esta é a primeira GPU aberta com implementação de software e hardware que suporta Vulkan.

Entre as mudanças na versão Vortex 2.1:

  • Adicionado o API spawn_taskgroups para iniciar núcleos que usam memória local e suportam a definição de barreiras na memória.
  • Proposto uma nova extensão para criação de núcleos binários relocáveis.
  • Adicionados chamados vx_mem_reserve, vx_mem_access e vx_mem_address na API de gerenciamento de memória.
  • Adicionado um novo API de runtime vx_check_occupancy.
  • Adicionada uma opção ao driver da GPU para verificar testes OpenCL na GPU local.
  • Adicionados testes OpenCL que utilizam memória local (psum, sgemm2, sgemm3).
  • Foram incluídas edições da biblioteca libc e librt adaptadas especialmente para Vortex.
  • Adicionado suporte para fusão de blocos livres de memória adjacentes (memory coalescing).
  • Realizada a otimização da microarquitetura.
  • Adicionado um novo script de build que separa os arquivos fonte do diretório de build.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster