GPUDirect — это технологический «зонтичный термин», который в целом представляет собой бренд, относящийся к технологиям, которые обеспечивают прямую передачу данных на графический процессор и/или с него, каким-то образом минуя ненужные проходы через память хоста.
GPUDirect v1 – это технология, которая работает с определенными адаптерами InfiniBand и обеспечивает совместное использование буфера данных между драйвером графического процессора и драйвером IB. Эта технология в основном была заменена GPUDirect (v3) RDMA. Эта технология v1 не допускает общего использования с какой-либо сетевой картой. Ссылка на переменную среды:
однако презентация, которую я приложил, наводит на мысль, что все, что мне нужно, это установить переменную среды в Linux
относится к включению GPUDirect v1. Это не универсальный сетевой активатор.
GPUDirect v2 также называется GPUDirect Peer-to-Peer и предназначен для передачи данных между двумя графическими процессорами CUDA на одной и той же фабрике PCIE только. Он не обеспечивает взаимодействия с любым другим типом устройств.
GPUDirect v3 также называется GPUDirect RDMA.
Поэтому мне интересно, можно ли считывать данные напрямую с контроллера NIC/RAID в GPU и что для этого потребуется?
Сегодня каноническим вариантом использования GPUDirect RDMA является адаптер Mellanox Infiniband (IB). (Его также можно заставить работать, возможно, с помощью Mellanox, используя Ethernet-адаптер Mellanox и RoCE). Если это соответствует вашему определению «сетевой карты», то это возможно, загрузив правильный стек программного обеспечения, при условии, что у вас есть соответствующее оборудование. Графический процессор и устройство IB должны находиться на одной и той же фабрике PCIE, что означает, что они должны быть подключены к одному и тому же корневому комплексу PCIE (фактически, подключены к одному и тому же сокету ЦП). При использовании адаптера Mellanox IB типичное использование включает GPUDirect с поддержкой RDMA. ИМБ.
Если у вас есть собственная неуказанная сетевая карта или RAID-контроллер, и у вас еще нет драйвера Linux-устройства GPUDirect RDMA, использовать GPUDirect невозможно. (Если для него имеется драйвер GPUDirect RDMA, обратитесь за помощью к производителю или поставщику драйвера.) Если у вас есть доступ к исходному коду драйвера и вы знакомы с написанием собственных драйверов устройств Linux, вы можете попробовать создать собственный драйвер GPUDirect. . Необходимые шаги выходят за рамки моего ответа, но отправная точка задокументирована здесь. а>.
Нужно ли мне писать собственный драйвер для оборудования?
Да, если у вас еще нет драйвера GPUDirect RDMA, его необходимо написать.
Есть ли примеры, когда определенные копии избегаются?
В GPUDirect RDMA MPI ссылка приводятся примеры и объясняется, как GPUDirect RDMA может избегайте ненужных копий данных устройства‹->host во время передачи данных с GPU на адаптер IB. Как правило, данные могут передаваться напрямую (через PCIE) из памяти устройства GPU в память устройства IB (или наоборот) без прохождения через память хоста (GPUDirect v1 этого не достиг).
ОБНОВЛЕНИЕ: NVIDIA недавно анонсировала новую технологию GPU Direct под названием GPU Direct Storage.
person
Robert Crovella
schedule
07.04.2015