Chip Apple M2 en el mundo Machine Learning

Chip Apple M2 en el mundo Machine Learning

Apple no deja de sorprendernos año tras año en el WWDC, exponiendo no sólo los nuevos smartphones, sino sus avances en su arquitectura y sus procesadores. El WWDC 2022, no ha sido diferente. A parte de las nuevas funciones del iOS16, iPadOS, macOS Ventura y WatchOS9, los asistentes pudieron conocer de primera mano la renovada versión del MacBook Air y la versión actualizada del MacBook Pro de 13 pulgadas, impulsada por el nuevo caballo de batalla de Apple, el Chip M2.

Por otro lado, durante la última década Apple se ha hecho poco a poco un nicho dentro del mundo del Machine Learning. A pesar de que es bastante conocida su potente arquitectura, bien sea porque no son máquinas de “entry level”, o porque no se habían desarrollado las plataformas y librerías específicas para aprovechar su capacidad, la entrada de Apple en la disciplina del machine Learning ha sido bastante tardía. Sin embargo, no es difícil entender que poco a poco la comunidad haya echado la mirada al mundo Mac con la esperanza de sacar partido de su arquitectura. Específicamente, este nuevo procesador M2 goza de la atención expectante de la comunidad.

¿Qué sabemos hasta ahora?

El nuevo chip M2 incorpora la nueva tecnología de 5 nanómetros, lo que ha permitido diseñar un chip con más de 20 mil millones de transistores (20.000.000.000). Con tal densidad de transistores el M2 despacha sin problemas unos 15 trillones de operaciones por segundo, gracias a su arquitectura neural engine de 16 núcleos, lo que significa un 20% más de capacidad de computación que su predecesor M1. A nivel de memoria, podemos decir que tiene un ancho de banda 50% mayor, y acceso compartido (CPU/GPU) hasta 24 GB.

Con estas prestaciones, no es de extrañar que exista interés en su potencial para Machine Learning. Ya el M1 había dado numerosas pruebas de exceder las expectativas y el año pasado en el WWDC 2021 ya se había presentado la plataforma Create ML. Sin embargo, creo que la mayor limitación que existía era la falta de librerías desarrolladas para Mac. La gran mayoría del desarrollo de librerías para ML se hace primero en Linux y luego se migran a Windows. La migración a Mac OS es un paso que a veces se omite. Otro punto en particular, es que las librerías de TensorFlow estaban cerradas hacia la plataforma NVIDIA, y no fue hasta que se desarrolló TensorFlow-DirectML que se pudo instalar en plataformas con GPU no NVIDIA.

De acuerdo a la web page de TensorFlow, TensorFlow2 es compatible con MacOS 10.12.6 (Sierra) pero aún sin compatibilidad con GPU. En el WWDC 2022 se ha anunciado que las plataformas PyTorch y TensorFlow podrán usar la arquitectura de GPU de forma nativa en el M2. Esto es una gran noticia para todo el mundo Mac, pero también para la comunidad ML. Sin embargo, el consenso general es que habrá aún que esperar un poco a que el MacBook Pro se haga popular y se desarrollen todas las librerías. Para la gente que compró MacBook Pro con el chip M1 resultó una maravilla ver correr los programas mucho más rápido. Sin embargo, el consenso general es que aún no se podrá disfrutar de todo el potencial del M2. Por ejemplo, no todas las aplicaciones de Keras están habilitadas para GPUs (en MacOS). Para aquellas que están habilitadas, hay que instalar TensorFlow-Deps, TensorFlow-macos, y al plugin de Metal, TensorFlow-Metal, antes de poder usar los GPUs (al menos en la MacBook Pro con M1). No sabemos si ese proceso será de alguna forma simplificado con la llegada de M2, pero seguramente habrá mayor interés. SI de algo nos sirve la historia, todos sabemos que no importa que tan bueno y avanzado sea el hardware, tarde o temprano el software lo alcanza. Así que probablemente el M1 sea más que bueno y más que suficiente para sus aplicaciones de ML actuales, pero tarde o temprano va a necesitar toda la potencia y todo el hierro dentro del M2.

Así que es un tema de preferencias. Se puede empezar ahora con el M1 y seguramente será muy potente y avanzado para las aplicaciones actuales. Toda la comunidad está feliz con el desempeño, y con el desarrollo de librerías nativas seguramente mejorará aún más. Pero en el largo plazo, habrá nuevas librerías y nuevos requerimientos que terminarán por exceder las capacidades y pondrán en valor los 24 GB de RAM que puede manejar el M2 en memoria compartida.

Les recuerdo que Apple tiene su plataforma de Machine Learning llamada Create ML, que por lo poco que he visto brevemente promete ser bastante poderosa, pero de la que les hablaré más adelante. Esto, porque toda la discusión anterior está basada en el uso de plataformas más convencionales, o más populares entre la comunidad. Eso es para que se tome en cuenta.

Carlos Alberto García

Data Scientist

Asseco Spain Group