Está disponible Vortex 2.0, GPGPU abierto basado en la arquitectura RISC-V

Se ha publicado la segunda edición del proyecto Vortex, que desarrolla un GPGPU basado en la arquitectura del conjunto de instrucciones RISC-V, diseñado para realizar cálculos paralelos utilizando la API OpenCL y el modelo de ejecución SIMT (Single Instruction, Multiple Threads). El proyecto también puede ser utilizado en investigaciones en el campo de la gráfica 3D y el desarrollo de nuevas arquitecturas de GPU. Esquemas, descripciones de bloques de hardware en Verilog, simulador, controladores y documentación del proyecto se distribuyen bajo la licencia Apache 2.0.

La base del GPGPU es un ISA RISC-V típico, ampliado con algunas instrucciones adicionales necesarias para soportar funciones de GPU y manejar flujos. A su vez, los cambios en la arquitectura del conjunto de instrucciones RISC-V se han minimizado y se utilizan, siempre que sea posible, las instrucciones vectoriales ya existentes. Un enfoque similar se aplica en el proyecto RV64X, que también desarrolla una GPU abierta basada en las tecnologías RISC-V.

Está disponible Vortex 2.0, GPGPU abierto basado en la arquitectura RISC-V

Para la gráfica, se desarrolla un GPU abierto Skybox en tecnologías Vortex, que soporta la API gráfica Vulkan. El prototipo de Skybox, creado en base a un FPGA Altera Stratix 10 y que incluye 32 núcleos (512 hilos), logró una tasa de ingreso de 3.7 gigapíxeles por segundo (29.4 gigatransacciones por segundo) a una frecuencia de 230 MHz. Se señala que es la primera GPU abierta con implementación tanto de software como de hardware que soporta Vulkan.

Características principales de Vortex:

  • Soporte para arquitecturas del conjunto de instrucciones RISC-V de 32 y 64 bits: RV32IMF y RV64IMAFD.
  • Número configurado de núcleos, bloques de tareas (warps) y hilos.
  • Número configurable de ALU, FPU, LSU y SFU para cada núcleo.
  • Ancho de emisión configurable del pipeline.
  • Memoria compartida opcional y cachés de niveles L1, L2 y L3.
  • Soporte para la especificación OpenCL 1.2.
  • Posibilidad de implementación en FPGA Altera Arria 10, Altera Stratix 10, Xilinx Alveo U50, U250, U280 y Xilinx Versal VCK5000.
  • Instrucciones extendidas: «tex» para acelerar el procesamiento de texturas, vx_rast para controlar la rasterización, vx_rop para procesamiento de fragmentos, profundidad y transparencia, vx_imadd para realizar la operación de «multiplicar y sumar», vx_wspawn, vx_tmc y vx_bar para activar frentes de instrucciones e hilos en ellos (wavefront, conjunto de hilos ejecutados en paralelo SIMD Engine), vx_split y vx_join.
  • El soporte para la representación intermedia de shaders SPIR-V se implementa a través de la traducción a OpenCL.
  • Para el desarrollo de aplicaciones, se ofrece un conjunto de herramientas que incluye variantes de PoCL (compilador y runtime OpenCL) adaptadas para trabajar con Vortex, así como LLVM/Clang, GCC y Binutils.
  • Se admite la simulación del funcionamiento del chip utilizando Verilator (simulador Verilog), RTLSIM (simulación RTL) y SimX (simulación por software).

Entre los cambios en la versión Vortex 2.0:

  • Se ha optimizado la microarquitectura.
  • Se ha añadido soporte para la arquitectura de 64 bits del conjunto de instrucciones RISC-V RV64IMAFD.
  • Se ha añadido la posibilidad de implementación en FPGA Xilinx.
  • Se ha añadido soporte para LLVM 16 y Ubuntu 20.04.
  • Se ha realizado una refactorización y se han corregido errores identificados durante la evaluación de calidad.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster