O proxecto VeriGPU desenvolve unha GPU aberta na linguaxe Verilog

O proxecto VeriGPU ten como obxectivo crear unha GPU aberta desenvolvida na linguaxe Verilog para describir e modelar sistemas electrónicos. Inicialmente, o proxecto desenvólvese mediante un simulador Verilog, pero unha vez rematado pódese utilizar para a produción de chips reais. Os desenvolvementos do proxecto distribúense baixo a licenza MIT.

VeriGPU sitúase como un procesador específico de aplicación (ASIC) optimizado para acelerar os cálculos relacionados cos sistemas de aprendizaxe automática. Os plans inclúen a compatibilidade co marco de aprendizaxe automática profunda PyTorch e a capacidade de desenvolver aplicacións para VeriGPU mediante a API HIP (Interface de computación heteroxénea). No futuro, é posible engadir compatibilidade con outras API, como SYCL e NVIDIA CUDA.

A GPU evoluciona a partir do conxunto de instrucións RISC-V, pero a arquitectura interna resultante do conxunto de instrucións da GPU é débilmente compatible co ISA RISC-V, xa que en situacións nas que o deseño da GPU non encaixa na representación RISC-V, é non pretende manter a compatibilidade RISC-V. O desenvolvemento céntrase nas capacidades necesarias para os sistemas de aprendizaxe automática, polo que para reducir o tamaño e a complexidade da matriz de chips, usa só o formato de coma flotante BF16 e só as operacións de coma flotante necesarias para a aprendizaxe automática, como exp, log, tanh e sqrt, están dispoñibles.

Entre os compoñentes xa dispoñibles están o controlador GPU, APU (Unidade de procesamento acelerado) para operacións enteiras (“+”,”-“,”/,”,”*”) e unha unidade para operacións de coma flotante (“+,” ,”*”) e un bloque de ramificación. Para crear aplicacións, ofrece un ensamblador e soporte para compilar código en C++ baseado en LLVM. Entre as capacidades previstas, destacan a execución paralela de instrucións, a caché de datos e memoria de instrucións e as operacións SIMT (Single instruction multiple thread).

O proxecto VeriGPU desenvolve unha GPU aberta na linguaxe Verilog


Fonte: opennet.ru

Engadir un comentario