Libertad de video: se presenta la GPU RISC-V de código abierto



Una GPU gratuita que no requiere regalías y no hay condiciones de uso es el sueño de muchos desarrolladores. Ahora se presenta un proyecto que es el comienzo de mucho trabajo para crear GPU completamente abiertas.



Este es un proyecto desarrollado por un grupo de entusiastas junto con Pixlica, el proyecto en sí se llama RV64X. La tarea principal del equipo es crear un conjunto adicional de instrucciones para gráficos 3D y procesamiento de datos multimedia. El resultado debería ser una GPU que se pueda integrar libremente en el procesador según la arquitectura RISC-V.



El proyecto se basa en instrucciones vectoriales de RISC-V ISA. Se han ampliado con soporte para nuevos tipos de datos y extensiones que son específicas para el procesamiento de gráficos. En particular, se proponen operaciones adicionales para procesar píxeles (RGBA), puntos (XYZW), elementos de textura (UVW-texels), vectores (operaciones con 2-4 vectores), parámetros de material, cálculo de iluminación, matemáticas trascendentales, búferes de profundidad (Z - búfer) y búferes de tramas (Framebuffer).



El primer prototipo, según los desarrolladores, está diseñado para usarse solo en microcontroladores, por lo que su soporte se limita solo a la API de Vulkan. Pero con el tiempo, los desarrolladores agregarán soporte para OpenGL y DirectX.



La idea detrás del nuevo proyecto es la flexibilidad de la arquitectura, que le permite conectar extensiones para resolver varias tareas específicas, incluido el truncamiento de conos en dos fases, el uso de transformadas rápidas de Fourier para una profundidad de color arbitraria y la implementación de hardware SLAM . El RV64X tiene la capacidad de implementar sus propias etapas para la tubería computacional, así como búferes geométricos, de píxeles y de cuadros. El proyecto también apoya la creación de sus propios teseladores.



Los fabricantes, utilizando este proyecto, tienen la oportunidad de preparar chips diseñados para diferentes tareas. Al mismo tiempo, RV64X es la base.



El concepto del proyecto es un ISA híbrido CPU-GPU, que permite crear tanto microcontroladores gráficos especializados como procesadores multinúcleo que combinan núcleos informáticos con bloques para realizar operaciones gráficas. El procesador integrado con la GPU se verá como una sola unidad sin que se asigne el bloque de video. Se programa mediante un conjunto unificado de instrucciones de 64 bits y un modelo SIMD para proporcionar paralelismo a nivel de datos.





También podemos mencionar una característica de la arquitectura de la nueva GPU como el uso de un único modelo de memoria tanto en la CPU como en la GPU, lo que hace posible prescindir de mecanismos RPC / IPC adicionales para traducir llamadas entre la memoria de la GPU y la CPU al procesar las operaciones de la API 3D. En este caso, las operaciones de gráficos estándar se pueden implementar a nivel de microcódigo. Admite la creación de sombreadores, rasterizadores y extensiones personalizados para un mejor seguimiento.



Si es necesario, los desarrolladores pueden implementar operaciones vectoriales para trabajar con tareas de simulación, proyectos de visión por computadora y aprendizaje automático.



En cuanto a la implementación de la arquitectura, incluye un caché L1 de 32 KB para instrucciones y datos, 8 KB de SRAM para microcódigo, un decodificador de instrucciones, implementación de hardware de conjuntos de instrucciones RV32V y RV64X, un decodificador de instrucciones extendidas especificado por microcódigo, unidad lógica aritmética vectorial ), Un archivo de registro de 136 bits con 1024 elementos, una unidad de función especial (SFU), una unidad de textura y un búfer de trama local configurable.






All Articles