Service Hotline
RISC-V tem sido um dos tópicos mais quentes da computação porque essa arquitetura de conjunto de instruções (ISA) permite ampla personalização e é fácil de entender, além de todo o benefício de código aberto e livre de licença. Existe até um projeto para projetar uma GPU de uso geral baseada no RISC-V ISA, e agora estamos testemunhando a portabilidade da biblioteca de software CUDA da Nvidia para a plataforma Vortex RISC-V GPGPU.
O CUDA (Computing Unified Device Architecture) da Nvidia representa uma plataforma de computação exclusiva e interface de programação de aplicativos (API) que roda na linha de placas gráficas da Nvidia. Quando um aplicativo é escrito para suporte CUDA, assim que o sistema descobre uma GPU baseada em CUDA, ele obtém muita aceleração de GPU do código.
Hoje, os pesquisadores investigaram uma maneira de habilitar o suporte ao kit de ferramentas de software CUDA em um projeto RISC-V GPGPU chamado Vortex. O Vortex RISC-V GPGPU foi projetado para fornecer uma GPU RISC-V para todo o sistema baseada no RV32IMF ISA. Isso significa que os núcleos de 32 bits podem escalar de designs de GPU de 1 a 32 núcleos. Ele oferece suporte à API gráfica OpenCL 1.2 e hoje também oferece suporte a algumas operações CUDA.
Os pesquisadores explicam: "...Neste projeto, propomos e construímos um pipeline para suportar a migração CUDA ponta a ponta: o pipeline aceita o código-fonte CUDA como entrada e os executa na arquitetura estendida da GPU RISC-V. Nosso O O pipeline consiste em várias etapas: traduzir o código-fonte CUDA para NVVM IR, converter NVVM IR para SPIR-V IR, encaminhar SPIR-V IR para POCL para obter o binário RISC-V e, finalmente, executar na arquitetura de arquivo binário GPU RISC-V estendida. "
O processo é visualizado na imagem acima, mostrando todos os passos para que funcione. Em termos simples, o código-fonte CUDA é representado em um formato de representação intermediária (IR) chamado NVVM IR, baseado no LLVM IR de código aberto. Posteriormente, foi convertido para IR de representação intermediária portátil padrão (SPIR-V), que foi então encaminhado para uma implementação portátil de código aberto do padrão OpenCL, chamada POCL. Como o Vortex suporta OpenCL, ele fornece código compatível e pode executá-lo sem problemas.
Para obter mais detalhes sobre esse processo complexo, clique abaixo para ler o artigo original. É importante ressaltar que você deve agradecer a esses pesquisadores por seus esforços para fazer o CUDA rodar em GPGPUs RISC-V. Embora este seja apenas um pequeno passo por enquanto, pode ser o início de uma era em que o RISC-V será usado para acelerar aplicativos de computação, assim como a linha de GPUs da Nvidia hoje.
Leitura estendida: O RISC-V pode alterar a GPU?
Qualquer pessoa que tenha estudado arquitetura de GPU sabe que esta é a construção SIMD de um processador vetorial. É um processador paralelo ultraeficiente que tem sido usado para tudo, desde executar simulações e ótimos jogos até ensinar robôs como obter IA e ajudar pessoas inteligentes a manipular o mercado de ações. Ele até verifica minha gramática enquanto escrevo isso.
Mas o campo da GPU se tornou um campo privado, e seu trabalho interno é feito pelo IP e eficaz suprimentos de desenvolvedores como AMD, Intel e Nvidia. E se houvesse um novo conjunto de instruções gráficas projetado para gráficos 3D e processamento de mídia? Bem, pode haver.
As novas instruções estão sendo construídas no conjunto básico de instruções vetoriais RISC-V. Eles adicionarão suporte para novos tipos de dados específicos de gráficos como extensões em camadas no espírito do ISA principal do RISC-V. Suporta operações de vetor, matemática anterior, pixel e textura e buffer Z/Frame. Poderia ser um ISA CPU-GPU fundido. O grupo lilibrary - RISC 3D a chama de RV64X (Figura 1) porque as instruções terão 64 bits (32 bits não serão suficientes para suportar um ISA robusto).
O grupo afirmou que sua motivação e objetivo era criar um design pequeno e eficiente, com programação e extensibilidade personalizadas. Deve proporcionar propriedade e desenvolvimento de propriedade intelectual de baixo custo e não competir com produtos comerciais. Ele pode ser implementado em alvos FPGA e ASIC e é gratuito e de código aberto. O projeto original tem como alvo microcontroladores de baixo consumo de energia que serão compatíveis com Khronos Vulkan e suportarão outras APIs (OpenGL, DirectX, etc.).
GPU + RISC-V
A equipe disse: “Não há necessidade de usar o mecanismo de chamada RPC/IPC para enviar chamadas de API 3D para espaço de memória não utilizado da CPU ou espaço de memória não utilizado da CPU para espaço de memória da GPU e vice-versa”,
A vantagem da abordagem CPU-GPU ISA "fundida" é que pipelines gráficos padrão podem ser usados em microcódigo e shaders personalizados podem ser suportados. Pode até incluir extensões de rastreamento de raios.
O design estará no formato Vblock (de um esforço de GPU Libre):
- É como VLIW (mas não realmente).
- Os blocos de instruções são precedidos por marcadores de registro que fornecem contexto adicional para instruções escalares dentro desse bloco.
- Os subblocos incluem comprimento do vetor, rotação, sobreposição de vetor/largura e previsão.
- Tudo isso é adicionado aos opcodes escalares!
- Não há opcodes vetoriais (nem é necessário nenhum).
- Em um contexto vetorial, é assim: se um opcode escalar usa um registrador, e esse registrador está listado no contexto vetorial, então o modo vetorial será ativado.
- A ativação faz com que o loop for em nível de hardware emita várias operações escalares consecutivas (em vez de apenas uma).
- Os implementadores são livres para implementar loops da maneira que desejarem - SIMD, multi-emissão, execução única; praticamente qualquer coisa.
O vetor RV32-V lida com operações vetoriais de 8, 16 bits ou 32 bits/elemento de 2 a 4 elementos. Haverá também instruções dedicadas para o pipeline geral de renderização de gráficos 3D para pontos XYZW de ponto fixo e flutuante de 64 e 128 bits. Pixels RGBA de 8, 16, 24 e 32 bits; Texels UVW de 8 e 16 bits por componente; e configurações de luz e material (Ia, ka, Id, kd, Is, ks, etc.).
O vetor de atributos é representado como uma matriz 4×4. O sistema suportará nativamente matrizes 2×2 e 3×3. O suporte vetorial também pode ser adequado para simulações numéricas usando tipos de dados inteiros de 8 bits comuns em aplicações de IA e aprendizado de máquina.
Rasterizadores personalizados, como splines, superfícies SubDiv e patches podem ser incluídos no design. Este método também permite a inclusão de estágios de pipeline personalizados, estágios de geometria/pixel/framebuffer personalizados, subdivisores personalizados e operações de instanciação personalizadas.
RV64X
-
Cache SRAM de instruções/dados (32 kB)
-
Microcódigo SRAM (8 kB)
-
Decodificador de instrução de função dupla (conectado para RV32V e X; decodificador de instrução microcodificado para ISA personalizado)
-
ALU de vetor quádruplo (32 bits/ALU-fixo/flutuante)
-
Arquivo de registro de 136 bits (1k elementos)
-
unidade de função especial
-
unidade de textura
-
Framebuffer local configurável
RV64X é uma arquitetura escalável (Figura 2). Seu método de fusão é novo, assim como o uso de registros configuráveis para tipos de dados personalizados. O microcódigo baseado em SRAM definido pelo usuário pode ser usado para implementar extensões como estágios rasterizadores personalizados, traçado de raio, visão de máquina e aprendizado de máquina. Um único design pode ser aplicado a um microcontrolador gráfico independente ou a uma solução multi-core com unidades de sombreamento escaláveis.
Extensões gráficas para RISC-V abordam escalabilidade e multilinguismo. Isso permite casos de uso de nível superior que levam a mais inovação.
Qual é o próximo
A especificação RV64X ainda está em desenvolvimento inicial e sujeita a alterações. Um fórum de discussão está sendo estabelecido. O objetivo imediato é construir um exemplo de implementação usando o simulador de conjunto de instruções. Isso abrirá implementações de IP de origem e FPGA de IP personalizado projetadas como projetos de código aberto.
Isenção de responsabilidade: este artigo foi reproduzido de "Semiconductor Industry Observation". Este artigo representa apenas a opinião pessoal do autor, não a opinião da Sac Micro e da indústria, apenas para reimpressão e compartilhamento, suporte Para proteger os direitos de propriedade intelectual, indique a fonte original e o autor para reimpressão. Se houver alguma violação, entre em contato conosco para excluí-la.




粤公网安备44030002007346号