Olof Kindgren: entrevista exclusiva para AT

Nuevo artículo, nueva entrevista exclusiva con Olof Kindgren, un sueco desarrollador a alto/bajo nivel, defensor del software y el silicio de código abierto, director de la fundación FOSSi, además de blogger ocasional. También tiene algunos interesantes proyectos como FuseSoC y SERV. Y si quieres conocer más sobre él y su trabajo, te invito a seguir leyendo la entrevista…

hijos de Olof Kindgren
De tal palo, tal astilla… La familia completa entusiasmada con el nuevo osciloscopio.

Architecnología: Siempre suelo comenzar con esta pregunta: ¿Quién es Olof Kindgren? (Descríbete, por favor)

Olof Kindgren: Como Joe Strummer dijo una vez, creo que la gente debería saber que soy antifascista, antiviolencia, antirracista y pro-creativo.

Me interesa la electrónica digital (que me da dinero) y la música (que aún no me ha dado dinero). En cuanto a la electrónica digital, trabajo para Qamcom Research & Technology y además estoy involucrado en muchos proyectos y actividades diferentes, especialmente en torno al silicio de código abierto. Es agotador, pero también muy divertido y espero que pueda beneficiar a otras personas. Me gusta que me vean, lo que probablemente sea una gran explicación de por qué estoy por todas partes y haciendo todas estas cosas. En general, trato de tomar mi trabajo seriamente.

Cuando no trabajo, paso tiempo con mi pareja y nuestras dos hijas. Me encanta cantar. Aunque los niñ@s odian cuando lo hago.

Computer
Primer ordenador que construyó Olof, con CPLDs y chips de memoria. La placa de la derecha fue la CPU y la de la izquierda para manejar la salida de gráficos. Había alrededor de un millón de cables tras las placas…

AT: ¿Cómo y cuándo te comenzó a apasionar la tecnología?

OK: Creo que hubo un par de factores clave que me llevaron a donde estoy. Conseguimos un PC en casa relativamente pronto, tal vez en 1992, y además de jugar a muchos juegos, también empecé a programar juegos simples basados en texto en QBasic. Recuerdo que podía entender el «if», pero me llevó años averiguar cómo funcionaba un bucle de «for». Lo siguiente que sucedió fue en mi adolescencia cuando me encontré con la escena de la demo. La combinación de habilidades técnicas y creatividad me dejó alucinado. Quería desesperadamente ser parte de esa escena, pero no tenía ni una fracción de las habilidades necesarias para hacer estas cosas. Recuerdo que me sentí muy orgulloso cuando me dieron las gracias en la demo de otro grupo. En cuanto a mis propias contribuciones, competí algunas veces con alguna música que había escrito, e incluso gané una vez. Pero eso fue principalmente porque no había otras entradas.

Pero como me di cuenta de que la escena de las maquetas consistía principalmente en gente como yo, me hizo pensar que también podría llegar a ser tan bueno algún día si seguía practicando. Todavía no estoy ni cerca de ser tan bueno, pero ya no importa. También me introduje en el lenguaje C y el ensamblador, y en hacer cosas con recursos extremadamente limitados. Estas son cosas que todavía son muy relevantes para mi trabajo.

La otra parte de la ecuación que yo diría es mi introducción a la electrónica. Algunos amigos y yo nos dimos cuenta de que podíamos conectar pequeñas bombillas en lugar de altavoces a nuestros amplificadores y que parpadeaban al ritmo de la música. Empezamos a experimentar con más configuraciones de audio y luz y eso me hizo interesarme en la electrónica. No teníamos ni idea de lo que hacíamos y es increíble que no quemáramos más cosas o a nosotros mismos en el proceso.

Y supongo que todo se unió en la universidad cuando nos introdujeron en la lógica programable en forma de CPLD. Las FPGAs eran demasiado caras para que jugáramos con ellas. Construimos un ordenador con una simple salida gráfica y esa sensación de ejecutar código que has escrito tú mismo, en tu propio lenguaje ensamblador, en un ordenador construido por ti mismo y hacer que las cosas aparezcan en un televisor fue increíble. Hicimos algunos efectos clásicos de demostración como patrones xor y fuego. Fue divertido, y desde entonces quise trabajar con la electrónica digital y la lógica programable.

Olof Kindgren
«15 años y muy contento de estar en una demo real»

AT: ¿Tienes algún referente? ¿Alguien que te haya inspirado?

OK: Estoy rodeado de gente muy capacitada y su buen trabajo me inspira a hacer mi parte también. Pero también sé que llegué donde estoy hoy gracias a una combinación de suerte, persistencia y muchas oportunidades de intentarlo y fracasar, y que este es el caso común de las personas que se hacen famosas por lo que hacen. No todo el mundo tiene la oportunidad de seguir intentándolo y fracasando una y otra vez, así que me inspiro mucho cuando oigo hablar de personas que luchan por la igualdad para que más gente tenga las mismas oportunidades que yo tuve. Eso me hace querer esforzarme más para asegurarme de que el silicio de código abierto sea para todos.

AT: Hace un tiempo me registré en opencores.org para estudiar algunos diseños de CPU y FPU principalmente. Esa plataforma está relacionada con la creación de FOSSi y librecores.org. ¿Verdad?

OK: Hay una larga historia aquí y daré una versión rápida. En 1999, OpenCores fue creado por algunos estudiantes eslovenos que crearon OpenRISC y necesitaban un hogar para la CPU y todas las herramientas y núcleos de IP que la rodeaban. Muchos años después, OpenCores fue comprado por una compañía sueca llamada ORSoC. En 2010 empecé a trabajar para ORSoC y a través de ella me involucré fuertemente en OpenRISC y OpenCores. Desafortunadamente, con el paso de los años se hizo evidente que el interés en el silicio de código abierto estaba creciendo rápidamente, pero OpenCores no satisfacía las demandas de las prácticas de desarrollo modernas y que los propietarios no tenían el dinero o el interés para hacer los cambios necesarios. Esta fue la segunda vez que el desarrollo de OpenCores se vio frenado por la falta de interés de sus propietarios y nuestra conclusión fue que era demasiado importante para estar en manos de cualquier empresa que pasara a ser propietaria del dominio opencores.org. Necesitábamos tener un grupo independiente de proveedores que estuviera interesado en hacer avanzar el estado del silicio de código abierto y esto preparó el escenario para lo que vino después.

Olof, conferencia Munich
ORConf 2014 en Munich. El evento donde se escuchó por primera vez una presentación sobre RISC-V y donde ellos empezaron a trabajar en los planes para crear FOSSi Foundation. Tú puedes ver algunos rostros conocidos, como Olof Kindgren (nuestro progratonista), Andrew Waterman (Chief Engineer y co-fundador de SiFive), Krste Asanović (Jefe de la junta directiva de RISC-V International), y Yunsup Lee (CTO de SiFive). Waterman, Asanović y Lee iniciaron la ISA RISC-V como parte del Parallel Computer Laboratory de la U.C. Berkeley.

AT: ¿Cómo fueron exactamente los inicios del proyecto?

OK: Ya en 2011, un grupo de nosotros, formado principalmente por los desarrolladores activos de OpenRISC, comenzó a hablar de formar una fundación con la misión de promover el silicio de código abierto en la industria, el mundo académico y para los aficionados. Un año después, ya habíamos comenzado la conferencia anual de OpenRISC (ORConf) y en la ORConf 2014 nos sentamos y empezamos a trabajar activamente en los planes para una nueva fundación. Nos llevó un año finalizar todo, desde la creación de nuestro manifiesto, decidiendo qué país y tipo de organización utilizar. Decidir en qué debemos centrarnos y así sucesivamente. En la ORConf 2015 anunciamos oficialmente la Fundación FOSSi. Además de la misión general de promover y ayudar al silicio de código abierto, teníamos algunos objetivos claros:

  • Asegurarse de que existe un conjunto de licencias que son utilizables y aplicables para el diseño digital y el desarrollo de chips
  • Crear un centro comunitario en torno al silicio de código abierto donde se pueda conocer a otras personas con el mismo interés, encontrar las mejores prácticas, núcleos de IP, herramientas y hacer preguntas.
  • Crear oportunidades para que la gente se reúna, presente su trabajo y aprenda de los demás.

El primer objetivo se convirtió en el comité de licencias de la Fundación FOSSi, donde conectamos a las personas que estaban interesadas en las licencias, y en algunos casos ya estaban trabajando en esto. Este año el objetivo del comité se cumplió. Con la licencia actualizada de Solderpad (que ahora está bajo la administración de la Fundación FOSSi) y la nueva familia de licencias del CERN OHL, creemos que existen licencias fuertes de copyleft, débiles de copyleft y permisivas que funcionan con el desarrollo de FPGA y ASIC.

Nuestro segundo objetivo se realizó en librecores.org. No queríamos alojar código como los opencores.org, ya que todo el mundo ya estaba usando github o similar en ese momento. Al mismo tiempo, era difícil encontrar lo que buscabas en un sitio como github, por lo que nos centramos en proporcionar una forma para que los desarrolladores de IP enumeraran sus núcleos o herramientas y hacerlos más fáciles de encontrar. También gestionamos listas de correo para un montón de proyectos y nuestro boletín mensual, El Correo Libre, a través de LibreCores.

Y en tercer lugar, nuestras conferencias han sido un gran éxito. Nuestra ambición siempre fue crear eventos con la menor barrera posible. Todos nuestros eventos son gratuitos, no todo el mundo puede viajar, así que nos movemos alrededor de la conferencia cada vez para dar a más gente la oportunidad de asistir al menos una vez. No tenemos ningún criterio de aceptación o selección para las presentaciones. Sólo cambiamos las cosas hasta que podamos hacer que todas las presentaciones encajen en el programa, siempre y cuando se trate de silicio de código abierto.

AT: ¿Cómo se puede colaborar con FOSSi Foundation y librecores.org?

OK: ¡Feliz de que preguntes eso! Colaboración es mi palabra favorita 🙂 Hay muchas formas de colaborar dependiendo de quién eres y qué quieres. La situación más común parece ser que la gente quiere trabajar en alguna tarea de programación, así que empezaré con eso.

Si acabas de empezar en el campo y quieres entender cómo crear diseños de silicio, te recomiendo un proyecto sencillo para aprender qué herramientas están disponibles y cómo se utilizan. Uno de estos proyectos es el proyecto LED para creer (https://github.com/fusesoc/blinky) que tiene como objetivo hacer parpadear un LED en cada placa FPGA que se haya hecho. Es muy simple, pero proporciona una introducción a varias herramientas, que pueden ser utilizadas para proyectos más avanzados. Si eres alguien que ha creado una herramienta o un núcleo de IP, asegúrate de registrarlo en librecores.org para que otras personas puedan encontrarlo. Siempre que necesito algo, ahí es donde busco primero. Añadir soporte de FuseSoC para tus núcleos es también una buena manera de facilitar a otros su uso. Al final queremos facilitar a la gente la reutilización del trabajo de otros y crear diseños de chips que otros puedan utilizar.

Pero la programación no sólo tiene que relacionar los diseños de los chips entre sí. Hago la mayor parte de mi trabajo en Python, trabajando en software como FuseSoC y Edalize para hacer más fácil la reutilización y compartir el código, y hay muchos otros proyectos que están basados en Javascript, C, Rust, Haskell, C#, PHP etc. Personalmente, creo que el ecosistema alrededor de los diseños de los chips es la parte que necesita más amor, pero todo el mundo debería trabajar en lo que le parezca más interesante, o al menos asegurarse de que le pagan bien si quiere hacer un trabajo que no le gusta.

Y por último, si representas a una empresa, institución académica u organización, estaremos encantados de sentarnos y discutir estrategias de código abierto de silicio contigo. Vemos tantas empresas con buenas intenciones que quieren involucrarse con el silicio de código abierto, pero que no han entendido realmente cómo funciona todo. Hable con nosotros. Estamos aquí para ayudaros a ser buenos ciudadanos en la tierra del FOSSi.

Y quienquiera que sea, siempre será bienvenido a unirse a nuestras salas de chat en https://gitter.im/librecores o a escribir en las listas de correo en lists.librecores.org.

Puedes colaborar involucrándote en FOSSi Foundation, o mediante un patrocinio o donación individual.

AT: Crear tu propio chip es algo imposible sin servicios como MPW. Aun así, continúa siendo caro y las herramientas de diseño bastante inaccesibles. Pero en FOSSi he podido leer buenas noticias sobre SkyWater PDK (un kit de diseño de código abierto) y la posibilidad de fabricar en la fondry Skywater Technology con un proceso de nodo a 130nm. Google and eFabless ofrecerán ciclos de manufactura gratis en noviembre de 2020 y otras oportunidades a lo largo de 2021 para ahorrarte un par de miles de euros. ¿Qué le puedes decir a los lectores para animarlos a participar?

OK: Creo que Mohamed Kassem de efabless dijo cosas muy buenas sobre esto en el episodio de FOSSi Dial-Up donde se presentaba. Si todo funciona, no tomaste suficientes riesgos. Esto es algo completamente nuevo y es aceptable fallar. Si no funciona tan bien como esperabas, aún has aprendido cosas nuevas y queremos fomentar esta cultura.

Sólo inténtalo. No te costará nada de dinero. Todavía tendrá que invertir el tiempo para llevar un diseño a través de las herramientas, y esto definitivamente puede ser una tarea difícil si no lo ha hecho antes. Pero por favor, intenta aprender junto con otras personas. Ellos pueden ayudarte, y tú probablemente puedas ayudarlos a ellos. Es un número tan pequeño de personas que han estado expuestas a este tipo de herramientas antes, así que se espera que la mayoría de las personas sean principiantes, yo incluido. Nunca antes había llevado un diseño de RTL a un ASIC, pero espero encontrar el tiempo para hacerlo a través de esta iniciativa.

AT: La pregunta anterior me sirve para introducir esta otra. Además del soporte de estándares abiertos, promover diseños IP abiertos, etc. ¿Cómo puede FOSSi Foundation ayudar en terminos de fabricación? Pienso que esto es una gran limitación para muchos diseñadores…

OK: Tal y como están las cosas ahora, necesitamos centrarnos en las cosas que ya hacemos. La parte de la fabricación es importante, pero somos una pequeña organización sin ánimo de lucro donde todos trabajan gratis, así que no es posible para nosotros ahora mismo llegar a nuevas áreas. Pero en el futuro espero que alguien pueda ocuparse de estas partes también. Ha habido iniciativas en torno a esto, como las patrocinadas por Google mencionadas anteriormente.

AT: ¿A qué retos se enfrenta la fundación FOSSi en el futuro cercano?

OK: La industria de los chips es muy conservadora. Está empezando a cambiar un poco, y algunas compañías están probando el silicio de código abierto de alguna manera por lo menos. Un gran problema aquí es que la mayoría de estas compañías no tienen ni idea de cómo hacerlo y a veces toman decisiones muy estúpidas que terminan perjudicándose a sí mismas y les asusta. Por lo tanto, un gran desafío es encontrar estas empresas y ayudarles a entender cómo funciona todo esto, antes de que hagan algo estúpido. Pero pueden ser difíciles de encontrar, difíciles de alcanzar y puede ser difícil hacerles escuchar. También puede entrar en conflicto con su modelo de negocio clásico. Pero el silicio de código abierto ya está sucediendo y seguirá haciéndolo, así que yo diría que concienciar sobre los próximos cambios en la industria es nuestro mayor reto. Entonces, por supuesto, tenemos el mismo problema que tiene la industria electrónica e informática en general. Hay demasiados hombres blancos incompetentes ocupando los lugares que deberían pertenecer a otras personas.

AT: ¿Cómo ves el panorama de la tecnología del silicio actual una vez superado su límite?

OK: Honestamente estoy emocionado con esto. Mi sensación es que los avances en el silicio han impedido mucha innovación tanto en hardware como en software. Cuando dejemos de confiar en estos avances tendremos que encontrar formas inteligentes de trabajar con lo que tenemos. A modo de analogía, miren todas las consolas de videojuegos que han existido durante mucho tiempo. Los juegos que se producen al final de la vida útil de una consola a menudo parecen funcionar en un hardware completamente diferente al que se escribió cuando la consola era nueva. Esto se debe a que, con el tiempo, la gente aprende a utilizar el hardware de forma más eficiente y puede hacer cosas nuevas que podrían parecer imposibles al principio. Esto es lo que espero al menos, que nos veamos forzados a aprender nuevas formas de usar nuestros recursos de forma más eficiente. Otra cosa es que creo que los nuevos algoritmos se desarrollarán teniendo en cuenta la escalabilidad desde el principio, porque la única forma de escalar será utilizar más ordenadores, no los más rápidos. También se espera que el costo de hacer chips para cada nodo de proceso disminuya con el tiempo, lo que esperamos signifique que más gente pueda entrar en el diseño de chips. Más gente y más puntos de vista siempre aumentan la innovación.

AT: Eres el desarrollador de FuseSoC. ¿Puedes explicar a los lectores quñe es y sus ventajas frente a otras herramientas para HDL?

OK: FuseSoC es un package manager y un programa de abstracción de herramientas de construcción. La parte de gestión de empaquetados le permite crear un diseño de chip que depende de los núcleos IP existentes y hacer que estas dependencias se descarguen y configuren automáticamente para usted. Al igual que cuando usas apt, yum o portage en un sistema Linux, sólo tienes que especificar qué aplicación quieres instalar y el gestor de paquetes se encarga del resto por ti de forma automática. La mayoría de los lenguajes más nuevos ya tienen esto incorporado, como pip/pypi para python y cargo para Rust. Pero verilog y VHDL son lenguajes antiguos que no han tenido un sistema así originalmente. Además, la forma en que las herramientas EDA trabajan con verilog y VHDL son a menudo un poco diferentes a la forma en que se maneja el software, por lo que necesita un gestor de paquetes especial para ayudar con esto. La otra parte es la parte de abstracción de la herramienta de construcción, que es parte de FuseSoC pero técnicamente manejada por una biblioteca separada llamada Edalize. Si usas por ejemplo C, probablemente uses gcc para compilar tu código. Puedes usar clang o el compilador de Microsoft, pero sólo hay unas pocas herramientas que necesitan leer tu código y es más o menos la misma sintaxis independientemente de si estás compilando para una CPU x86 o ARM. En el mundo del silicio, la situación es muy diferente. Hay tantas herramientas que son en su mayoría completamente incompatibles entre sí, incluso si hacen más o menos lo mismo. Así que Edalize trabaja leyendo un formato de descripción común que FuseSoC produce y luego lo traduce de manera que cada herramienta EDA pueda entenderlo. Edalize tiene actualmente 25 herramientas diferentes. Imagina tener que crear manualmente archivos de configuración para 25 herramientas diferentes para todos tus proyectos.

FuseSoC no es una herramienta única. Todas las empresas para las que he trabajado que tienen una gran biblioteca de núcleos IP tienen una herramienta como esta internamente. Pero cada una de estas herramientas fue escrita por alguien internamente que es la única persona que realmente la entiende. Todos los nuevos empleados tienen que dedicar mucho tiempo a aprender a utilizarla y es muy probable que esta herramienta haya sido escrita originalmente para un caso de uso muy específico y que se haya descontrolado con el tiempo y todo el sistema sea un desastre. Usando FuseSoC en su lugar, hay una posibilidad mucho mayor de que puedas contratar a alguien que ya conozca FuseSoC y pueda empezar inmediatamente. También hay un grupo más grande de desarrolladores disponibles para ayudar si hay problemas. FuseSoC te permite centrarte en tu negocio principal en lugar de en tus núcleos.

Pero incluso en el espacio del código abierto FuseSoC no es único. Hay otras herramientas como Bender y HDLMake que hacen aproximadamente lo mismo. Creo que una cosa que diferencia a FuseSoC es que nunca lo diseñé para que funcionara en mis propios proyectos. Desde el principio empecé a usarlo para los proyectos de otras personas. Si sólo trabajas en código sobre el que tienes control, es muy fácil hacer suposiciones que no funcionan cuando empiezas a trabajar con el código de otras personas. Constantemente desafío a FuseSoC empaquetando nuevas bases de código que están escritas de una forma que nunca podría haber imaginado, y esto mejora FuseSoC todo el tiempo.

AT: Me interesa mucho el proyecto EPI. ¿Qué opinas sobre el problema de la dependencia tecnológica en Europa y sobre las guerras entre China y EE.UU.?

OK: No lo sé realmente. La economía global es complicada. Recuerdo cuando Samsung y Apple se peleaban por las patentes de los bordes redondeados de los teléfonos y al mismo tiempo Apple seguía siendo el mayor comprador de chips Flash de Samsung. Lo que quiero decir aquí es que las cosas pueden funcionar de una manera completamente diferente de lo que parece al principio. Me preocupa más que estos conflictos lastimen a la gente que que lastimen a la tecnología de alguna manera. Aún así, el EPI es genial y espero que podamos tener más de estos proyectos en todo el mundo para reunir a académicos y empresas para trabajar juntos en grandes tareas.

Cuando se trata de Europa y la industria de los chips, siempre me ha entristecido mucho que el silicio de código abierto haya tenido una larga y sólida historia en Europa, pero que las empresas y los gobiernos europeos nunca hayan mostrado ningún interés. Ya en los primeros años de OpenRISC, alrededor de 2004, había empresas americanas que hacían inversiones para hacer crecer el ecosistema pero básicamente nada del lado europeo hasta hace muy poco. Hoy en día existe alguna tecnología europea basada, por ejemplo, en el trabajo PULP de la ETH Zürich y la Universidad de Bolonia, pero Europa podría haber estado liderando el movimiento de código abierto de silicio por ahora, dada la cantidad de esta tecnología que se origina en Europa. Pero de nuevo, es una industria conservadora de chips la que se está perjudicando a sí misma.

AT: Y termino con esta cuestión… EPI está basado en Arm para su CPU y en RISC-V para su acelerador… ¿Crees que este y otros proyectos están en peligro por la actual compra de Arm por parte de NVIDIA? ¿Es una buena oportunidad para RISC-V?

OK: No creo que haya mucha diferencia inicialmente. Con el tiempo, creo que habrá menos diseños nuevos basados en los ARM, pero es caro cambiar y Nvidia probablemente cuidará bien de la tecnología de los ARM aunque no creo que estén tan interesados en el lado de las licencias. Para RISC-V probablemente será algo bueno. Muchas compañías probablemente consideren al menos ir con RISC-V en lugar de usar ARM como de costumbre.

Creo que hay otra pregunta interesante que hacer sobre EPI. ¿Habrían optado por el RISC-V si OpenPOWER se hubiera abierto un año antes? Me encantaría escuchar a la gente a cargo si esto se consideró…

AT: Tack så mycket! ¡Gracias!

Isaac

Apasionado de la computación y la tecnología en general. Siempre intentando desaprender para apreHender.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto:

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar