Presentados con los procesadores”Sapphire Rapids”escalables Xeon de cuarta generación, se encuentran varios aceleradores nuevos disponibles en SKU seleccionados o a través de la oferta Intel On Demand. Sin embargo, uno de los desafíos iniciales son las primeras limitaciones de soporte del software del acelerador y muchos software de código abierto ascendente (o incluso generalizados) que aún no están habilitados para hacer uso de estos nuevos aceleradores. Una de las mejoras en ese frente ha sido que los ingenieros de Intel trabajaron en un controlador de compresión de cifrado IAA para el kernel, de modo que el Acelerador de análisis en memoria pueda ser accesible de forma transparente para las funciones del kernel que utilizan la API de cifrado.
En los últimos meses, el controlador de compresión criptográfica de IAA para el kernel de Linux ha pasado por media docena de revisiones en la medida en que avanza hacia la línea principal. Este nuevo controlador hace que el acelerador Intel IAA esté disponible a través de la API criptográfica del kernel y, a su vez, puede ser utilizado por el código del kernel dirigido a esa API, como Zswap y zRAM. El controlador proporciona versiones sincronizadas y asíncronas del algoritmo DEFLATE implementado por el hardware.
Si bien este controlador abrirá casos de uso del kernel para el acelerador IAA, las notas del parche del controlador reconocen los dolores de cabeza iniciales relacionados con la configuración de los aceleradores Sapphire Rapids, es decir, aún no estará listo para usar al iniciar una pila de software de Linux capaz:
“El hardware de IAA es bastante complejo y generalmente requiere un administrador experto con una comprensión suficientemente detallada del hardware para configurar antes de que pueda usarse. Como se menciona en la Documentación, esto generalmente requiere el uso de una herramienta especial llamada accel-config para enumerar y configurar colas de trabajo, motores, etc. de IAA, aunque esto también se puede hacer usando solo archivos sysfs.
El funcionamiento del controlador refleja este requisito y solo permite acceder al hardware a través de la capa criptográfica una vez que el hardware se ha configurado y vinculado al controlador criptográfico IAA. Como subcontrolador IDXD, el controlador criptográfico IAA esencialmente toma posesión de el hardware hasta que el administrador lo abandone explícitamente. Esto ocurre automáticamente cuando el administrador activa la primera cola de trabajo de IAA o desactiva la última; los algoritmos iaa_crypto (sincrónicos y asincrónicos) se registran cuando se habilita la primera cola de trabajo y se cancelan cuando se deshabilita la última.
La secuencia normal de operaciones normalmente sería:
Configure el hardware usando accel-config o sysfs
Configure el controlador criptográfico iaa (consulte a continuación)
Configure el subsistema, p. zswap/zram para usar el algoritmo iaa_crypto
ejecutar la carga de trabajo”
Pero cuando todo está configurado y funciona con este controlador propuesto, los resultados de rendimiento son bastante dramáticos con IAA uso en comparación con el software puro:
A principios de este mes, una serie de parches v6 para este controlador del kernel se envió para su revisión. Aunque dado el tiempo y la rama cryptodev.git aún no lo ha recogido, es poco probable que este controlador esté listo a tiempo para el próximo ciclo de Linux v6.5. Otro obstáculo fue potencialmente planteada la semana pasada por el mantenedor del subsistema criptográfico de Linux, Herbert Xu:
Entonces dijiste que canned no es compatible con el algoritmo genérico deflate. ¿Eso significa que no hay manera de que descomprima algo comprimido por el algoritmo genérico deflate, y viceversa, su salida comprimida no puede ser descomprimida por generic deflate ?
No agregamos un algoritmo a Crypto API si la única implementación es por hardware. IOW si está agregando un nuevo algoritmo, entonces una versión de software debe ser el primer parche.
Esta diferencia en la implementación desinflada de Intel parece ser genuina. Los desarrolladores de ClickHouse advirtieron previamente en su compatibilidad con Intel QPL que si desea mover bases de datos aceleradas por Intel IAA entre hosts, primero deberá convertir todos los datos antes de sacarlos del servidor. En cuyo caso, si este controlador se integra, Intel también deberá proporcionar una implementación de software para el kernel.