RV64X, uma GPU de código aberto baseada em tecnologias RISC-V

Um grupo de entusiastas (com contribuições da Pixilica) está desenvolvendo o projeto RV64X, que visa criar um conjunto de gráficos 3D complementares e instruções de processamento de multimídia que podem ser usados ​​para integrar a funcionalidade do GPU em processadores RISC-V.

O projeto está posicionado como gratuito, Não exige royalties e não impõe termos de uso, permitindo que você crie GPUs totalmente abertas baseadas no RV64X.

Pixilica faz parceria com RV64X para propor um novo conjunto de instruções gráficas projetadas para gráficos 3D e processamento de mídia. Pode ser uma CPU-GPU ISA fundida. 

Essas novas instruções são baseadas no conjunto de instruções do vetor base RISC-V. Eles irão adicionar suporte para novos tipos de dados que são gráficos específicos como extensões em camadas no espírito do kernel RISC-V ISA.

Sobre o RV64X

RV64X é baseado nas instruções do vetor ISA RISC-V, que são aprimorados com suporte para novos tipos de dados e extensões específicas de gráficos.

Por exemplo, operações adicionais são propostas para processar pixels (RGBA), pontos (xyzw), elementos de textura (UVW-Texels), vetores (operações com 2-4 elementos), parâmetros de material, cálculos de iluminação, matemática transcendental, buffers de profundidade (Z - buffer) e frame buffer (Framebuffer).

O primeiro protótipo A GPU baseada em RV64X é projetada para uso em microcontroladores e será limitado ao suporte para a API gráfica Vulkan, embora com o tempo, eles prometem adicionar suporte para OpenGL e DirectX.

A principal motivação para o desenvolvimento é a necessidade de uma arquitetura flexível que permita conectar extensões para resolver problemas específicos com eficiência, como truncamento de cones em duas fases, uso de transformações rápidas de Fourier para profundidades de cores arbitrárias e implementação de hardware SLAM.

Por exemplo RV64X permite a implementação de etapas próprias para o pipeline computacional, buffers geométricos, de pixel e de quadro, além de criar seus próprios tessellators.

Também é mencionado que, com o RV64X, os fabricantes de chips poderão preparar as soluções de que precisam com base no backbone existente, com foco em recursos avançados, sem ter que perder tempo com coisas comuns.

RV64X está evoluindo como um ISA híbrido CPU-GPU, permitindo a criação de microcontroladores gráficos especializados e processadores multicore que combinam núcleos computacionais com blocos para realizar operações gráficas.

Um processador que combina um núcleo RISC-V com um bloco de GPU parece uma única unidade (sem mapeamento de GPU explícito) e é programado usando um conjunto de instruções unificado de 64 bits e um modelo SIMD para paralelismo da camada de dados. A arquitetura RV64X está evoluindo para uma implementação compacta e eficiente que pode ser implementada com base em FPGAs e ASICs.

O movimento de código aberto que transformou o desenvolvimento de software está ganhando espaço entre os desenvolvedores de hardware. Os primeiros esforços focados na arquitetura RISC-V estão abrindo o caminho. Exploramos a promessa e as armadilhas do desenvolvimento de hardware aberto em nosso próximo projeto especial de código aberto.

Entre as características da arquitetura RV64X o uso de um único modelo de memória é encontrado na CPU e GPU, que elimina mecanismos RPC / IPC adicionais para traduzir chamadas entre a memória da GPU e a CPU ao processar operações de API 3D.

As operações gráficas padrão podem ser implementadas no nível do microcódigo. Há suporte para a criação de sombreadores, rasterizadores e extensões de traçado de raio personalizados. Além disso, as operações vetoriais podem ser implementadas no nível do microcódigo para resolver problemas de simulação, visão computacional e aprendizado de máquina.

A implementação de referência RV64X inclui cache L1 de 32 KB para instruções e dados, SRAM de 8 KB para microcódigo, decodificador de instrução, implementação de hardware de conjuntos de instruções RV32V e RV64X, decodificador de instrução estendida definida por microcódigo, unidade de lógica aritmética vetorial (ALU), arquivo de registro de 136 bits com 1024 elementos, uma Unidade de Função Especial (SFU), uma Unidade de Textura e um framebuffer local configurável.

Finalmente, se você quiser saber mais sobre isso você pode verificar os detalhes na postagem original. O link é este.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.