Este paquete de software proporciona soporte básico para la tecnología Intel(R) Resource Director (Intel(R) RDT) y la tecnología Intel(R) I/O Resource Director (Intel(R) I/O RDT), incluida: Tecnología de monitoreo de caché (CMT) , Monitoreo de ancho de banda de memoria (MBM), Tecnología de asignación de caché (CAT), Priorización de código y datos (CDP) y Asignación de ancho de banda de memoria (MBA).
En principio, el software programa las tecnologías a través de registros específicos de modelo (MSR) en función de los subprocesos del hardware. El acceso a MSR se organiza mediante un controlador de sistema operativo estándar: msr en Linux y cpuctl en FreeBSD. En las implementaciones arquitectónicas más comunes, la presencia de las tecnologías se detecta mediante la instrucción CPUID.
En un número limitado de casos especiales en los que CAT no es compatible arquitectónicamente con un SKU en particular (sino que existe una implementación no arquitectónica (específica del modelo)), se puede detectar mediante una cadena de marca. Esta cadena de marca se lee desde CPUID y se compara con una tabla de SKU compatibles conocidos. Si es necesario, una verificación final es probar los MSR específicos para descubrir capacidades de hardware; sin embargo, se recomienda utilizar la enumeración de CPUID siempre que sea posible.
A partir de la versión de software v1.0.0, la biblioteca agrega la opción de usar Intel(R) RDT a través de las interfaces del sistema operativo disponibles (perf y resctrl en Linux). La biblioteca detecta la presencia de estas interfaces y permite seleccionar la preferida a través de una opción de configuración. Como resultado, las herramientas existentes como 'pqos' o 'rdtset' también se pueden utilizar para administrar Intel(R) RDT de forma compatible con el sistema operativo. A partir de la versión v4.3.0, la interfaz del sistema operativo se convirtió en la opción predeterminada. Se han agregado contenedores de herramientas 'pqos' para ayudar con la selección de la interfaz. 'pqos-os' y 'pqos-msr' para operaciones de interfaz OS y MSR respectivamente.
Se eliminó la opción de tiempo de compilación de la API PID y las API siempre están disponibles. Tenga en cuenta que el funcionamiento adecuado de estas API depende de la disponibilidad y selección de la interfaz del sistema operativo.
Este paquete de software se mantiene, actualiza y desarrolla en https://github.com/intel/intel-cmt-cat
https://github.com/intel/intel-cmt-cat/wiki proporciona preguntas frecuentes, ejemplos de uso y enlaces útiles.
Consulte el archivo INSTALL para obtener instrucciones de instalación del paquete.
directorio "lib":
Incluye archivos de biblioteca de software que proporcionan API para detección, monitoreo y asignación de tecnología. Consulte la biblioteca README para obtener más detalles (lib/README).
Directorio “lib/perl”:
Incluye el contenedor Perl de la biblioteca PQoS. Consulte la interfaz README para obtener más detalles (lib/perl/README).
Directorio “lib/python”:
Incluye el contenedor Python 3.x de la biblioteca PQoS. Consulte la interfaz README para obtener más detalles (lib/python/README.md).
Directorio "pqos":
Incluye archivos fuente para una utilidad que proporciona acceso de línea de comandos a Intel(R) RDT. La utilidad se vincula con la biblioteca y programa las tecnologías a través de sus API. Consulte la utilidad README para obtener más detalles "pqos/README". La página del manual de la utilidad "pqos" también proporciona información sobre el uso de la herramienta: $ man pqos
Directorio "rdtset":
Incluye archivos fuente para una utilidad que proporciona una funcionalidad similar a un "conjunto de tareas" para la configuración de RDT. La utilidad se vincula con la biblioteca y programa las tecnologías a través de sus API. Consulte la utilidad README para obtener más detalles "rdtset/README". La página del manual de la utilidad "rdtset" también proporciona información sobre el uso de la herramienta: $ man rdtset
Directorio "appqos":
Incluye archivos fuente para una aplicación que permite agrupar aplicaciones en grupos basados en prioridades. A cada grupo se le asigna una configuración Intel(R) RDT e Intel(R) SST que se puede configurar durante el inicio o en tiempo de ejecución a través de una API REST. Consulte la aplicación README para obtener más detalles "appqos/README".
Directorio "appqos_client":
Incluye archivos fuente para una aplicación web cliente App QoS. La aplicación proporciona una interfaz de usuario sencilla para configurar de forma remota Intel(R) RDT e Intel(R) SST en sistemas donde se ejecuta la aplicación QoS. Consulte la aplicación README para obtener más detalles "appqos_client/README".
directorio "ejemplos":
Incluye ejemplos de C y Perl del uso de Intel(R) RDT a través de las API de la biblioteca. Consulte el archivo README para obtener más detalles "ejemplos/README".
Directorio "snmp":
Incluye el subagente Net-SNMP AgentX escrito en Perl para demostrar el uso de la API contenedora de Perl de la biblioteca PQoS. Consulte el archivo README para obtener más detalles "snmp/README".
directorio "herramientas":
Incluye herramienta membw para estresar el ancho de banda de la memoria con diferentes operaciones.
Directorio "srpm":
Incluye archivos *.src *.rpm y *.spec para el paquete de software.
Archivo "Registro de cambios":
Breve descripción de los cambios entre versiones.
Archivo "INSTALAR":
Instrucciones de instalación.
Archivo "LICENCIA":
Licencia del paquete.
Directorio "prueba unitaria":
Pruebas unitarias
Los productos compatibles se pueden encontrar en el Anexo A de la especificación de arquitectura de la tecnología Intel® Resource Director (Intel® RDT): https://www.intel.com/content/www/us/en/content-details/789566/intel-resource -director-tecnología-intel-rdt-arquitectura-especificación.html
El Anexo B contiene una lista de procesadores con características Intel® RDT específicas del modelo.
Nota: La detección de características específicas del modelo requiere que se configure la variable de entorno RDT_PROBE_MSR
cuando se utiliza la biblioteca y las utilidades. Estas funciones solo están disponibles cuando se utiliza la interfaz MSR. Consulte la sección "Interfaces" a continuación para obtener más información. Consulte la wiki para ver ejemplos de uso.
Para obtener detalles adicionales de Intel(R) RDT, consulte los manuales de desarrollo de software de arquitectura Intel(R) disponibles en: https://www.intel.com/content/www/us/en/develop/download/intel-64-and -ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4.html La información específica se puede encontrar en el volumen 3a, Capítulos 17.18 y 17.19.
Linux es el principal sistema operativo compatible en este momento. Existe una versión FreeBSD del software, pero debido al alcance limitado de la validación es bastante experimental en esta etapa. Aunque la mayoría de los kernels de Linux modernos incluyen soporte para Intel(R) RDT, el paquete de software Intel(R) RDT es anterior a estas extensiones y puede funcionar con y sin soporte de kernel. El software Intel(R) RDT puede detectar y aprovechar estas extensiones del kernel cuando estén disponibles para agregar funcionalidad, pero también es compatible con kernels heredados.
El soporte del kernel de Linux para Intel(R) RDT se introdujo originalmente con extensiones de llamada del sistema de rendimiento de Linux para CMT y MBM. Más recientemente, la interfaz Resctrl agregó soporte para CAT, CDP y MBA. En los kernels de Linux modernos, se recomienda utilizar la interfaz kernel/OS cuando esté disponible. Los detalles sobre estas interfaces se pueden encontrar en resctrl_ui.txt. Este paquete de software, Intel(R) RDT, sigue funcionando sin problemas en todas las versiones del kernel de Linux.
La biblioteca de software y las utilidades Intel(R) RDT ofrecen dos interfaces para programar tecnologías Intel(R) RDT: estas son las interfaces MSR y OS.
La interfaz MSR se utiliza para configurar la plataforma programando el hardware (MSR) directamente. Esta es la interfaz heredada y no requiere soporte de kernel para Intel(R) RDT, pero se limita a monitorear y administrar recursos por núcleo.
La interfaz del sistema operativo se agregó posteriormente al paquete y, cuando se seleccione, la biblioteca aprovechará las extensiones del kernel de Linux para programar estas tecnologías. Esto permite monitorear y administrar recursos por núcleo/proceso y debe usarse cuando esté disponible.
Consulte las tablas a continuación para obtener más información sobre cuándo se agregó al paquete la compatibilidad con la función Intel(R) RDT (MSR y OS).
Versión Intel(R)RDT | Función RDT habilitada | Se requiere la versión del kernel |
---|---|---|
0.1.3 | L3 CAT, CMT, MBM | Cualquier |
0.1.4 | CDP L3 | Cualquier |
0.1.5 | GATO L2 | Cualquier |
1.2.0 | MBA | Cualquier |
2.0.0 | CDP L2 | Cualquier |
5.0.0 | RDT de E/S | Cualquier |
Versión Intel(R)RDT | Función RDT habilitada | Se requiere la versión del kernel | Interfaz recomendada |
---|---|---|---|
0.1.4 | CMT (rendimiento) | 4.1 | MSR (1) |
1.0.0 | MBM (rendimiento) | 4.7 | MSR (1) |
1.1.0 | L3 CAT, L3 CDP, L2 CAT (Resctrl) | 4.10 | OS solo para asignación (con excepción de MBA) MSR para asignación + monitoreo (2) |
1.2.0 | MBA (Restrl) | 4.12 | OS solo para asignación MSR para asignación + monitoreo (2) |
2.0.0 | CMT, MBM (Resctrl) | 4.14 | SO |
2.0.0 | CDP L2 | 4.16 | SO |
3.0.0 | MBA CTRL (Resctrl) | 4.18 | SO |
Referencias:
Las únicas dependencias de Intel(R) RDT son el acceso a las bibliotecas C y pthreads y:
Habilite la compatibilidad con Intel(R) RDT en:
Nota: No se requieren opciones de configuración del kernel antes de v4.10.
En resumen, por el momento no se permite el uso del software Intel(R) RDT o PCM junto con los frameworks de rendimiento y cgroup de Linux.
Por decepcionante que sea, no se permite el uso del rendimiento de Linux para CMT y MBM e Intel(R) RDT para CAT y CDP. Esto se debe a que el rendimiento de Linux anula la configuración CAT existente durante sus operaciones.
Hay varias opciones para elegir para hacer uso de CAT:
Tabla 4. Matriz de interoperabilidad del software
Intel® RDT | PCM | Rendimiento de Linux | grupo linux | control de Linux | |
---|---|---|---|---|---|
Intel® RDT | Sí(1) | Sí(2) | Sí(5) | No | Sí(5) |
PCM | Sí(2) | Sí | No | No | No |
Rendimiento de Linux | Sí(5) | No | Sí | Sí(3) | Sí |
grupo linux | No | No | Sí | Sí(3) | No |
control de Linux (4) | Sí(5) | No | Sí | No | Sí |
Referencias:
El monitoreo de pqos de Intel(R) RDT puede detectar otros procesos de monitoreo de pqos en el sistema. rdtset de Intel(R) RDT detecta otros procesos iniciados con rdtset y no utilizará sus recursos CAT/CDP.
pqos de Intel(R) RDT puede detectar que PCM monitorea los núcleos y no intentará secuestrar los núcleos a menos que se le obligue. Sin embargo, si primero se inicia el monitoreo de pqos y luego PCM, este último secuestrará la infraestructura de monitoreo de pqos para su uso.
Parche del kernel de Linux cgroup https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt
Kernel de Linux versión 4.10 y posteriores. Un wiki para Intel resctrl está disponible en: https://github.com/intel/intel-cmt-cat/wiki/resctrl
Solo con la versión 4.10 del kernel de Linux (y posteriores), Intel(R) RDT versión 1.0.0 (y posteriores) con la interfaz del sistema operativo seleccionada. Consulte la opción '-I' en 'man pqos' o 'pqos-os'.
PCM está disponible en: https://github.com/opcm/pcm
Tabla 5. Estado de habilitación del software Intel(R) RDT.
Centro | Tarea | CMT | MBM | GATO L3 | CDP L3 | GATO L2 | MBA | |
---|---|---|---|---|---|---|---|---|
Intel® RDT | Sí | Sí(7) | Sí | Sí | Sí | Sí | Sí | Sí |
Rendimiento de Linux | Sí(6) | Sí | Sí(1) | Sí(2) | No(3) | No(3) | No(3) | No |
grupo linux | No | Sí | No | No | Sí(4) | No | No | No |
control de Linux (5) | Sí | Sí | Sí(8) | Sí(8) | Sí | Sí | Sí | Sí(9) |
Leyenda:
Referencias:
ESTE SOFTWARE ES PROPORCIONADO POR INTEL "TAL CUAL". A TRAVÉS DEL USO NO SE OTORGA NINGUNA LICENCIA, EXPRESA O IMPLÍCITA, POR ESTOPPEL O DE OTRA MANERA, A NINGÚN DERECHO DE PROPIEDAD INTELECTUAL. EXCEPTO LO ESTIPULADO EN LOS TÉRMINOS Y CONDICIONES DE VENTA DE INTEL, INTEL NO ASUME NINGUNA RESPONSABILIDAD Y NIEGA CUALQUIER GARANTÍA EXPRESA O IMPLÍCITA RELACIONADA CON LA VENTA Y/O EL USO DE PRODUCTOS INTEL, INCLUYENDO LA RESPONSABILIDAD O GARANTÍAS RELACIONADAS CON LA IDONEIDAD PARA UN PROPÓSITO PARTICULAR, COMERCIABILIDAD O INFRACCIÓN DE CUALQUIER PATENTE, DERECHOS DE AUTOR U OTRO DERECHO DE PROPIEDAD INTELECTUAL.