LINUX.ORG.RU

Как ядра CPU соеденены с линиями PCIe?

 ,


0

2

Привет, ЛОР! Есть камень Xeon 2680v4, 14 ядер. 40 линий PCIe. Помогите понять как устроен этот или любой другой проц в плане работы с PCIe, каким образом ядра делят линии PCIe?

Что интересует? Допустим, нужно занять все 40 линий PCIe дисками NVMe. У диска 4 линии, отсюда максимально можно подключить 10 дисков (SSD это диск?:)) ) С этих дисков на полной пропускной способности PCIe 3.0 читаются данные. Около 3 Гбайт/сек, в сумме 30 Гбайт/сек.

1 ядро при чтении с 1 диска загружается на 80% (обрабатываются некоторые данные). Правильно ли я понимаю, что 10 дисков будут работать на максимальной скорости 30 Гбайт/с, и будет занято 10 ядер? Или ядра будут как-то конкурировать и в итоге скорость будет меньше?

Притом загруженные данные проц берет с оперативы, делает расчет и кладет обратно в оперативу. В четырех-канале 2680v4 может выдать до 71 Гбайт/с, так что вроде должно работать.

Собственно, есть интересный ресерч-проект, а в железе я бум-бум. Под рукой есть двухголовый 2680v4 или еще Xeon-ы постарее. Если надо, могу взять любое железо, главное чтоб все линии PCIe были задействованы.

По количеству максимально возможных занятых линий\накопителей смотри документацию на плату тоже. Можешь порыть в качестве отправной точки рекламные брошюры\документацию на чипсет, чтобы понимать что можно ожидать по максимуму, типа такого (совсем другой сокет\чипсет, просто пример) https://www.ixbt.com/img/x780/r30/00/02/46/71/z690diagram.jpg еще можешь поискать такую штуку, как PCIe bifurcation table.
По остальным вопросам ничего не подскажу.

sehellion ★★★★★
()

Помогите понять как устроен этот или любой другой проц в плане работы с PCIe, каким образом ядра делят линии PCIe?

Я на днях изучал устройство эпиков на zen4: https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58002_amd-epyc-9004-tg-hpc.pdf Суть такова: эпик состоит из «квадрантов» по 24 физических ядра (3 CCD), и в каждом таком квадранте есть свой «I/O Hub», обеспечивающий доступ к памяти и линиям PCIe. И, в зависимости от конфигурации BIOS, этот квадрант может быть самостоятельным NUMA-узлом.

Подозреваю, что в 14-ядерном Xeon’е все ядра могут ходить через один «хаб». А могут и не ходить. Ориентиром может служить NUMA-топология (и возможности её настройки, если есть). А лучше найти мануал на семейство процессоров, типа того, который я выше привёл.

annulen ★★★★★
()
Ответ на: комментарий от annulen

Суть такова: эпик состоит из «квадрантов» по 24 физических ядра (3 CCD), и в каждом таком квадранте есть свой «I/O Hub», обеспечивающий доступ к памяти и линиям PCIe.

настраиваемо. можно делить, делая нума, можно не делить - смотря как для какого ворклоада предпочтительнее. задержек при обращении к памяти на одном IOD вроде как нет.

NiTr0 ★★★★★
()

Ты ж только учитывай что с nvme данные ты пишешь в память. А для обработки читаешь из памяти. А у тебя всего 70 Гб ПСП. Кстати, почему так мало? А так, в процессоре есть шина(кольцевая в десктопных или решетка в серверных), к которой подключены ядра, контроллер памяти, контроллер pcie и прочие контроллеры

cobold ★★★★★
()
Ответ на: комментарий от NiTr0

настраиваемо. можно делить, делая нума, можно не делить

Если настраиваемо, то вполне вероятно, что наиболее мелкий NUMA-узел так же является «узлом по работе с PCIe», т.е. к нему подведён набор линий, до которых от других «узлов» «далеко»

annulen ★★★★★
()

Ядра – никак. Там есть промежуточное звено, root-complex, который тоже подключен через промежуточное звено… Для некоторых операций у тебя вообще все мимо проца пойдет.

Короче, если тебе нужны реальные данные, то их даст эксперимент на твоей сборке, а если теория для понимания, то читай Танненбаума «Архитектура компьютера».

soomrack ★★★★★
()
Ответ на: комментарий от soomrack

Для реальных нужно заказать с алишки адаптеры PCIe - NVMe. На одну плату можно 4 диска поставить. Для теста на 1 проц надо 3 платы (не вопрос) и 10 NVMe (с этим посложней). Пока нет понимания про смысл этого вложения, но проект вроде достаточно интересный. И записи на диски не будет, только чтение. Будет 1 раз запись, чтоб заполнить диск и всё. Диски объемом от 1 ТБ.

Подкупает то что на алишке 2-сокетные сборки Ксеонов стоят копейки (мать+проц+память).

iohash23
() автор топика
Ответ на: комментарий от iohash23

Подкупает то что на алишке 2-сокетные сборки Ксеонов

Это копролиты. Современные десктопные процы будут быстрее. Не говоря уже про качество этих китайских мат плат.

ox55ff ★★★★★
()
Ответ на: комментарий от ox55ff

Современные десктопные процы будут быстрее

Действительно. Но у современных десктопных процессоров стоимость примерно в 10 раз больше, а иногда и выше. Мне мать+проц+память+кулер обошлись дешевле чем стоит современный процессор без всего.

vbcnthfkmnth123 ★★★★★
()
Ответ на: комментарий от ox55ff

Так и есть. С качеством вопросов не было, в работе 12 плат разных годов выпуска крутят видеонаблюдение, 1С, и всякую шнягу, в свободное время майнят по приколу Монеру. Доволен китайцами как слон, главное их правильно приготовить, особенно питание :)

Покупать новое железо под проект врядли пока разумно. Надо прощупать. По идее новое окупиться должно быстро на полгода, а ксеоны с али еще быстрее. Но новое можно продать с гарантией (или даже очень сильно попробовать вернуть обратно), а ксеоны продать посложнее.

iohash23
() автор топика
Ответ на: комментарий от iohash23

На одну плату можно 4 диска поставить.

А ваша материка такие платы поддерживает, позволяет разбить слот x16 на x4x4x4x4? И вобще на материнках часто встречаются чипсеты, в части слотах или M.2 разъёмах линии PCIe могут быть чипсета, а не с проца.

mky ★★★★★
()
Ответ на: комментарий от annulen

нет, уверен что все софтово. память - не проблема указать какие блоки адресов к какому нума узлу относятся. то же и по шине, и по ядрам. а вот постучаться к чужой памяти будет стоить 0 дополнительных задержек…

ну нет там настоящей нума, нет. и не нужна. никто не будет нуму городить там, где можно обойтись без нее. а вот сэмулировать для специфических задач (например VDS) - могут.

NiTr0 ★★★★★
()
Ответ на: комментарий от vbcnthfkmnth123

это вы про равный ему по производительности современный камень, или про топовый?)))

так то ryzen 5 5500 дешманский натягивает 2650v4 в синглкоре вдвое, в мультикоре - на 20-30%. при потреблении в 2 раза меньшем…

NiTr0 ★★★★★
()
Ответ на: комментарий от NiTr0

Про оба. Современные процы очень дорогие, а ксеоны дешевые.

2650v4

Лично я вообще v4 не использую, они поддерживают только DDR4. Я предпочитаю v3 с поддержкой DDR3, которая дешевая как грязь.

vbcnthfkmnth123 ★★★★★
()
Ответ на: комментарий от iohash23

Во-первых, на плате должно быть три x16 слота. Во-вторых, два слота должны быть реально x16, третий должен быть реально x8. В-третьих, системная прошивка платы должна поддерживать бифуркацию слотов на 4 порта x4x4x4x4. Попробуй ка найди такую плату, они же все без документации.

iliyap ★★★★★
()
Ответ на: комментарий от vbcnthfkmnth123

Современные процы очень дорогие, а ксеоны дешевые.

оно-то понятно, пентиумы 3/4 вон вообще по цене содержащихся в них драгметаллов можно купить, будет еще дешевле)))

речь какбы о сравнении цен на изделия равной производительности… ну и зионы с помойки надо сравнивать с комплектами с барахолок.

Лично я вообще v4 не использую, они поддерживают только DDR4. Я предпочитаю v3 с поддержкой DDR3

внезапно - v3 тоже на ддр4.

NiTr0 ★★★★★
()
Ответ на: комментарий от NiTr0

внезапно - v3 тоже на ддр4.

Ну я и говорю, что предпочитаю v3 с поддержкой DDR3. У меня сейчас стоит e5 Xeon E5-2678 v3 почти как e5 Xeon E5-2680 v3, но с поддержкой DDR3.

речь какбы о сравнении цен на изделия равной производительности

Но это бессмысленно. Изделий равной производительности не бывает. Те же современные интелы в тестах намного опережают современные процессоры амд, а по факту хуже.

vbcnthfkmnth123 ★★★★★
()
Ответ на: комментарий от NiTr0

Потому что производительности ксеонов для меня достаточно, а пентиума 3 нет. Хватало бы производительности третьих пеньков, то покупал бы третьи пеньки.

vbcnthfkmnth123 ★★★★★
()
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 2)