Для работы проектов iXBT.com нужны файлы cookie и сервисы аналитики.
Продолжая посещать сайты проектов вы соглашаетесь с нашей
Политикой в отношении файлов cookie
SpaceMareen
Новичок
SpaceMareen
Рейтинг
+285.00
Автор не входит в состав редакции iXBT.com (подробнее »)
.
« задача на 120 ядрах AMD EPYC считается несколько дольше, чем на 88 ядрах Intel Skylake. »
.
Считается несколько дольше. Уже не «намного». Как интересно.
.
Хорошо, объясняю. Xeon в 2020 году обладали AVX-512, причём с двумя FMA модулями, а Zen2 AVX-512 не поддерживало. Для физических симуляций это очень важно. Поэтому в физических симуляциях Интел имел некоторое преимущество. И все. Нет никакой особой магии оптимизации под Интел.
Полный бред, весь софт который запустятся на Сапфире запустится и на Эпике, у них одинаковая ISA и расширения.
.
Проблемы могут быть только с ошибками работы процев, только это не софт, а именно что хард. Вот только по этой части проблемы изредка бывают у обеих компаний.
https://www.tomshardware.com/news/stable-diffusion-gpu-benchmarks
.
Хорошо, допустим Интел как-то печатает какие ядра гибридные а какие нет. Хотя примеров вывода на странице нет, это слегка настораживается. Потому что стандартный cpuid никаких потоков и ядер вообще не печатает, внизу страницы пример. Но хорошо, поверим Интелу.
https://learn.microsoft.com/en-us/cpp/intrinsics/cpuid-cpuidex?view=msvc-170
.
> Мы ведь можем сделать что-то подобное на C например?
Да, и у Майкрософта и по вашей ссылке примеры на С/С++. Только в Ubuntu CPUID по умолчанию вообще нет. Он устанавливается в одну строку, так что нестрашно, но все таки не часть ядра.
.
С выводом в целом согласен, но очень много проволочек, каждый раз переизобретать велосипед костыльными подсчетами cpuid неохота.
.
УПД. Посмотрел что залито Интелом по ссылке на гитхаб
https://github.com/GameTechDev/HybridDetect
Выглядит как уже готовая библиотека, в которой можно определять на какие ядра потоки определять. « Demonstrates split topology threadpools, as well as homogeneous/heterogeneous threadpool adaption. Rendering is done via the critical P-Cores and asteroid simulation is performed using E-Cores». Это то, о чем у меня шла речь — должна быть общедоступная библиотека с хорошим интерфейсом. Интел молодцы.
.
И это ещё накладывается на необходимость прикинуть на какие ядра делать affinity. Через что вы там их делать собрались? Не помню, что печатает CPUID, но помню, что по умолчанию он не везде установлен. По умолчанию доступны cat /proc/cpuinfo и lscpu. Которые количество ядер не печатают, они печатают количество потоков. Вот введёте вы lscpu и вам напечатает «у меня 13900к 32 ядра». Что дальше? Это 16+0 или 8+16 процессор? Как это понять? Вручную составлять таблицу, что ага, 13900к это 8+16? А если юзер отключит SMT и печататься будет 13900к 24 ядра? Еще по варианту учитывать? Умножаем количество рассматриваемых случаев на два.
.
Итого у нас 2 ОС * (affinity + priority) * SMT on/off = минимум 8 сценариев. Плюс нерешенная задача с физическими/логическими ядрами. Слишком много геморроя, если мы говорим о чем-то запущенном на больше чем паре компов. Короче говоря, проблема не в том что разработчики ленивые, а в том что это не их зона ответственности.