Benchmarks recentes das patches propostas para agendamento consciente de cache do Linux demonstram melhorias significativas de desempenho nos processadores AMD EPYC Turin. As patches, desenvolvidas por engenheiros da Intel, visam otimizar o posicionamento de tarefas para melhor localidade de cache em CPUs multi-cache. Testes em uma configuração dual EPYC 9965 revelaram resultados promissores para cargas de trabalho de servidores heterogêneos.
Nos últimos meses, engenheiros do kernel Linux da Intel têm desenvolvido agendamento consciente de cache para aprimorar o desempenho em CPUs modernas com múltiplos níveis de cache. Essa abordagem agrupa tarefas propensas a compartilhar recursos no mesmo domínio de cache, melhorando a localidade e eficiência do cache.
As patches, que avançaram além da fase de solicitação de comentários, foram atualizadas no início de outubro. Relatórios iniciais destacaram uma redução de 44% no tempo em um benchmark, juntamente com melhorias em plataformas como Intel Xeon Sapphire Rapids, AMD EPYC Milan e AMD EPYC Genoa.
Para esta avaliação, testes foram realizados no kernel Linux 6.17 usando a série principal AMD EPYC 9005 "Turin", especificamente os processadores EPYC 9965 de 192 núcleos. A configuração apresentava um servidor AMD Volcano de dual-socket com 192 núcleos e 384 threads por socket, equipado com 384 MB de cache L3.
Comparações foram feitas entre um kernel Linux 6.17 padrão e o mesmo kernel modificado com as patches de agendamento consciente de cache de 11 de outubro ativadas. Os parâmetros ajustáveis para agendamento consciente de cache, acessíveis via sysfs, foram deixados em suas configurações padrão durante os testes.
Embora o agendamento consciente de cache ofereça benefícios para muitas cargas de trabalho, ele não é universalmente vantajoso. Uma patch específica o desativa para processos com contagens de threads que excedam os núcleos físicos no cache de último nível (LLC) para prevenir contenção de cache. O recurso mostra promessa particular para ambientes de servidores Linux heterogêneos típicos que não saturam completamente a CPU.