Vortex 2.0 disponível, GPGPU aberto baseado na arquitetura RISC-V

Foi publicada a segunda edição do projeto Vortex, que desenvolve um GPGPU aberto baseado na arquitetura do conjunto de instruções RISC-V, projetado para executar 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 para pesquisas em gráficos 3D e no desenvolvimento de novas arquiteturas de GPU. Esquemas, descrições de blocos de hardware em Verilog, simuladores, drivers e documentação de projeto relacionada são distribuídos sob a licença Apache 2.0.

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

Vortex 2.0 disponível, GPGPU aberto baseado na arquitetura RISC-V

Para gráficos com tecnologias Vortex, está sendo desenvolvido o GPU Skybox aberto, que suporta a API gráfica Vulkan. O protótipo do Skybox, criado com a FPGA Altera Stratix 10 e incluindo 32 núcleos (512 threads), permitiu alcançar uma taxa de preenchimento de 3,7 gigapixels por segundo (29,4 gigatransações por segundo) a uma frequência de 230 MHz. Ressalta-se que este é o primeiro GPU aberto com implementação de software e hardware que suporta Vulkan.

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 configurável.
  • Memória compartilhada opcional e caches nos níveis L1, L2 e L3.
  • Suporte para a especificação OpenCL 1.2.
  • Possibilidade de implementação em FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 e Xilinx Versal VCK5000.
  • Instruções extendidas: «tex» para acelerar o processamento de texturas, vx_rast para gerenciamento de rasterização, vx_rop para processamento de fragmentos, profundidade e transparência, vx_imadd para realizar a operação «multiplicar e somar», vx_wspawn, vx_tmc e vx_bar para ativar frentes de instrução e fluxos nelas (wavefront, conjunto de threads, executados paralelamente pelo SIMD Engine), vx_split e vx_join.
  • Suporte para representação intermediária de shaders SPIR-V realizada através de tradução para OpenCL.
  • Para o desenvolvimento de aplicações, está disponível um conjunto de ferramentas que inclui versões adaptadas para trabalhar com Vortex do PoCL (compilador e runtime OpenCL), LLVM/Clang, GCC e Binutils.
  • Suporte para simulação do funcionamento do chip utilizando Verilator (simulador Verilog), RTLSIM (simulação RTL) e SimX (simulação em software).

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

  • Otimização da microarquitetura realizada.
  • Suporte adicionado para a arquitetura de conjunto de instruções RISC-V 64 bits RV64IMAFD.
  • Possibilidade de implementação em FPGA Xilinx adicionada.
  • Suporte adicionado para LLVM 16 e Ubuntu 20.04.
  • Refatoração realizada e correções de falhas identificadas na avaliação de qualidade.

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