2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3
 
 Re: Чтение из памяти
Сообщение25.07.2018, 22:41 
realeugene в сообщении #1328803 писал(а):
Тогда и обычная SDRAM не всегда может считаться внутренним устройством.
Это в каких случаях для получения байта/слова из SDRAM требуется обращение процессора к регистрам SDRAM или чипсета? Начальную инициализацию опустим.
Вот микросхема SPD на планке SDRAM конечно внешнее устройство (т.к. её содержимое не отмаппировано на адресное пространство).

 
 
 
 Re: Чтение из памяти
Сообщение25.07.2018, 23:05 
Dmitriy40 в сообщении #1328835 писал(а):
Это в каких случаях для получения байта/слова из SDRAM требуется обращение процессора к регистрам SDRAM или чипсета?
Не всегда есть аппаратный побайтовый доступ. Особенно, на запись. С кэшем побайтовый доступ и не нужен, так как гоняются туда-сюда целиком строки кэша бурстами. Да и просто цикл доступа к SDRAM требует от контроллера выполнения сложного протокола, правда, прозрачного для CPU после инициализации.

 
 
 
 Re: Чтение из памяти
Сообщение25.07.2018, 23:31 
realeugene в сообщении #1328842 писал(а):
правда, прозрачного для CPU после инициализации.
Вот в этом и суть. Я ведь говорил об архитектурных отличиях, именно с точки зрения программы (но не поверх ОС).

 
 
 
 Re: Чтение из памяти
Сообщение26.07.2018, 00:59 
Dmitriy40 в сообщении #1328847 писал(а):
Вот в этом и суть. Я ведь говорил об архитектурных отличиях, именно с точки зрения программы (но не поверх ОС).
С точки зрения программы нередко нет разницы, это память в SDRAM или в окне устройства, сидящего на шине. В котором могут быть отмапированы как регистры, так как специализированная память (например, видеобуфер). Разница есть только в части настройки кэшей при работе с этими диапазонами адресов и в возможных побочных эффектах от записи/чтения этих адресов, выходящих за рамки стандарта виртуальной машины языка. Более того, программы обычно не догадываются и про виртуальную память, когда большинство страниц памяти в адресном пространстве процесса может быть скинуто на диск. Не думаю что программная модель может быть определяющей при обсуждении оборудования.

 
 
 
 Re: Чтение из памяти
Сообщение26.07.2018, 01:41 
realeugene в сообщении #1328772 писал(а):
PCIe - это дерево с выделенным корнем.
К чему там root я не понял. Для объединения двух GPU на одной карте раньше использовали PEX8747. Об этом коммутаторе можно посмотреть в краткой информации о продукте: pdf. В этой информации как раз показано, что два GPU «взаимодействуют» друг с другом через PCIe, минуя root (см. раздел Dual GPU w/Peer-to-Peer Communication).

GAA в сообщении #1328763 писал(а):
На видеокарты ставят SSD. А как они с GPU обмериваются данными?
По поводу подключения SSD к GPU на оф. сайте AMD деталей я не нашёл (radeon-pro-ssg-datasheet.pdf). Но на нескольких страницах пробегала инфа, что два M.2 подключены к GPU через всё тот же PEX8747. Например
Андрей Шиллинг в заметке Radeon Pro WX 9100 и Radeon Pro SSG выйдут на GPU Vega с 16 Гбайт HBM2 писал(а):
Видеокарта оснащается GPU Vega 10 и 16 Гбайт HBM2, но у данной видеокарты дополнительно установлена память Solid State Graphics Memory. Объем последней составляет 2 Тбайт, скорость чтения – 8 Гбайт/с, скорость записи – 6 Гбайт/с. Соответствующий SSG API обеспечивает доступ через HBCC к 16 Гбайт HBM2 и 2 Тбайт на двух SSD.

AMD использовала хорошо известный мост PCI Express PEX8747 на Radeon Pro SSG, который встречается почти на всех видеокартах с двумя GPU. Но в данном случае он используется для подключения двух M.2 SSD по четырем линиям каждый в слотах M.2. Два SSD работают в RAID 0, пользователь заменить их самостоятельно не сможет.
(Кроме упоминания PEX8747 инфа широко известная. В любом случае в оф. доке имеется картинка, на которой контроллер памяти GPU соединён напрямую с NVMe.)

 
 
 
 Re: Чтение из памяти
Сообщение26.07.2018, 13:39 
GAA в сообщении #1328868 писал(а):
По поводу подключения SSD к GPU на оф. сайте AMD деталей я не нашёл (radeon-pro-ssg-datasheet.pdf
). Но на нескольких страницах пробегала инфа, что два M.2 подключены к GPU через всё тот же PEX8747.
Вот здесь упоминают про peer to peer: https://www.amd.com/Documents/Radeon-Pr ... -Brief.pdf И пишут: "The Radeon™ Pro SSG solution takes this concept one step further by physically co-locating high performance NVMe with a high performance GPU to create a fully optimized path for transferring and processing of large datasets." Т. е. по тексту именно объединили два PCIe устройства на одной плате через свитч, разумеется (а как иначе?) и научили драйвера этих устройств работать совместно.

Root complex может сам не поддерживать P2P между своими портами. То, что оба устройства собраны производителем на одной плате с общим PCIe свитчём, сильно облегчает обеспечение работоспособности этого изделия, очевидно.

 
 
 
 Re: Чтение из памяти
Сообщение27.07.2018, 10:53 
Тоже видел в книгах, например С. Петров «Шины PCI, PCI Express. Архитектура, дизайн, принципы функционирования», 2006, что поддержка передачи одноранговых транзакций между иерархическими доменами через root является не обязательной и зависит от реализации. Но что это в точности означает? У Intel и AMD реализовано?

В приведенной Вами доке от AMD написано, что соединение GPU и SSD не нагружает процессор и таким образом улучшает общую эффективность системы.

Если устанавливается, для простоты, 2 графические карты [х8+х8, на PCIe лин. процессора (всего 20 лин. 4 под связь с южным мостом)], то при обмене данными они уменьшают общую производительность системы? Как это может проявляться? Как замедление обмена данными с южным мостом?

 
 
 
 Re: Чтение из памяти
Сообщение27.07.2018, 11:43 
GAA в сообщении #1329084 писал(а):
что поддержка передачи одноранговых транзакций между иерархическими доменами через root является не обязательной и зависит от реализации. Но что это в точности означает?
Я, конечно, не могу заглянуть в голову автора, но думаю, что это обозначает именно то, что я процитировал выше из спецификации PCIe Gen 3. Что поддержка P2P транзакций для Root Complex optional.

В PCI(e) каждое устройство может быть инициатором транзакции на шине (если специально спроектировано для этого, конечно). Обычно это используется для обмена с буферами в SDRAM, так как самостоятельное чтение из адресов устройств процессором на PCI особо неэффективно: процессор может прочитать одной командой один свой регистр максимум, а задержка на транзакцию на шине нередко огромна. Устройство же может прокачать одной транзакцией большой блок данных целиком. Для этого выполняемый процессором драйвер устройства резервирует в оперативке неотсвапливаемый буфер и передаёт его физический адрес устройству вместе с командами чтения или записи, а само устройство уже самостоятельно запускает в шину транзакцию чтения или записи нужного ему блока данных. В принципе, можно передать устройству в задании и адрес в памяти другого устройства, но, во-первых, инфраструктура железа должна суметь зароутить эту транзакцию не только между устройством и оперативкой (которая находится над Root Complex, вообще говоря, вне PCIe), но и между двумя устройствами на шине. Во-вторых, драйвера этих двух устройств должны хорошо знать друг друга и работать согласованно, так как, насколько мне известно, подобная совместная работа с данными без захода их в оперативку выходит за рамки стандартных моделей драйверов.

GAA в сообщении #1329084 писал(а):
то при обмене данными они уменьшают общую производительность системы? Как это может проявляться? Как замедление обмена данными с южным мостом?
Если данные качаются через оперативку, а не напрямую, то и пропускная способность оперативки отожрётся, разумеется.

 
 
 
 Re: Чтение из памяти
Сообщение27.07.2018, 20:49 
С использованием оперативки в целом понятно, спасибо, но интересны детали без неё.

В игровых видеокартах AMD Radeon (Hawaii и позже) внутри контроллера дисплея расположен блок XDMA, который позволяет контролерам дисплеев обмениваться через PCIe фрагментами кадров, «полностью обходя ЦП» и большую часть блоков GPU. [Замена прямого соединения «шнурками».]

В профессиональных видеокартах DirectGMA (Tech Brief: AMD FireProTM SDI-Link and AMD DirectGMA Technology (pdf), gpuopen) позволяет обмениваться данными двум GPU или GPU и другим устройством, не через основную (системную) оперативную память. (У них должен быть общий root. Upd, по крайней, мере так было раньше.).

NVIDIA GPUDirect (Технология GPUDirect доступная и на Tesla, и на Quadro): Если у устройств один PCI-e root, то системная оперативная память не используется (возможно, не для всех устройств: Active Silicon’s frame grabbers). Она используется для передачи данных по сети.

Как задействован root, можно ли без него, и быстрее ли без него, я не нагуглил. Но вкусности, видимо, только для проф. карт.

 
 
 
 Re: Чтение из памяти
Сообщение27.07.2018, 22:04 
GAA в сообщении #1329183 писал(а):
Как задействован root, можно ли без него, и быстрее ли без него, я не нагуглил.
Если транзакции роутятся напрямую между картами, то в рут они не заходят. Каждый свитч роутит транзакции между своими портами по выделенным им окнам в адресном прогстранстве шины, буферизуя по пути пакеты при этом. Всё сильно похоже на IP, только адресация и форматы пакетов с данными иные.

 
 
 
 Re: Чтение из памяти
Сообщение27.07.2018, 22:22 
В случае наличия коммутатора, предполагал, что в root не побегут. Спасибо за подкрепление моих догадок!

Вопрос спровоцирован следующим. Имеется куча системных карт с коммутатором PEX8747, позволяющим подключить 4 карты x8.
Одну я приводил раньше. (Она позиционируется как игровая. от Supermicro это ожидаемо.)
Примером другой может служить материнка с претензией на рабочую станцию Asus Z270-WS. (Вроде чипсет персоналочный, под персоналочный процессор,…но WS. Для Asus ожидаемо — они уже игровых матерей выпустили много.) Массу других примеров можно нагуглить.

Если достаточно на некоторое время x8 для двух карт, то ЦП может обеспечить такое число линий. Вот и вопрос о root у Intel и AMD был. Будет ли заметная потеря производительности по сравнению c матерью с коммутатором PEX8747? (Системная память не используется.)

 
 
 
 Re: Чтение из памяти
Сообщение28.07.2018, 00:05 
Intel® Z370 Series Chipset Families Platform Controller Hub

Цитата:
PCIe* cycles generated by external PCIe* masters will be positively decoded unless they fall in the PCI-PCI bridge memory forwarding ranges (those addresses are reserved for PCI peer-to-peer traffic

Из этого косвенно следует, что данный чипсет поддерживает в руте P2P. Нужно, чтобы умели так работать драйвера видеокарт.

 
 
 
 Re: Чтение из памяти
Сообщение29.07.2018, 11:49 
Аватара пользователя
Dmitriy40 в сообщении #1327429 писал(а):
Существует: которая не хранится на внешних устройствах, а вычисляется.

Стоит помнить, что большинство ОС не дает вам никаких гарантий, что информация, хранящаяся в памяти, никогда не попадет на диск. Это на всякий случай, если этот вопрос принципиальный - в ПО, связанных с криптографией, суют много костылей на эту тему - дабы минимизировать риск случайного сохранения незащищенных данных на диск.

 
 
 [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group