El proyecto VeriGPU desarrolla una GPU abierta en lenguaje Verilog

El proyecto VeriGPU tiene como objetivo crear una GPU abierta desarrollada en el lenguaje de modelado y descripción de sistemas electrónicos Verilog. Inicialmente, el proyecto se está desarrollando utilizando el simulador Verilog, pero después de que esté listo, se puede utilizar para producir chips reales. Los desarrollos del proyecto se distribuyen bajo la licencia MIT.

La VeriGPU se posiciona como una Unidad de Procesamiento Específico de la Aplicación (ASIC) optimizada para acelerar los cálculos relacionados con los sistemas de aprendizaje automático. Los planes mencionan proporcionar compatibilidad con el marco de trabajo de aprendizaje automático profundo de PyTorch y la posibilidad de desarrollar aplicaciones para VeriGPU utilizando la API HIP (interfaz de cómputo heterogénea). En un futuro no se descarta la incorporación de soporte para otras API, como SYCL y NVIDIA CUDA.

La GPU evoluciona en función del conjunto de instrucciones de RISC-V, pero la arquitectura interna resultante del conjunto de instrucciones de GPU es poco compatible con RISC-V ISA, ya que en situaciones en las que el diseño de GPU no encaja en la representación de RISC-V , no se establece la tarea de mantener la compatibilidad con RISC-V. El desarrollo se centra en las capacidades necesarias para los sistemas de aprendizaje automático, por lo tanto, para reducir el tamaño y la complejidad de la matriz del chip, solo se utiliza el formato de coma flotante BF16 y solo las operaciones de coma flotante que están en demanda para el aprendizaje automático, como exp, log, tanh y sqrt, están disponibles.

De los componentes ya disponibles, el controlador GPU, APU (Accelerated Processing Unit) para operaciones con enteros (“+”, “-“, “/”, “*”), bloque para operaciones con coma flotante (“+”, “*” ) y una unidad de ramificación. Para la creación de aplicaciones se ofrece ensamblador y soporte para compilar código C++ basado en LLVM. De las características previstas, se destacan la ejecución paralela de instrucciones, el almacenamiento en caché de datos y la memoria de instrucciones, las operaciones SIMT (Single Instruction Multiple Thread).

El proyecto VeriGPU desarrolla una GPU abierta en lenguaje Verilog


Fuente: opennet.ru

Añadir un comentario