linux - mp3tag - puddletag
Escala de frecuencia de Intel MSR por-hilo (4)
cpufreq-info mostrará información sobre qué núcleos deben ser sincrónicos en sus estados P:
[root@navi ~]# cpufreq-info
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to [email protected], please.
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0 1 <---- THIS
CPUs which need to have their frequency coordinated by software: 0 <--- and THIS
maximum transition latency: 10.0 us.
Al menos por eso, recomendaría ir a través de las interfaces de cpufreq en lugar de establecer directamente los registros, así como también hacer que se ejecute en CPU que no sean de Intel, que podrían tener requisitos poco comunes.
También compruebe cómo hacer que los hilos del kernel se adhieran a un núcleo específico, para evitar el cambio inesperado, si no lo hizo ya.
Estoy ampliando el kernel de Linux para controlar la frecuencia de algunos subprocesos: cuando se programan en un núcleo (¡cualquier núcleo!), La frecuencia del núcleo se cambia escribiendo el p-estado adecuado en el registro IA32_PERF_CTL
, como se sugiere en El manual de Intel. Pero cuando se programan diferentes subprocesos con diferentes frecuencias "personalizadas", parece que el rendimiento de todo el subproceso aumenta, como si todos los núcleos se ejecutaran a la frecuencia máxima establecida.
Hice muchas pruebas y mediciones en diferentes condiciones de carga y configuración, pero el resultado es el mismo. Después de algunas pruebas con CPUFreq (sin aplicación en ejecución, configuré diferentes frecuencias en cada núcleo, y finalmente las frecuencias medidas, con cpufreq-info -w, eran iguales), me pregunto si los núcleos de la CPU realmente pueden funcionar a diferentes frecuencias independientes. , o si hay políticas o restricciones de hardware.
Finalmente, ¿existe un modelo de CPU que haga factible esta escalada de frecuencia fina?
La CPU que estoy usando es Intel Core i5 750
No puede controlar frecuencias centrales individuales para núcleos activos. Sin embargo, puede controlar las frecuencias de todos los núcleos activos para que sean iguales. Las razones están en las respuestas anteriores: todos los núcleos están en el mismo plano de voltaje activo. Con suerte, los procesadores Haswell de nueva generación permitirán controlar cada núcleo por separado.
¡Creo que te estás perdiendo una gran parte de la imagen!
Lea sobre los dominios de potencia y relojes. Todos los núcleos de procesador dentro de un dominio se ejecutan en el mismo estado P (es decir, la misma frecuencia y voltaje). El estado P en el que se ejecutarán todos los núcleos en ese dominio siempre será el estado P del núcleo que solicita el estado P más alto en ese dominio. Los MSR no reflejan esto en absoluto, ni tampoco las interfaces que expone el kernel.
Anandtech tiene un buen artículo sobre esto: http://www.anandtech.com/show/2658/2
"Todo esto es muy similar al Phenom de AMD, pero donde los dos difieren es en cómo manejan la administración de energía. Mientras que AMD permitirá núcleos individuales para solicitar diferentes velocidades de reloj, Nehalem intenta ejecutar todos sus núcleos en la misma frecuencia ; el núcleo está inactivo, entonces es simplemente controlado por energía y el núcleo está efectivamente desactivado ".
No conecté un medidor de potencia hasta SB / IB, pero creo que el comportamiento es el mismo.
¡Quiero agradecer a todos por la contribución! Investigando más, encontré otros detalles que comparto con la comunidad.
Como se sugirió, Nehalem coloca todos los núcleos en un solo dominio de reloj, de modo que la frecuencia máxima establecida entre todos los núcleos se aplica a todos ellos; algunas herramientas pueden mostrar diferentes frecuencias en núcleos inactivos, pero es suficiente ejecutar cualquier aplicación para aumentar la frecuencia al máximo. Esto, a partir de mis pruebas, también se aplica a Sandy Bridge, donde los núcleos y las divisiones LLC residen todos en el mismo dominio de frecuencia / voltaje. Supongo que este comportamiento también ocurre con Ivy Bridge, ya que es solo una iteración ''tick''. En cambio, creo que Haswell coloca núcleos y sectores LLC en diferentes dominios singulares, lo que permite las frecuencias por núcleo. Esto también se anuncia en varias páginas como http://www.anandtech.com/show/8423/intel-xeon-e5-version-3-up-to-18-haswell-ep-cores-/4