François Piednoël: entrevista exclusiva para AT
Nueva entrevista, esta vez con François Piednöel, uno de los gurús de rendimiento que trabajó en Intel durante 20 años. Padre de microprocesadores como el Intel Pentium 4 Extreme Edition, del Core 2 (Conroe), y de Skulltrail. Actualmente trabaja para hacer un poco más inteligente la industria del automóvil.
Por supuesto, también ha estado involucrado (fue uno de los dos ingenieros de rendimiento principales) en otras microarquitecturas y tecnologías de Intel durante sus años en esta compañía, como Katmai, Prescott, Penryn, Nehalem, Sandy Bridge, Ivy Bridge, Haswell, Broadwell, Skylake, Kaby Lake, así como en la línea Intel Atom, contribuyó al desarrollo de CPU-Z, Android x86, y en la implementación multithread HyperThreading…
Architecnología: Siempre comienzo las entrevistas con esta pregunta: ¿Quién es François Piednöel? (Descríbete, por favor)
François Piednöel: Soy alguien a quien le gusta resolver problemas complicados, la vida es un gigantesco cubo de Rubik. Soy el antiguo líder de rendimiento de Intel, y estoy trabajando en el diseño de sistemas de conducción autónomos ahora.
AT: ¿Cuándo te comenzó a interesar la tecnología? ¿Has tenido algún referente, alguna inspiración?
FP: Cuando era niño, descubrí la electricidad y la electrónica a los 10 años. A los 12, ya había construido un sistema de 220V que encendía automáticamente las luces externas con transistores. A los 13 años, tenía un ordenador y lo publiqué en el primer «Listado» de la ZX81. Lord Sinclair es definitivamente la mayor influencia que he tenido. Más tarde, conseguí un Oric Atmos, luego un PC 80286, que empecé inmediatamente a overclockear. A los 18 años, tuve el PC más rápido del momento, y estaba haciendo upclocking de todos los subsistemas, desde la CPU hasta los adaptadores de pantalla… Luego, compré algunos libros sobre el 80386, y me obsesioné con el modo protegido. Escribí mi propio sistema sobre DOS, luego sin DOS para ejecutar el mecanismo preventivo.
AT: ¿Cómo te enrolaste en Intel?
FP: Mientras volaba de Seattle a París, un hombre de Intel me reconoció y ofreció conectarme con un gerente en Múnich, no estaba feliz con el clima en Seattle, así que acepté ir a Munich para una entrevista. Conocí a unos ingenieros increíblemente inteligentes en Intel Múnich y decidí dar el salto a Intel. Más tarde, empecé a trabajar en 3DMark, y me permitió más tarde volver a EE.UU. de forma permanente, pero con el buen tiempo de la zona de la bahía ;).
AT: ¿Cuál era tu objetivo en el proyecto del Pentium 4 Extreme EE?
FP: Estás bromeando, ¿verdad? El Pentium 4 EE nace del dolor, el rechazo categórico que tengo a perder. Odio perder, así que, cuando por fin conseguimos que los de Intel de Oregón aceptaran que no íbamos a ganar, un vicepresidente muy centrado nos preguntó si podíamos encontrar una forma rápida de vencer al Athlon FX53/57. La parte difícil fue conseguir que los compañeros aceptaran que había que hacer algo. Entonces, nos dimos cuenta que podíamos tomar un futuro Xeon, y convertirlo en un producto de consumo, sólo necesitaba un cambio serio de las políticas de caché y de predicción. La gente de Quality Insurance aceptó hacer el esfuerzo de re-calificar el procesador EE, con la puesta a punto de la parte de escritorio. Luego, algunos amigos y yo pasamos una semana reprogramando manualmente las placas y las CPUs para tener suficiente para la prensa a tiempo, mientras que la producción comenzaría después de que se hiciera la prueba de calidad. (4 semanas en aquel entonces) Fuimos capaces de detener una gran victoria respecto a AMD, y eso desencadenó que la investigación se alejara de Netbust. El equipo de Oregón era muy reacio a esta idea, así que Paul los dejó fuera del proceso de decisión para el próximo reemplazo del Pentium 4. Algunas personas lo presentaron con un nombre en clave: Timna, pero esta es una historia para otra ocasión…
AT: ¿Cómo es el proceso de desarrollo de una microarquitectura desde dentro?
FP: Esta es una operación de unas 100 personas; por eso la gestión es tan importante. Entender las consecuencias de los cambios de arquitectura, a través de la metodología de proyección de rendimiento es fundamental. Solía ser un problema de Intel y del ingeniero principal, pero con Dadi Perlmuter siendo capaz de gestionar y hacer esto, se produjo una consolidación con el rendimiento. Cuando Dadi se fue, se olvidaron de volver a separar el papel. No puedo comentar mucho sobre el proceso o el tiempo, ya que son secretos comerciales de Intel. Sólo sé que si se maneja bien, funciona muy bien, como demostramos durante 20 años.
AT: ¿Puedes contar alguna anécdota sobre tu trabajo en Intel?
FP: Skulltrail fue un reto entre un Vice Presidente, un líder de marketing y yo, se pagó totalmente por nosotros mismos, y obtuvo beneficios, siendo un ordenador de 8000$ cuando está completamente equipado.
AT: 7nm, 5nm, 3nm, 2nm,… se está aproximando al límite del silicio. ¿Qué ocurrirá después? ¿Nuevos materiales y estructuras?
FP: En mis 20 años en Intel, mucha gente ha predicho el fin de la ley de Moore, y cada vez, los investigadores han encontrado una manera de empujar los límites. Puedo encontrar 5 maneras de integrar más si quiero (las he escrito). Lo que importa es el nivel de integración, por el momento, son planar, pronto, hablaremos de transistores dispuestos en 3D, en la parte superior de los transistores y las capas metálicas. Esto debería dar lugar a extender la tecnología por muchos años más. No creo que lleguen al final antes de que me vuelva al polvo. (Y planeo vivir mucho y próspero tiempo ;)).
AT: últimamente hay muchos productos»refresh» (refritos). Creo que es más y más complicado extraer rendimiento de un solo núcleo solo variando la microarquitectura. ¿Tienen las microarquitecturas cierto limite?
FP: Los flujos de instrucción x86 tienen sus límites, tienes una cierta proporción de paralelismo que puedes extraer en un flujo de instrucción. ARM es un poco diferente, pero también tiene su límite. Usando trucos de compilación, puedes ayudar al procesador a tener más espacio para el paralelismo en el flujo de instrucciones, y así, puedes disminuir el tiempo requerido para ejecutar una tarea. La optimización guiada por perfiles (PGO) es uno de ellos, ya está apareciendo en el iOS, y espero que Microsoft y LLVM le sigan en el PC, hay muchas latencias que puedes reducir, estás observando cada iteración del código en ejecución, mientras el programador está trabajando. Muchos benchmarks hoy en día no tienen en cuenta la forma moderna de compilar en iOS, por ejemplo, y comparan las manzanas con los plátanos, como una versión con PGO y sin él, y sacan conclusiones erróneas sobre el rendimiento de la arquitectura… Este campo se ha vuelto tan complicado que sólo muy pocos de la prensa no están siendo manipulados por los departamentos de marketing…
A pesar de lo que dice François, y como explico aquí, AMD sí que ha estado usando redes neuronales (basadas en el perceptrón) para mejorar la predicción de saltos. Aunque anteriormente ya se habían presentado algunos implementaciones factibles en hardware, el primero comercial fue el de la microarquitectura Piledriver de AMD. Con ello se consigue que el predictor pueda aprender del comportamiento del camino tomado anteriormente por una instrucción o de otras instrucciones. De esa forma, el porcentaje de aciertos crece, lo que implica mayor rendimiento al acertar si se toma o no una rama y evitando que se tenga que vaciar el cauce en caso de fallo de la predicción.
AT: ¿Cómo puede la IA ayudar en este sentido? Quiero decir, para mejorar el rendimiento de los microprocesadores.
FP: AMD ha intentado usar una pseudo-IA para la predicción. Creo que se han dado por vencidos, TAGE está definitivamente pateando los ‘algos’ de la IA aún en la predicción. Tengan en cuenta que la inferencia de aprendizaje automático sufre de valores atípicos, y debido a ello, se reduce muy rápidamente el error que cometes al predecir. Hubo un artículo muy interesante en HOTCHIP2020 sobre el uso del aprendizaje automático para la disposición floor plan. Ya estoy trabajando en algo aún más avanzado, donde los clusters ya no son rectangulares… Puedes disminuir dramáticamente las latencias usando esta técnica.
AT: ¿Por qué se han encontrado tantas vulnerabilidades en las CPUs? ¿Es por la obsesión de buscar rendimiento sin preocuparse por otras razones o por destinar pocos recursos a verificar la seguridad de los sistemas? Tal vez ahora también hay más ojos puestos en esto tras Meltdown y Spectre…
FP: Spectre y Meltdown son una nueva ciencia, ahora que conoces el efecto secundario de la especulación, es bastante fácil andar por ahí. Sólo hay que entender que los mecanismos de protección del 80386 son los básicos del sistema, desde 1985. No se tocó mucho, ya que es bastante fuerte para ejecutar el código de forma fiable. Estoy convencido de que sólo una fortificación de la gestión de protección de LDT y GDT llevará a una plataforma libre de vulnerabilidades, sin rehacer el mecanismo con un cifrado completa de la memoria, aunque los hackers siempre encontrarán formas de atacar el software o el hardware. Hacer que cada proceso sea opaco a otro proceso con cifrado es la única manera a largo plazo de resolver todo este lío.
AT: Encuentro muy interesante la ingeniería inversa de chips retro. Solo con un die shot tu puedes descifrar el circuito, pero… ¿Qué se puede analizar de un die shot actual? Quiero decir, tú puedes identificar donde se encuentran ciertas partes, recuento de núcleos, profundidad de capas por colores, etc. ¿Puedes extraer algo mucho más interesante?
FP: Esta actividad es muy peligrosa para la seguridad nacional de los países occidentales. Por eso me abstendré de ayudar o comentar al respecto…
AT: Finalmente, ¿Crees que RISC-V puede ser el «próximo ARM»? ¿Es una posible amenaza futura para x86?
FP: RISC-V es notablemente interesante por su modelo de licencia. En cuanto al rendimiento, están bastante atrasados, pero jugarán un papel importante, ya que nVIDIA está adquiriendo ARM, y algunos vendedores van a empezar a financiar seriamente RISC-V. A largo plazo, por el momento, ya conoces las CPU, las GPU, pero hay muchas más categorías que surgirán para resolver problemas que son algo más que embarazosamente paralelos, o de un solo hilo limitado. Inference y scoring son algunos ejemplos, pero para la computación del mundo real, con su inherente imprevisibilidad, creará un nuevo tipo de necesidad de procesamiento. Creo que la naturaleza abierta de RISC-V los está posicionando para ser esa plataforma.
Offtopic:
https://elchapuzasinformatico.com/2020/12/seagate-disena-sus-propios-procesadores-aprovechando-el-uso-de-la-arquitectura-risc-v/#disqus_thread