El futuro de RISC
Llevamos un tiempo siguiendo el RISC-V ISA abierto y libre de regalías. Al principio leímos las especificaciones y luego vimos núcleos RISC-V en microcontroladores, pero ahora hay una nueva placa que ofrece suficiente potencia de procesamiento a un precio lo suficientemente bajo como para ser realmente interesante en una computadora de placa única. VisionFive 2 se ejecutó con éxito en Kickstarter en septiembre de 2022 y finalmente recibí una unidad con 8 GB de RAM. ¡Y funciona! El JH7110 no superará a una computadora de escritorio moderna, ni siquiera a una Raspberry Pi 4, pero es lo suficientemente bueno para ejecutar un entorno de escritorio, navegar por la web y probar software.
Y eso es algo importante, porque la arquitectura RISC-V está empezando a aparecer en muchos lugares. El desafío ha sido conseguir hardware real que sea lo suficientemente potente como para ejecutar Linux y compilar software, que no cueste un ojo de la cara. Si ARM es una arquitectura alternativa, entonces RISC-V sigue siendo experimental, y eso es un problema al intentar utilizar VF2. Ese es un tema que repetiremos varias veces, pero lo que debemos recordar aquí es que tener más dispositivos disponibles es el primer paso para arreglar las cosas.
Entonces, ¿qué obtienes? El VF2 viene en tres versiones, con dos, cuatro y ocho gigabytes de RAM. Por lo demás, las placas son idénticas y la estrella del espectáculo es el JH7110, un SoC RISC-V de cuatro núcleos y 64 bits. Integrada en esa CPU está la GPU Imagination BXE-4-32. Hay un puerto USB-C, que generalmente se usa para alimentar la placa, 4 puertos USB 3.0 que comparten un solo carril PCIe 2.0 y dos puertos Gigabit Ethernet. La placa tiene solo un puerto HDMI 2.0, pero también es capaz de ejecutar pantallas duales mediante el uso de un puerto MIPI DSI. También hay algunas características interesantes de compatibilidad con Raspberry Pi. La placa tiene un encabezado GPIO de 40 pines, en su mayoría compatible con el pinout de Raspberry Pi, e incluso tiene el encabezado Power over Ethernet de cuatro pines en el lugar correcto para usar los HAT Pi PoE. Eso funciona muy bien, el único elemento que falta es el control del ventilador en el HAT.
También hay entrada MIPI. Debería ser compatible con algo como las cámaras Raspberry Pi, aunque no tengo una mano para probar. Hay una ranura para tarjetas SD, un zócalo eMMC y una ranura M.2 NVMe muy bienvenida en la parte inferior del dispositivo. Hasta ahora, arrancar desde NVMe todavía requiere una partición de arranque en la tarjeta SD, pero aún así da como resultado todo el aumento de velocidad que vale el carril PCIe 2.0 dedicado. El arranque directo desde NVMe está en la hoja de ruta, pero aún no se ha implementado.
El hardware es razonablemente impresionante, pero la utilidad depende del sistema operativo y la compatibilidad del software. Hay una imagen de Debian que se actualiza periódicamente y los problemas se solucionan continuamente. Lo que realmente nos importa es el estado upstream, y ese proceso ha comenzado. Hay esperanzas de un sistema que arranque mínimamente con el kernel 6.3, aunque hay bastantes controladores que actualizar antes de que el sistema sea completamente utilizable con el kernel básico.
Y uno de esos controladores que debemos mencionar es la GPU. El hardware se conoce como GPU BXE-4-32, un núcleo de GPU de Imagination Technologies y sucesor de la arquitectura PowerVR. Imagination está intentando integrar sus diseños en chips RISC-V y, como parte de ello, ha lanzado controladores de código abierto para sus productos modernos. Hay un esfuerzo continuo para mejorar esos controladores, y algún código de habilitación ya llegó a Mesa.
También está la cuestión más amplia del soporte RISC-V. La mayoría de las distribuciones modernas crean paquetes RISC-V, pero no es raro encontrar problemas o paquetes fallidos en esta arquitectura menos popular. Por ejemplo, quería comparar la placa VF2 utilizando Phoronix Test Suite. Está disponible como paquete noarch, pero tiene múltiples dependencias, como php-cli. Eso depende de php8.2, y ese paquete actualmente no se puede compilar en RISC-V en Debian. Hay un parche disponible para solucionar el problema, por lo que pude reconstruir el .deb en el VF2 y hacer que todo funcione.
Siempre es divertido comparar hardware nuevo y brillante. Así que imaginen mi decepción cuando casi todas las pruebas de CPU que intenté no se pudieron instalar o no se pudieron ejecutar. Sospecho que esta también es la novedad de la plataforma RISC-V, ya que muchas de las pruebas PTS aún no se han creado para la plataforma.
Para aquellos que corrieron, no es genial. Echa un vistazo a mis resultados. Sospecho que el rendimiento puede aumentar a medida que el software se vuelve más maduro, pero actualmente está muy por detrás de Raspberry Pi 4. Jeff Geerling también tiene cobertura de esta placa y descubrió que el VF2 actualmente está funcionando en el estadio de un Pi B 3.
Hay algunas excepciones importantes a esas observaciones. En primer lugar, las pruebas del sistema que dependen en gran medida del acceso a la unidad muestran una ventaja significativa para el VF2. El Pi se inició desde una unidad NVMe mediante un adaptador USB3, pero el rendimiento nativo de NVMe sigue siendo significativamente mejor.
Y luego esos dos puertos Ethernet son particularmente interesantes. ¿Podría ser útil esto como enrutador de alto rendimiento? Verifiqué su rendimiento al enviar paquetes con la instalación de Debian, y es capaz de alcanzar velocidades casi de cable. Ejecuté una prueba de velocidad iperf3 a través del dispositivo haciendo una NAT simple, similar a la instalación de un enrutador estándar, y logró un promedio de 755 Mbits por segundo. Utilizando la opción bidireccional, la prueba logró poco más de 600 Mbits por segundo en ambas direcciones. Respetable para cualquier cosa que no sea una conexión a Internet Gigabit completa. Se ha trabajado para incorporar OpenWRT a la plataforma y eso puede conllevar un mejor rendimiento, pero la última rama de desarrollo de OpenWRT no arranca en mi dispositivo.
Bien, hemos cubierto mucho terreno. Entonces, ¿cómo se ven aquí las tachuelas de latón? El VisionFive 2 tiene cierto potencial. Los puertos Gigabit duales y la próxima compatibilidad con OpenWRT hacen que el dispositivo de $100 sea tentador como enrutador, y la compatibilidad con PoE no hace daño. La unidad NVMe es otra ventaja, y podría haber un caso para el VF2 como dispositivo de almacenamiento en red.
No es lo suficientemente potente como para ser un dispositivo de reemplazo de escritorio y la falta de dos puertos HDMI no ayuda en nada. Las diversas distribuciones tampoco tienen soporte de nivel uno para RISC-V todavía. Y, curiosamente, ese puede ser el mayor punto de venta de esta placa. ¿Haces algún trabajo de mantenimiento o programación? ¿Ya verificaste tu código en un procesador RISC-V? Esa es la verdadera oportunidad aquí. Es una plataforma asequible para probar la compatibilidad con RISC-V.
Ese proceso está en curso para los desarrolladores de todo el mundo. Y esa es una de las razones por las que el rendimiento es un poco decepcionante. Muchas aplicaciones que necesitan rendimiento tienen función de multiversión, una técnica que permite código específico de plataforma que realmente puede mejorar el rendimiento. Si una plataforma no tiene una implementación personalizada, el programa vuelve al código predeterminado más lento. Y dada la relativa novedad de la plataforma RISC-V, no sorprende que el rendimiento aún no esté en su mejor momento.
Pero 2023 podría ser el año del RISC-V SBC. VisionFive 2 está disponible y la gente de Pine64 está planeando una nueva placa basada en la misma CPU JH7110. Está la próxima placa HiFive Pro o la CPU Ventana Veyron. Entonces, tal vez sea hora de sumergirse y darle una vuelta a RISC-V.