GPUDirect е технологичен „термин-чадър“, който като цяло е марка, отнасяща се до технологии, които позволяват директен трансфер на данни към и/или от GPU, като по някакъв начин заобикалят ненужните пътувания през паметта на хоста.
GPUDirect v1 е технология, която работи със специфични infiniband адаптери и позволява споделянето на буфер за данни между драйвера на GPU и драйвера IB. Тази технология е заменена предимно от GPUDirect (v3) RDMA. Тази v1 технология не позволява обща употреба с никоя NIC. Препратка към променливата на средата:
обаче презентацията, която прикачих, кара да вярвам, че всичко, от което се нуждая, е да задам променлива на средата в Linux
се отнася за активиране на GPUDirect v1. Това не е средство за активиране на NIC с общо предназначение.
GPUDirect v2 се нарича още GPUDirect Peer-to-Peer и е за прехвърляне на данни между два CUDA GPU на една и съща PCIE тъкан само. Не позволява оперативна съвместимост с друг вид устройство.
GPUDirect v3 се нарича още GPUDirect RDMA.
Затова се чудя дали е възможно да се четат данни директно от NIC/RAID контролер в графичния процесор и какво ще е необходимо за това?
Днес каноничният случай на използване на GPUDirect RDMA е с адаптер Mellanox Infiniband (IB). (Също така може да се накара да работи, може би с помощта на Mellanox, като се използва Ethernet адаптер Mellanox и RoCE). Ако това отговаря на вашето определение за "NIC", тогава е възможно чрез зареждане на подходящ софтуерен стек, ако приемем, че имате подходящ хардуер. Графичният процесор и IB устройството трябва да са на една и съща PCIE тъкан, което означава, че трябва да бъдат прикрепени към един и същ PCIE коренен комплекс (ефективно свързани към един и същи гнездо на процесора). Когато се използва с адаптер Mellanox IB, типичното използване ще включва GPUDirect RDMA-aware MPI.
Ако имате свой собствен неуточнен NIC или RAID контролер и все още нямате GPUDirect RDMA драйвер за linux устройство за него, тогава не е възможно да използвате GPUDirect. (Ако има GPUDirect RDMA драйвер за него, свържете се с производителя или доставчика на драйвера за съдействие.) Ако имате достъп до изходния код на драйвера и сте запознати с писането на собствени драйвери за Linux устройства, можете да опитате да създадете свой собствен GPUDirect драйвер . Включените стъпки са извън обхвата на моя отговор, но началната точка е документирана тук.
Трябва ли да напиша собствен драйвер за хардуера?
Да, ако все още нямате GPUDirect RDMA драйвер за него, ще трябва да бъде написан.
Има ли примери, при които определени копия се избягват?
GPUDirect RDMA MPI връзката дава примери и обяснява как GPUDirect RDMA може избягване на ненужно устройство‹->копия на данни на хост по време на прехвърляне на данни от GPU към IB адаптер. По принцип данните могат да се прехвърлят директно (през PCIE) от паметта на GPU устройството към паметта на IB устройството (или обратно) без пътуване през паметта на хоста (GPUDirect v1 не постигна това.)
АКТУАЛИЗАЦИЯ: NVIDIA наскоро обяви нова технология GPU Direct, наречена GPU Direct Storage.
person
Robert Crovella
schedule
07.04.2015