2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3
 
 Re: Чтение из памяти
Сообщение25.07.2018, 22:41 
Заслуженный участник


20/08/14
11155
Россия, Москва
realeugene в сообщении #1328803 писал(а):
Тогда и обычная SDRAM не всегда может считаться внутренним устройством.
Это в каких случаях для получения байта/слова из SDRAM требуется обращение процессора к регистрам SDRAM или чипсета? Начальную инициализацию опустим.
Вот микросхема SPD на планке SDRAM конечно внешнее устройство (т.к. её содержимое не отмаппировано на адресное пространство).

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 23:05 


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

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение25.07.2018, 23:31 
Заслуженный участник


20/08/14
11155
Россия, Москва
realeugene в сообщении #1328842 писал(а):
правда, прозрачного для CPU после инициализации.
Вот в этом и суть. Я ведь говорил об архитектурных отличиях, именно с точки зрения программы (но не поверх ОС).

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение26.07.2018, 00:59 


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

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение26.07.2018, 01:41 
Заслуженный участник


12/07/07
4448
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 


27/08/16
9426
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 
Заслуженный участник


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

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

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

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение27.07.2018, 11:43 


27/08/16
9426
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 
Заслуженный участник


12/07/07
4448
С использованием оперативки в целом понятно, спасибо, но интересны детали без неё.

В игровых видеокартах 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 


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

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение27.07.2018, 22:22 
Заслуженный участник


12/07/07
4448
В случае наличия коммутатора, предполагал, что в root не побегут. Спасибо за подкрепление моих догадок!

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

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

 Профиль  
                  
 
 Re: Чтение из памяти
Сообщение28.07.2018, 00:05 


27/08/16
9426
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 
Аватара пользователя


07/02/12
1403
Питер
Dmitriy40 в сообщении #1327429 писал(а):
Существует: которая не хранится на внешних устройствах, а вычисляется.

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group