Վերադառնալ
DOCA GPUnetIO միավորում է GPU-ով նախաձեռնված ցանցային փոխազդեցությունը NVIDIA-ի ծրագրային ստեկում
SiTech AI Team3 րոպե ընթերցում

DOCA GPUnetIO միավորում է GPU-ով նախաձեռնված ցանցային փոխազդեցությունը NVIDIA-ի ծրագրային ստեկում

DOCA GPUnetIO-ն CUDA-ի միջուկներին ընդհանուր GDA-KI հիմք է տալիս, որպեսզի Ethernet, RDMA, Verbs և DMA գործողությունները ուղղակիորեն կառավարվեն, իսկ CPU-ն հեռանա կրիտիկական ճանապարհից: Այժմ NCCL, NVSHMEM, UCX/NIXL և Holoscan հիմնվում են մեկ իրականացման վրա:

GPU-ով նախաձեռնված ցանցի ընդհանուր հիմք

DOCA GPUnetIO-ն GPU-ի վրա հիմնված ցանցային SDK է ֆենայի իրական ժամանակում փաթեթների մշակման և տվյալների փոխադրման համար: Այն միավորում է GPUDirect RDMA-ն, GPUDirect Async Kernel-Initiated (GDA-KI)-ն և GDRCopy-ն, որպեսզի CUDA-ի միջուկները ուղղակիորեն կառավարեն Ethernet, RDMA, Verbs և DMA գործողությունները, իսկ CPU-ն հեռանա կրիտիկական ճանապարհից: NVIDIA-ի խոսքով, սա միսունի GDA-KI հիմք է, որը օգտագործում են NVSHMEM, NCCL, Aerial 5G SDK, UCX/NIXL, NVQLink Holoscan Sensor Bridge-ի հետ, Holoscan Advanced Network Operator, DeepEP/HybridEP:

Բաց կոդ և SDK-ի տարբերակներ

NVIDIA GPUnetIO-ն հասանելի է որպես ամբողջական DOCA SDK-ի հավաքածու և որպես ավելլթեթ, բաց կոդի Verbs-ի վրա հիմնված իրականացում: SDK-ի տարբերակը ներառում է Verbs, Ethernet, DMA և Comm Channel, իսկ բաց տարբերակը ծառայում է բաց տրանսպորտի տարբերակների համար: Բաց իրականացումը գործարկման ժամանակ հայտնաբերում է DOCA SDK-ն և dlopen-ով կանչում ընտրված փակ ֆունկցիաները, եթե միջավայրի փոփոխականը ճիշտ ուղղությամբ ցույց է տալիս: Եթե ոչ, այն աշխատում է անկախ: Երկու ձևերն էլ բերդնում են իրականում CUDA API-ի վրա հիմնված մոդելը, որը պահպանում է GPU-ի ծրագրավորման մոդելը միասնական:

Կառավարման ճանապարհ, տվյալների ճանապարհ և API-ներ

GPUnetIO-ի հավելվածները սկսվում են CPU-ի կառավարման ճանապարհով: Նախաձեռնվում են GPU-ն և ցանցը, հատկացվում է հիշողություն, ստեղծվում են տրանսպորտի օբյեկտներ, և դեսկրիպտորները անցնում են GPU-ի հիշողություն: doca_gpu_verbs_create_qp_hl-ի նման օգնականները պարզեցնում են RDMA-ի հանգույցների զույգ ստեղծելը և միացնելը: GPU-ի տվյալների ճանապարհում CUDA-ի թռերը WQE-ներեն տեղադրում են, զանգ են անում քարտի դռան վրա և ըստ կարիքի ստուգում են ավարտի գրառումները: Դռան զանգի ռեժիմներն են MMIO գրառումները CUDA-ի հիշողությունից, BlueFlame-ով ամբողջ WQE-ի գրառումը ցածր լատենտության համար փոքր հանգույցներում և CPU-ի օգնական ռեժիմը այն համակարգերի համար, որոնք ուղղակի GPU-NIC կապ չունեն, օրինակ DGX Spark: Ethernet-ի և RDMA Verbs-ի համար բարձր մակարդակի կանչերը (doca_gpu_dev_verbs_put_signal, doca_gpu_dev_eth_txq_send) կառավարում են սինխրոնիզացիան և դռան զանգի ուղարկումը թռի, warp-ի կամ բլոկի մակարդակով: Ցածր մակարդակի պրիմիտիվները տալիս են WQE-ների պատրաստում, հանգույցների ուղարկում և ավարտների ստուգում, բայց թռի նկատմամբ անվտանգ չեն և պահանջում են հավելվածի սինխրոնիզացիա: Օրինակները կան բաց պահետում և DOCA SDK-ում:

NCCL-ի և NVSHMEM-ի ինտեգրումները

NCCL GIN-ը բերդնում է սարքի կողմի put, get, signal, wait և flush պրիմիտիվները: NCCL 2.27-ից սկսած GIN-ը բաց կոդի GPUnetIO Verbs-ի ճանապարհը օգտագործում է որպես GDA-KI-ի բեքենդ: GIN-ի գործողությունները արտացոլվում են GPUnetIO-ի կանչերում WQE-ի պատրաստման, դռան զանգի պահանջի և ավարտի ստուգման համար: NVSHMEM 3.7-ը ավելացրել է GPUnetIO-ի տրանսպորտը, որը հետևում է IBGDA-ի կառուցվածքին և ցածր մակարդակի մեծ մասը փոխարինում է GPUnetIO-ի կանչերով: Այն աջակցում է GDA-KI-ին և հոստի կողմից նախաձեռնված RDMA-ին, որոնք ընտրվում են NVSHMEM_REMOTE_TRANSPORT=gpunetio և NVSHMEM_GPUNETIO_ENABLE_GDAKI-ով: NVQLink-ը օգտագործում է GPUnetIO-ի վրա հիմնված GPU RoCE Transceiver օպերատորը մոտավորապես 2,6 միկրովայրկյան նվազագույն երկկողմ լատենտության համար IGX Thor-ում Blackwell GPU-ի և ConnectX-7-ի հետ:

Նյութերի աղբյուրները: Nvidia Dev

SSiTech

SiTech — AI-ով հզորացված վեբ մշակում

Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։