> > > > AMD и Microsoft работают над улучшением поддержки NUMA

AMD и Microsoft работают над улучшением поддержки NUMA

Опубликовано:

threadripper teaserНесколько дней назад появилась информация о потенциальных проблемах производительности нынешней реализации NUMA (Non-Uniform Memory Access) или Windows Scheduler при использовании процессоров EPYC и Ryzen Threadripper с четырьмя активными кристаллами.

Проблема следующая: Windows Scheduler выделяет Best NUMA Node при наличии более одного NUMA Node. Новые потоки привязываются к данному узлу, при этом уже работающие потоки с него вытесняются, а при наличии большого числа потоков в приложении они будут конкурировать за доступ к данному Best NUMA Node. И многие приложения в итоге работают медленнее обычного.

Собственно, здесь помогает утилита Coreprio. Будучи NUMA dissociator, она отслеживает все активные потоки и, в случае процессоров Ryzen Threadripper, привязывает их к нужным NUMA Node.

Еще до публичного освещения проблемы AMD и Microsoft начали работать над ее решением. В результате вышел Hotfix для Windows Scheduler, но он работает только на системах с двумя NUMA. Здесь режим Best NUMA Node просто отменяется, поэтому конкуренции между несколькими потоками приложения уже не происходит. Однако для систем большим числом NUMA Node, в том числе Ryzen Threadripper 2990WX (тест) и Ryzen Threadripper 2970WX (тест), решения пока нет.

AMD считает, что метод утилиты Coreprio довольно близок к нужному исправлению работы Windows Scheduler на более чем двух NUMA Node. Но пока подробностей нет. Скорее всего, здесь все зависит от решения, к которому придут AMD и Microsoft. Пока что проблема наблюдается у процессоров Ryzen Threadripper второго поколения с более чем двумя кристаллами, а также с аналогичными процессорами EPYC.

Со вторым поколением процессоров EPYC и грядущим третьим поколением Ryzen Threadripper таких проблем не будет из-за дизайна chiplet, благодаря которому процессоры будут выглядеть для операционной системы с одним NUMA Node, а не с несколькими.