Unified Communications X (UCX) обеспечивает высокопроизводительное ускорение портативных сетей — вводное руководство UCX HOTI2022
Unified Communications X (UCX) обеспечивает высокопроизводительное ускорение портативных сетей — вводное руководство UCX HOTI2022

Ссылка на UCX

Официальный сайт: https://openucx.org/

Официальная документация: https://openucx.readthedocs.io/en/master/

Проектная документация и конструкторские идеи (транспортный уровень Например): https://github.com/openucx/ucx/wiki/UCT-Design

Домашняя страница проекта: https://github.com/openucx/ucx

посмотрите демо-версию SC'19 на встрече UCX, чтобы узнать о UCX и его последних разработках из дополнительной информации: https://www.youtube.com/watch?v=H2d1CkGXJ64

речь: https://ucfconsortium.org/presentations/

Ссылка на видео: https://www.youtube.com/watch?v=Yv9nW0Qyjys&t=2713s

Введение

UCF Unified Communication Framework структура унифицированных коммуникаций, https://ucfconsortium.org/, структура унифицированных коммуникаций - Сотрудничество между промышленностью, лабораториями и научными кругами для создания коммуникационных инфраструктур производственного уровня и открытых стандартов для высокопроизводительных приложений, ориентированных на данные. Об Университете Центральной Флориды, Структура открытой коммуникации является важным стимулом для совместного проектирования и предоставляет возможности для инноваций и разработки гетерогенных элементов совместной обработки. Гетерогенные элементы совместной обработки могут работать совместно и бесперебойно, тем самым обеспечивая экзафлопсные вычисления и другие вычислительные возможности. . Многоядерная обработка Архитектура, настройка FPGA Появление элементов обработки, взаимосвязанного интеллекта и хранения данных — это лишь некоторые из ключевых технологий, которые полагаются на способность эффективно общаться в таких рамках для реализации потенциала своих возможностей.

речь: https://ucfconsortium.org/presentations/

блог: https://ucfconsortium.org/blogs/

Домашняя страница проекта: https://github.com/openucx/ucx/wiki, Основные компоненты: https://github.com/openucx/ucx/wiki/Infrastructure-and-Tools, Высотный дизайн: https://github.com/openucx/ucx/wiki/High-Level-design

Архитектура

Architecture

Компоненты Введение

Component

Role

Description

UCP

Protocol

выполнитьпередовойабстрактный,Напримерсопоставление тегов, поток, согласование и установление соединения, многолучевое распространениеа Также Обработка различных типов памяти.

UCT

Transport

Реализация низкоуровневой семантики связи, такой как активные сообщения, удаленный доступ к памяти и атомарные операции.

UCS

Services

Коллекция часто используемых структур данных, алгоритмов и системных утилит.

UCM

Memory

Перехватывает события выделения и освобождения памяти, которые используются кэшем регистрации памяти.

Ниже приведена часть видео: Обложка-Добро пожаловать в UCX Tutorial 2022.

Nvidia MLX и еще 5 громких имен автор проекта Введение

Джеффри Янг (Технологический институт Джорджии), Йосси Итигин (NVIDIA), Мэтью Бейкер (Национальная лаборатория Ок-Риджа), Оскар Эрнандес (NVIDIA/Mellanox)

oscar hernandez on behalf of gilad shainer ucf

проблема

  • Учебное пособие по UCX и экология
  • Базовая сеть UCXВведение, рабочий процесс, создание конечной точки
  • Hello World Demo
  • UCXУправление памятью
  • Ускорение, UCXPy
  • GPU/UCXPy Hello World Demo
  • RISC-V поддерживатьUCX
  • UCXпередовойтема: Bindings и Интеграция OpenMPI

миссия-ИИ, GPU, DPU, Двухточечная связь, машинное обучение

  • рабочая группа, другойпроект
  • важные члены, Каждыйлунаплатитьпоток
  • Ссылка на присоединение
  • Год рождения: 2012Год

история

  • Низкоуровневый расширяемый, высокая производительность, совместимость, Эффективная из коммуникационная структура

какую проблему решить

  • Хост-память, такая как процессор и устройства ускорения, Такие как графический процессор, dpu и т. д. изданных передачи инфекции

Двухэтажный дизайн Архитектуры

  • высотное, UCP, фокусипротокол
  • нижний этаж, UCT, транспортный уровень, Сосредоточьтесь на другом оборудовании

Широкая совместимость

Пример пользователя

  • Huawei MPI, NVIDIA NCCL, искусственный интеллект, модель алгоритма и т. д.

Полезные ссылки по UCX

Учебники, слайды, примеры, группа общения (slack-канал), часто задаваемые вопросы

Пример суперкомпьютера TCP против протокола IB

Память с нулевым копированием и временные буферы

Расширенная семантика связи

стек программного обеспечения

Задержка операции RMA PUT уменьшена в 5–6 раз.

интерфейс сетевого программирования

миссия

  • Иметь хороший дизайн кода и интерфейс связи нового поколения.

Инновационные точки UCX

UCP четырех основных сервисов

Один ко многим, обмен рабочим_адресом по внешней сети

Реализация hello_world, инициализация, установление рабочего соединения, установление соединения конечной точки, отправка/получение данных (RDMA put/get), уничтожение соединения.

github example

  • Скрипт установки

server:

client

  • code

Управление памятью

  • mem_map
  • rkey_pack
  • rkey_unpack
  • put_nbx
  • tag_send_nbx
  • тег1, тег2, тег3, по порядку
  • tag_recv_nbx
  • ucs_status_ptr_t
  • tag_send_sysnc_nbx, no_block
  • atomic_op_nbx, swap, replace remote, compare_and_swap

действовать

приложение

Прием докладов: семинар OpenSHMEM и сопутствующие технологии 2022

http://openshmem.org/workshops/ort2022/

Только виртуальные/онлайн-мероприятия

Дата: 20-22 сентября 2022 г.

Важные обновления

UCF 2022семинар на OpenSHMEM Встреча принята ORT 2022 подчинение. С авторами свяжутся индивидуально и спросят, подходит ли им это.

Звоните за документами

OpenSHMEM Семинар является ежегодным мероприятием, посвященным использованию OpenSHMEM Интерфейсы программирования и связанные с ними технологии способствуют развитию параллельного программирования. Это обсуждается и демонстрируется с OpenSHMEM Главное место для последних разработок, технологий, инструментов, тенденций, последних исследовательских идей и результатов, связанных с их применением. На семинаре основное внимание будет уделено на OpenSHMEM и сопутствующие технологии, являющиеся частью его экосистемы, такие как PGAS Языки, коммуникационные платформы, опыт применения инструментов. Мы также сосредоточимся на фокусе по расширению модели программирования для улучшения программируемости использования ускоряться и интеллектуальных сетевых систем из, а Также повысить эффективность межсетевых соединений за счет расширения. Хотя это специфическое OpenSHMEM семинар,

  • текущий OpenSHMEM спецификацияизскрытыйсуществовать Усиливать Функция
    • OpenSHMEM изускоряться Технические характеристики устройства Версия
    • Отказоустойчивость
    • Проверки во время выполнения
    • производительностьанализироватьинструмент
  • Низкий уровенькоммуникационная структураи Библиотека
  • PGAS языки Новые модели программирования
    • Юлия, церковь, ржавчина и т. д.
  • существоватьвычислитьхранилищеиспользуется в OpenSHMEM/UCX/Communications Библиотека
  • (текущая реализация из) Проблемы масштабируемости или производительности
  • Влияние PGAS(асимметричная память)из Передовая технология памяти
    • энергонезависимый、высокий Пропускная способностьдругойдобрый Тип памятииз Расширять
  • OpenSHMEM/PGAS и его пара МО/ИИ/Большие данные/(Ввод-вывод) поддерживатьизценить
  • OpenSHMEM、Rust и PGAS языкиз Опыт применения
    • Иметь опыт работы в любой сфере деятельности,Особенно динамичные и нерегулярные приложения
  • Гибридная модель программирования: OpenSHMEM. и на основе задачи из модели (например. OCR, HPX, ParSEC) или гетерогенные модели (например. OpenCL, OpenACC, CUDA, OpenMP) в сочетании
  • существоватьновый Архитектурареализовано на OpenSHMEM изопыт
  • Улучшение использования сети из исследований в области электричества/энергетики
  • OpenSHMEM исеть Software Stack из Validation и Validation Suite
  • Автоматически корректировать стратегию оптимизации
  • Среда выполнения и интеграция планировщика.
  • Ориентиры (например, OpenHPCA), пакет оценки и проверки производительности.
  • унифицированные коммуникации X (UCX)、UCX-Py、UCX-Java、UCX-Go
  • унифицированные коммуникацииколлектив (UCC)
  • Блок обработки данных (DPU) / API SmartNIC
  • существовать UCX Реализовано на измашинном обучениеиструктура науки о данных
    • и Apache Spark、Apache Arrow、BlazingSQL、Dask/RAPIDS Подождите интеграции.
  • Научная библиотека, ФФТ Подождите, пока изсет будет удален

важный день

“OpenSHMEM и сопутствующие технологии» будет 2022 Год 9 луна 20 Солнцестояние 22 День в UCF 2022семинар состоявшихся в течение периода.

Подробности подачи бумаги

Протокол заседания будет опубликован в LNCS Springer тома и будет рецензироваться проектным комитетом. Все авторы должны сначала представить 250 слово абстрактное, чтобы зарегистрировать свою статью. После принятия тезисов авторам предлагается представить либо полный текст, либо краткую статью. Мы принимаем полные статьи объемом 12–15 страниц и короткие статьи объемом 6–8 страниц. Полный текст предпочтителен. Статья должна быть отформатирована в одну колонку. Пожалуйста, используйте LaTeX и Word Шаблон диссертации ( https://www.springer.com/gp/authors-editors/conference-proceedings/conference-proceedings-guidelines ). Авторские права должны быть переданы Springer. Авторам будут предоставлены формы авторских прав, чтобы пользователи могли самостоятельно архивировать их.

Тезисы и статьи необходимо загружать сюда: https ://easychair.org/conferences/?conf=openshmem2022 。

Президент

  • Стивен Пул, LANL

Руководящий комитет по планированию

  • Оскар Эрнандес, NVIDIA
  • Павел Шамис, АРМ
  • Мэтью Бейкер, Voltron Data
  • Манджунатх Горунтра Венката, NVIDIA
  • Майкл Рэймонд, HPE
  • Брайант Лин, Министерство обороны
  • Ник Парк, Министерство обороны

Член технического комитета

  • Pavel Shamis,ARM,Президент
  • Навин Намашиваям, HPE
  • Майкл Рэймонд, HPE
  • Джеймс Динан, NVIDIA
  • Галаад, Нвидиа
  • Манджунатх Горунтра Венката, NVIDIA
  • Халед Хамидуш, AMD
  • Камилла Котт, Университет Орегона/Париж
  • Самир Шинде, UoO
  • Броди Уильямс, ТТУ
  • Мэтью Бейкер, Voltron Data
  • Свен Бём, ORNL
  • Оскар Эрнандес (Oscar Hernandez),NVIDIA соединение Президент
  • Сваруп Бофилл (ОРНЛ)
  • Смин, Мехта
  • Дарбалесвар Панда, Университет штата Орегон
  • Тони Кертис, СБУ
  • Паван Баладжи, Мехта
  • Стивен Пул, LANL
  • Говард Причард, LANL
  • Венди Пул, LANL
  • Ник Парк, Министерство обороны
  • Брайант Лин, Министерство обороны
  • Марсель Фалле, Министерство обороны
  • Томас Роллингер, Министерство обороны
  • Кертис Хьюи, Министерство обороны
  • Джессика Стеффи, Министерство обороны
  • Алекс Марголин, NextSilicon
  • Макс Гроссман, GTRC
  • Лаборатория Сато Мицукури
  • Джефф Библиотека, AMD
  • Yangei Guo, ANL
  • Мэтью Досандже (SNL)
  • Перри Шмидт, IBM

Архитектура высотного проекта

Домашняя страница Конференц-звонки раз в две недели Руководство для участников Проверка стиля кода UCF Collectives WG

Клонировать эту вики локально

Код UCX состоит из 3 частей:

  • Уровень протокола-UCP
  • транспортный уровень-UCT
  • Служить-UCS

Уровень протокола

поддерживать API Все пункты описаны в описании, и никаких особых знаний об оборудовании не требуется. Он попытается объединить различные аппаратные механизмы передачи. инфекции, чтобы обеспечить максимальную производительность «из коробки». Он может моделировать оборудование, которое не подключено напрямую, например привод с односторонним движением. Кроме того, он не будет поддерживать аппаратную настройку общего программного протокола, такого как обсуждение. тегови Универсальный Новости событий。ПодробнееПожалуйста, нажмите здесь

транспортный уровень

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

Служить

Универсальный Служить、структура данных、Средства отладки и др. из коллекции.

Обязанности на каждом уровне

What

Где уровень

Why

Сопоставление тегов Сопоставление тегов

High level

Software protocol

Эмуляция RMA/AMO, удаленный доступ к памяти/атомная память.

High level

Software protocol

Фрагментация

High level

Software protocol

Ожидающая очередь, блокирующая очередь

High level

Stateful

Multi-transport/channel/rail многолучевое распространение/многотранспортный уровень/многоряд

High level

OOB optimization

Выберите встроенное/bcopy/zcopy (необязательное встроенное/буферное копирование/нулевое копирование).

High level

optimization logic

Надежность (например, UD) надежная датаграмма

Low level

Transport specific

Владение буфером DMA Владение буфером DMA

Low level

Transport specific

Кэш регистрации памяти Кэш регистрации памяти

Low level

Transport dependent

См. также:

UCX — лучшая коммуникационная библиотека на свете

Инфраструктура и инструменты

редактировать новая страница

Artemy-Mellanox оставить эту страницу 2022 Год 1 луна 5 день · 7 редакций

Страница 93

Домашняя страница Конференц-звонки раз в две недели Руководство для участников Проверка стиля кода UCF Collectives WG

Клонировать эту вики локально

инструмент

Инфраструктурная библиотека (UCS)

  • асинхронный
  • Анализ конфигурации
  • крючок памяти
  • Структура данных:
    • Двойной связанный список
    • очередь с одной цепочкой
    • Список фрагментов – изменение порядка
    • пул памяти
    • массив индексов/указателей
    • SGLIB
  • отлаживать:
    • Преобразование адреса в имя файла и номер строки
    • Поиск неисправностей
    • Присоединить отладчик к самому себе
    • Записывать
    • Утверждения (время компиляции и время выполнения)
    • Отслеживание различных компонентов, использование памяти
    • анализировать
  • Статистика
  • Быстрое измерение времени
    • Чтение таймера процессора
    • Преобразование времени в секунды/миллисекунды/микросекунды/наносекунды
    • очередь по таймеру
    • колесо таймера
  • Тип данных:
    • перезвонить
    • добрыйинфраструктура
    • компонентная инфраструктура
    • спин-блокировка
    • код ошибки
  • система Служить:
    • атомдействовать
    • Быстрые битовые операции (найти первый установленный бит, целое число log2)
    • Получить имя хоста
    • Создать UUID
    • Получить соответствие процессора
    • Прочитать весь файл
    • Получить страницу/огромный размер страницы
    • использовать SystemV выделять память
    • Получить флаг доступа к области памяти (из /proc/$$/maps)
    • использовать fcntl Изменить флаг файла
    • Получить командную строку процесса
    • Получить модель процессора и тактовую частоту
    • Получить идентификатор потока

UCX — лучшая коммуникационная библиотека на свете

член UCF

UCFВведение

миссия: • Сотрудничество между промышленностью, лабораториями и научными кругами для создания системы коммуникации на уровне производства. Открытый стандарт для высокопроизводительных приложений, ориентированных на данные.  проект • UCX – унифицированные коммуникации X – www.openucx.org • SparkUCX – www.sparkucx.org • Открыть РДМА  член правления • Jeff Kuehn,UCF Президент (Лос-Аламосская национальная лаборатория) • Gilad Shainer,UCF Президент (Мелланокс Technologies) • Pavel Shamis,UCF Финансовый супервайзер (отдел) • Brad Benton,член правления (AMD) • Duncan Poole,член правления (Nvidia) • Pavan Balaji,член правления(Аргоннская национальная лаборатория) • Sameh Sharkawi,член правления (IBM) • Dhabaleswar K. (DK) Panda,член руководство (Университет штата Огайо) • Steve Poole,член управление (программное решение с открытым исходным кодом)

Официальная документация

Основные функции: https://github.com/ssbandjl/ucx/blob/master/docs/source/ucx_features.rst

Основные возможности UCX

Расширенные функции API

  • Выбрать клиента/Служить установлению соединения (добрый аналогичный TCP), или прохождение передает удаленный адрес blob Прямое подключение.
  • Ресурсы поддержки распределяются между потоками, а выделенные ресурсы выделяются каждому потоку.
  • Управляется событием или опросом на основе прогресса.
  • Java и Python Привязка.
  • Бесшовная обработка GPU Память.

Основной API

  • Дляпотокизотправлять/перениматьдействовать。
  • парламентие теговизотправка/получение.
  • Удаленный доступ к памяти.
  • удаленныйатомдействовать。

поддержка ткани

  • RoCE
  • InfiniBand
  • TCP sockets
  • Shared memory (CMA, knem, xpmem, SysV, mmap)
  • Cray Gemini / Aries (ugni)

Поддержка платформы

  • поддерживатьиз Архитектура:x86_64、Arm v8、Power。
  • Запускать на существующей виртуальной машине (использовать SRIOV) и контейнере (докер, сингулярность).
  • можно использовать MLNX_OFED или встроенный RDMA водитель.
  • существоватьосновной Linux Дистрибутив (RedHat/Ubuntu/SLES) начальстворуководить Понятнотест。

Поддержка графического процессора

  • Cuda (для графических процессоров NVIDIA)
  • ROCm (для графических процессоров AMD)

Протоколы, оптимизации и расширенные функции

  • Автоматический выбор лучшей передачи инфекциииоборудование。
  • С регистрационным кэшем из нуля копировать.
  • Может Расширятьизпоток Алгоритм контроля количества。
  • оптимизацияизпул памяти。
  • ускоряться Mellanox оборудованиеизпрямой глаголпередача инфекции。
  • Память графического процессора из конвейерного протокола
  • RDMA передача инфекциииз QoS ипоток Количественная изоляция
  • Оптимизация, специфичная для платформы (микроархитектуры) (например, memcpy, барьеры памяти и т. д.)
  • Группа агрегации каналов Multi-rail и RoCE поддерживается
  • Поддерживается «голое железо», контейнерная и облачная среда.
  • Для передачи инфекции сообщения разного размера изпередовойпротокол

Глоссарии терминологии

Keyword

Description

ACK

Acknowledge

Подтверждение, подтверждение после получения сообщения

AM

Active Message

AMO

Atomic Memory Operation

атом Памятьдействовать

ANL

Argonne National Laboratory

Аргоннская национальная лаборатория

AZP

Azure Pipeline

bcopy

Buffered copy

Bistro

Binary Instrumentation

BTL

Open MPI’s Byte Transfer Layer

CM

Connection Manager

CMA

Linux Kernel Cross Memory Attach

CQ

Completion Queue (InfiniBand)

CQE

Completion Queue Entry (InfiniBand)

csmock

static analysis tools

CUDA

Compute Unified Device Architecture (NVIDIA)

DC

Dynamically Connected transport (Mellanox/Nvidia InfiniBand)

DPM

Direct Packet Mode

EP

EndPoint

FC

Flow Control

FD

File Descriptor

GDR

GPUDirect RDMA

gtest

Google Test

HPC

High Performance Computing

HWTM

HardWare Tag Matching

IB

InfiniBand

iface

Interaface

IPC

Inter Process Communication

JUCX

Java API over UCP

KLM

A new sophisticated way of creating memory regions (Mellanox)

KNEM

Inria’s Kernel module for process to process zero copy (https://knem.gitlabpages.inria.fr)

LDPM

Legacy DPM

LLNL

Lawrence Livermore National Laboratory

madvise

give advice about use of memory. See madvise(2)

MD

Memory Domain

MEMH

Memory Handle

MLX

Mellanox Technologies

mlx5

Mellanox-5 generation of Mellanox device driver

MM

Memory Mapper

MP-XRQ

Multi-Packet XRQ

MPI

Message Passing INterface

MPICH

ANL MPI Implementation

MTT

The MPI Testing Tool

NAK

Negative Acknowledge

NB

Non blocking operations

NBI

Non blocking implicit

NBX

Non blocking extended

ODP

OnDemand Paging

OFA

OpenFabrics Alliance

OMPI

OpenMPI

OOB

Out of band / Out of box

OOO

Out of Order

OPA

Omni-Path Architecture

Open MPI

A MPI Implementation

ORNL

Oak Ridge National Laboratory

PCIe

PCI Express

PFN

Physical Frame Number

PGAS

Partitioned Global Address Space

POSIX

Portable operating system interface

ppn

processes per node

PR

Pull Request

QP

Queue Pair (InfiniBand)

RC

Reliable Connection (InfiniBand)

rcache

Registration Cache

RDMA

Remote Direct Memory Access

REQ

Request

rkey

Remote KEY

RMA

Remote Memory Access

RNDV

Rendezvous protocol

RnR

Receiver Not Ready

RoCE

RDMA over Converged Ethernet

ROCm

Radeon Open Compute platform (AMD)

RTE

Run Time Environment

RX

Receive

skb

Socket Buffer

SM

Shared Memory

SM

Subnet Manager (InfiniBand)

SockCM

Socket Connection Manager

SRQ

Shared Receive Queue

SysV

UNIX System V

TL

Transport Layer

TLS

Transpot LayerS

TM

Tag Matching

TX

Transmit

UC

Unreliable Connection (InfiniBand)

UCC

Unified Collective Communications

UCD

Unified Communication Datatypes

UCF

Unified Communication Framework

UCM

Unified Communication Memory

UCP

Unified Communication Protocols Higher level API

UCS

Unified Communication Service Common utilities

UCT

Unified Communication Transport Lower level API

UCX

Unified Communication X

UD

Unreliable Datagram (InfiniBand)

uGNI

user level generic network interface (Cray)

UMR

User mode memory registration

VPI

Virtual Protocol Interconnect

WFE

Wait for event

WIP-DNM

Work-in-Progress-Do-Not-Merge

WQ

Work Queue (InfiniBand)

WQE

Work Queue Elements (pronounce WOOKIE)

WR

Work Request

XPMEM

XPMEM Linux kernel module originally developed by SGI implementing cross process memory mapping with zero copy

XRC

eXtended Reliable Connection (InfiniBand)

XRCD

XRC Domains

XRQ

Mellanox Shared Receive Queue

Zcopy

Zero Copy

FAQ

Часто задаваемые вопросы

Общий

Обзор

Что такое UCX?

UCX Это инфраструктура (интерфейс библиотеки), которая обеспечивает эффективные и относительно простые способы создания широкого спектра способов использования. HPC Протокол: MPI Сопоставление тегов, RMA действовать、встречапротокол、поток、фрагменты、Удаленное управление Atom и многое другое.

Что такое UCP, UCT и UCS?
  • UCTэтотранспортный уровень, который абстрагирует различия между различными аппаратными Архитектурами и обеспечивает поддержку протокола связи на низком уровне. API. Основная цель уровня Должен — обеспечить прямой и эффективный доступ к аппаратным ресурсам с минимальными накладными расходами на программное обеспечение. С этой целью УКТ Полагается на драйверы низкого уровня, например. uGNI, глаголы, общая память, ROCM, CUDA. Кроме того, этот уровень обеспечивает управление контекстом связи (на уровне потока и приложения). такжеоборудованиеидентификацияхранилищеустройство(включатьускорятьсяустройствосерединаизхранилищеустройство)израспространятьиуправлятьизструктура。существоватькоммуникация API Аспекты, UCT Определяет немедленный (короткий), буферизованный интерфейс копирования отправки (bcopy) и нулевого копирования (zcopy). Короткий режим оптимизирован для небольших сообщений, которые можно опубликовать на месте и завершить. копирование Операция оптимизирована для отправки сообщений среднего размера, управляемых в обычном режиме, так называемом буфере отказов. Наконец, zcopy Операция не предоставляет нулевую копацию семантики связи между памятью.
  • UCPпроходитьиспользоватьпроходить UCT Уровень воздействия функции нижнего уровня для оптимизации обмена сообщениями (MPI) и PGAS Модель программирования обычно отличается от передовой к протоколу. ОГП Отвечает за следующее: Инициализация, передача данных. отбор инфекций, сегментация сообщений и многоканальная связь. в настоящий момент,API Имеет следующие интерфейсы: инициализация, удаленный доступ к памяти. (RMA) Коммуникация, атомная памятьдействовать (AMO)、Новости событий、сопоставление наборы веса.
  • UCSэто Служитьслой,Обеспечивает необходимую функцию для портативной и эффективной зарядки утилит.
Как я могу внести свой вклад?
  1. fork
  2. Исправьте ошибку или внедрите новую функцию
  3. Открыть запрос на вытягивание
Как мне связаться с разработчиками UCX?

пожалуйста, присоединяйтесь к намизсписок рассылки:https://elist.ornl.gov/mailman/listinfo/ucx-group или в github начальствонестиплатитьвопрос:https://github.com/openucx/ucx/issues

UCXмиссия

Каковы основные особенности UCX?
  • Поддержка поставщика с открытым исходным кодомудалять Понятно За пределами сообщества открытого исходного кода,Платформа UCX также поддерживается поставщиками оборудования. Каждый запрос на вытягивание проходит проверку,А сообщество поставщиков поддерживает несколько аппаратных платформ.
  • Покажи, покажи, покажи! рамка Архитектура、структура данныхи Назначение компонентасуществоватьпредусмотретьсетьаппаратное обеспечениеизоптимизациядоступ。
  • Применимо к различным HPC Модель программирования изпередовой API。UCX Обеспечивает передовую и портативную производительность. API. Должен API Ориентирован на различные модели программирования, от высокопроизводительных MPI выполнитьприезжать Apache Spark。UCP API абстрагировал различия и заполнил UCT Между связями в слое имеются промежутки. Поэтому модели программирования и Библиотека (MPI, OpenSHMEM, Apache Spark、RAPIDS и т. д.) упрощается выполнение, обеспечивая поддержку нескольких межсоединений (uGNI, Verbs, TCP, разделяемая память, ROCM, CUDA). и т. д.) обеспечивает эффективное управление.
  • Поддержка Взаимодействие между несколькими трансмиссионными инфекциями (или провайдерами) для доставки сообщений.Например,UCX Функции позволяют «GPUDirect», IB» и общей памяти эффективно работать вместе из логики (существовать UCP середина),Чтобы существоватьнуждатьсяиз мест данных,без пользовательской обработки.
  • Возможность перекрестной многопутной перевозки.UCX Уровень протоколаможно использоватьмногодобрыйпередача инфекции, различные типы аппаратных средств для более быстрой доставки сообщений без каких-либо специальных настроек.
  • Используйте разгрузку оборудования для оптимизации производительности.,Например, RDMA, аппаратное разделение тегов аппаратного атомарного действия и т. д.
Какие протоколы поддерживает UCX?

UCP выполнить RMA put/get、приноситьсопоставление теговизотправка/получение, Новости события, атом действуют. В ближайшем будущем мы планируем добавить к обычно используемому коллективному действоватьизподдержание.

Заменит ли UCX GASNET?

Не будет. ГАЗНЕТ подвергается воздействию для PGAS Расширенное управление программированием API, обеспечивающий симметрию память Функция и создание существующей среды выполнения. Эти функции выходят за рамки UCX диапазон проектиз. Напротив, ГАСНЕТ можно использовать UCX Каркас быстро и эффективно восстанавливает ГАСНЕТ,чтобы получить UCX поддерживатьизсетьтехнология。

Какова связь между UCX и сетевыми драйверами?

Платформа UCX не предоставляет драйверы, а полагается на драйверы, предоставленные поставщиком. В настоящее время мы используем: OFA VERB, Cray’s UGNI, NVIDIA CUDA.

Какова связь между UCX и OFA Verbs или Libfabrics?

UCX — это платформа связи промежуточного программного обеспечения, основанная на драйверах устройств, таких как RDMA, CUDA и ROCM. РДМА иобойтидействоватьсистемаизсетьоборудованиев целомиспользовать UCX поддерживатьиз RDMA основной Linux ребеноксистема Приходитьвыполнитьоборудованиеводитель.может быть основано на сообществеизпроситьи Вклад добавлен вдругойсетьабстрактныйизподдерживать。

Является ли UCX драйвером пользовательского уровня?

UCX Не драйвер пользовательского уровня. Обычно драйверы предназначены для предоставления детального доступа к функциям, зависящим от сетевой архитектуры. UCX абстрактный Понятно各добрый驱动программа之间изразница,ииспользоватьпрограммное обеспечениепротоколнаполнять Понятнонекоторый Нетдлявседействоватьнести供аппаратное обеспечениесортподдерживатьиз Архитектураизпустой。

Зависимости

Что мне нужно иметь на своем компьютере, чтобы использовать UCX?

UCX Обнаруживает существующие машины сборки и соответственно включает/отключает различные машины сборки. Если существуют, не удается найти сборку при запуске UCX Некоторые модули будут автоматически отключены.

  • базовыйобщая памятьи TCP поддерживать- Всегда включен.
  • Оптимизация общей памяти- нуждаться knem или xpmem водитель.существоватьсовременный Ядроначальство,если доступно,Общийиспользовать CMA (подключение к перекрестной памяти).
  • RDMA поддерживать- нуждаться rdma-core или libibverbs Библиотека。UCX >= 1.12.0 нуждаться rdma-core >= 28.0 или MLNX_OFED >= 5.0。
  • NVIDIA GPU поддерживать- нуждаться CUDA >= 6.0。UCX >= 1.8 нуждатьсяиметь nv_peer_mem поддерживатьиз CUDA。
  • AMD GPU поддерживать- нуждаться ROCm Версия >= 4.0。
Полагается ли UCX на внешние среды выполнения?

UCX не зависит от внешних сред выполнения.

ucx_perftest(на основе UCX изприложение/эталон)Можети Доступно для удаленногоucx_perftestзапускатьиз Ссылка на внешнюю среду выполнения,Но это необязательная конфигурация,только используется в средах, не обеспечивающих прямой доступ к вычислительным узлам. Эта опция отключена по умолчанию.

Настройка и настройка

как UCX Укажите специальные Настройка и настройка?

UCX из определенных переменных средысерединаполучатьпараметр,Эти параметры начинаются с префиксаUCX_

Важные советы:Воля UCX Установка переменных среды в значения, отличные от значений по умолчанию, может привести к неопределенному поведению. Переменные среды в основном используются опытными пользователями или для UCX Конкретные настройки или обходные пути, рекомендованные сообществом.

Где я могу просмотреть все переменные среды UCX?
  • Бегущая встреча Распечатать Все переменные среды и их значения по умолчанию。ucx_info -c
  • Бегущая встреча Распечатать Все переменные средыиздокумент。ucx_info -cf
Конфигурационный файл UCX

UCX существовать середина Найти файл конфигурации{prefix}/etc/ucx/ucx.conf,Чтосередина{prefix}это конфигурация времени компиляциииз Префикс установки。Это позволяет настраивать различные параметры.。Переменные среды имеют приоритет над серединаопределениеизценитьucx.conf。файл Можетиспользоватьсоздавать。ucx_info -Cf

Создавайте пользовательские приложения с помощью UCX

чтобы использовать UCX Библиотека разработки для создания приложений UCX поддерживатьна основе pkg-config инструментальная информационная подсистема. Например, вот как pkg-config Объединено на основе Makefile строится:

Язык кода:javascript
копировать
program: program.c        $(CC) program.c $(shell pkg-config --cflags --libs ucx)

когда и статично UCX Ссылка на Библиотеку, пользователь должен явно перечислить все необходимые исходные данные. инфекционный модуль. Например, для толькоподдерживать cma и knem Для переноса пользователю необходимо использовать:

Язык кода:javascript
копировать
program: program.c        $(CC) -static program.c $(shell pkg-config --cflags --libs --static ucx-cma ucx-knem ucx)

В настоящее время с pkg-config можно использовать следующие транспортные модули:

Имя пакета

Транспорт предоставлен Служить

ucx-cma

Общая память с использованием Linux Cross-Memory Attach

ucx-knem

Общая память с использованием высокопроизводительной внутриузловой связи MPI

ucx-xpmem

Общая память с использованием XPMEM

ucx-ib

Сетевая передача на базе Infiniband

ucx-rdmacm

Менеджер соединений на основе RDMACM

TCP、базовыйобщая память-передача инфекции встроены в UCT середина,Нетнуждатьсядополнительныйизкомпилироватьдействовать。

Важные советы:

ucx-ib Сумкануждатьсяlibnlи изстатический Библиотекаnumactl,как из Зависимостиrdma-core。большоймногочислоLinuxДистрибутивпо умолчанию Нетнести供这些статический Библиотека,Так что нуждайтесь в сборке и установке их вручную. Их можно скачать с:

Библиотека

https://www.infradead.org/~tgr/libnl

(существовать3.2.25Версияначальствотест)

число

https://github.com/numactl/numactl

(существовать2.0.14Версияначальствотест)


Возможности сети

Выберите сеть и транспорт

Какое сетевое оборудование использует UCX?

По умолчанию UCX Попробуйте использовать на компьютере все доступное оборудование и сравнить их по характеристикам производительности (пропускная способность, задержка, NUMA). местоположение и т. д.), чтобы выбрать лучшее устройство. Настройки будут ограничивать UCXтолькоUCX_NET_DEVICES=<dev1>,<dev2>,...использовать указанное устройство. Например:

  • UCX_NET_DEVICES=eth2- использоватьEthernetоборудование eth2 руководить TCP розетка передачи инфекции。
  • UCX_NET_DEVICES=mlx5_2:1- использовать RDMA оборудование mlx5_2, порт 1

Бег покажет UCX Можетиспользоватьизсистемана Все доступнооборудование。ucx_info -d

Какие методы транспортировки использует UCX?

По умолчанию UCX Попробуйте использовать все доступные передачи. инфекции и выбирать лучшую передачу на основе производительности и масштаба инфекции(какоцениватьиз Количество конечных точек, переданныхucp_init() API). Например:

  • существуюттолько на машине с Ethernet оборудованиеиз,Общая память будет использоваться для связи внутри узла.,TCP Сокеты используются для связи между узлами.
  • существоватьиметь RDMA оборудованиеиз станков, радиоуправления передача инфекция будет использоваться в небольших масштабах, округ Колумбия передача инфекции (можно использовать для Connect-IB оборудование и выше) будут использоваться в больших масштабах. Без постоянного тока массово использовать УД.
  • Если существование хранится на машине Графический процессор будет включен GPU передача инфекции, чтобы обнаружить указатель памяти доброго типа и скопировать в GPU Память или из GPU Памятькопировать。

Можетпроходитьустановить ограничениеиспользоватьизпередача инфекцииUCX_TLS=<tl1>,<tl2>,...^в начале Волясписокстать отказомсписок。Можетпроходитьгенерация командтекущиймашинаустройствоначальствоUCXподдерживатьизвсепередача инфекцииизсписок。ucx_info -d

Важные советы существование Отдельные случаи, ограничения передачи инфекция может вызвать неожиданное и неопределенное поведение:

  • использоватьrc_verbsилиrc_mlx5возвращатьсянуждатьсяud_verbsилиud_mlx5передача инфекциируководитьгид。
  • Использовать графический процессор Память приложения также должна быть указана GPU передача инфекции для обнаружения и обработки Память, не являющаяся хозяином.

Помимо встроенных транспортов, можно использовать псевдонимы, задающие несколько транспортов.

Первичный транспорт (TL) и список псевдонимов

all

use all the available transports.

sm or shm

Все передачи общей памяти

ugni

ugni_rdma and ugni_udt.

rc

RC (=надежное соединение), по возможности используются «ускоренные» транспорты.

ud

UD (=ненадежная датаграмма), если возможно, используется «ускоренное». Ненадежное соединение, по возможности используйте ускорение.

dc

DC — масштабируемый транспорт динамического соединения с разгрузкой Mellanox Масштабируемый транспорт динамического соединения с разгрузкой Mellanox

rc_x

То же, что и «rc», но с использованием только ускоренного транспорта. Аналогично надежному соединению, но только с использованием ускоренного транспорта.

rc_v

То же, что и «rc», но с использованием только транспорта на основе глаголов. Аналогично надежному соединению, но только с использованием транспорта с глаголами rdma.

ud_x

Same as "ud", but using accelerated transports only

ud_v

Same as "ud", but using Verbs-based transports only

cuda

CUDA (NVIDIA GPU) memory support: cuda_copy, cuda_ipc, gdr_copy

rocm

ROCm (AMD GPU) memory support: rocm_copy, rocm_ipc, rocm_gdr

tcp

TCP over SOCK_STREAM sockets

self

Шлейфовый транспорт для связи в рамках одного процесса, локальная петлевая связь.

Например:

  • UCX_TLS=rcВолявыбирать RC、UD руководитьгид,ии предпочитаюускорятьсяпередача инфекции
  • UCX_TLS=rc,cudaВолявыбирать RC а также Cuda передача памяти инфекции
  • UCX_TLS=^rcВолявыбиратьудалять RC Все доступно за пределами передачи инфекции

Важные советы UCX_TLS=^udВолявыбиратьудалять UD Все доступные переводы, кроме . Однако У.Д. 仍Может用于гидпрограмма。ТолькоUCX_TLS=^ud,ud:auxПолностью отключитьUD。

многолучевое распространение

UCX поддерживатьмноголучевое распространениебалансировка нагрузки?

Да.

Каково поведение по умолчанию в среде многолучевого распространения?

По умолчанию UCX выберу 2 Лучше всего разделить большое количество сообщений между треками. Например, существовать 100MB сообщение, первое 50MB Будут отправлены на первое оборудование и второе 50MB Будет отправлено на вторую станцию ​​оборудование. Если скорости сетей оборудования неодинаковы, то сегментация будет пропорциональна их соотношению скоростей.

В зависимости от оптимальной скорости сети PCI Пропускная способность NUMA местоположение, чтобы выбрать устройство для использования.

Можно ли использовать более двух рельс?

даиз,проходитьнастраиватьUCX_MAX_RNDV_RAILS=<num-rails>. в настоящий моментбольшинствомногоподдерживать 4 индивидуальный.

Возможно ли, чтобы каждый процесс использовал только ближайшее устройство?

даиз,UCX_MAX_RNDV_RAILS=1Каждый Каждый процесс будет основан на NUMA Местоположение использует одно сетевое устройство.

Можно ли отключить мультитрек?

даиз,проходитьнастраиватьUCX_NET_DEVICES=<dev>в ответиспользоватьизодинокийоборудование。

адаптивная маршрутизация

UCX данетподдерживатьадаптивная маршрутизацияструктура?

Да.

Что я могу сделать, чтобы запустить UCX с адаптивной маршрутизацией?

когдасуществовать Infiniband Структурно настроенная, адаптивная маршрутизация, это нажмет SL(IB Служитьслой)давать возможность。настраиватьUCX_IB_SL=<sl-num>Воляделать UCX существоватьна заданном уровне из Служить и эксплуатировать адаптивную маршрутизация。

ROCE

Как указать UCX из Служитьуровень?

настраиватьUCX_IB_SL=<sl-num>Воляделать UCX существование протекает на заданном уровне из Служить.

Как указать приоритет DSCP?

настраиватьUCX_IB_TRAFFIC_CLASS=<num>.

Как указать, какой адрес использовать?

настраиватьUCX_IB_GID_INDEX=<num>Воляделать UCX существовать RoCE Используйте указанный GID индекс。система Заказshow_gidsВоля Распечатать Все доступно地址及Чтоиндекс。


Использовать графический процессор

Поддержка графического процессора

Как UCX поддерживает графический процессор?

UCX протоколдействовать Может Использовать графический процессор указатель памяти,Точно так же, как сипользовать указатель памяти хоста. Например,перешел киз“buffer”параметрucp_tag_send_nb()Можетдапамять хостаили GPU Память.

Какие графические процессоры поддерживаются?

в настоящий момент UCX проходить Cuda Библиотекаподдерживать NVIDIA GPU,проходить ROCm Библиотекаподдерживать AMD GPU。

Какие API-интерфейсы UCX поддерживают память графического процессора?

в настоящий момент,только UCX отмеченный API, поток API и Новости событий API полностьюподдерживать GPU Память API удаленного доступа к памяти, включая атомарные операции, является неполным для памяти графического процессора, и планируется обеспечить полную поддержку в будущей версии.

интерфейс прикладного программирования

Уровень памяти графического процессора

Этикетка(ucp_tag_send_XX/ucp_tag_recv_XX)

все изподдерживать

поток(ucp_stream_send/ucp_stream_recv_XX)

все изподдерживать

Сообщения об активности (ucp_am_send_XX/ucp_am_recv_data_XX)

все изподдерживать

Удаленный доступ к памяти (ucp_put_XX/ucp_get_XX)

частьподдерживать

атомдействовать (ucp_atomic_XX)

частьподдерживать

Как запустить UCX с поддержкой графического процессора?

для Понятносуществовать GPU поддерживать Беги под UCX, вам нужно распределение GPU приложение памяти (например, поддерживать Cuda из MPI OSU эталонтест),иинуждаться Использовать графический процессор поддерживатькомпилировать УКХ. Затем вы можете запустить приложение как обычно (например, используя MPI), и всякий раз, когда GPU память перешла к UCX Когда это будет использоваться графический процессор-direct руководитьнолькопироватьдействовать,или ВОЗВоляданныекопироватьприезжать主машина Память или изпамять хостакопироватьданные。

Уведомление Когда явно указано UCX_TLS , необходимо также указать cuda/rocm из GPU Память поддерживает иное GPU Память Воляне может быть признан。Например:UCX_TLS=rc,cudaилиUCX_TLS=dc,rocm

я Использовать графический процессор Работа с памятью UCX И происходит сегфолт, почему?

UCX Возможно, указатель не был обнаружен как GPU памяти и попробуйте загрузить его из CPU получить к нему доступ. если UCX еще нет Использовать графический процессор Поддержкаруководить скомпилировано или не удалось загрузить из-за отсутствия пути к библиотеке или несоответствия версии. CUDA или ROCm модуль, это может произойти. Пожалуйста, запустите или проверьте UCX GPU поддерживать。ucx_info -d | grep cuda``ucx_info -d | grep rocm

существуют в некоторых случаях,Кэш внутренней памяти может ошибочно определить память графического процессора как память хоста,что приводит к недействительномуиздоступ к памяти。Можетпроходитьнастраивать Отключить этот кешUCX_MEMTYPE_CACHE=n

Почему я получаю сообщение об ошибке «Предположим PTX даиспользовать Неткподдерживатьизинструментцепькомпилироватьиз”?

Приложение загружает cuda Бинарный файл, бинарный файл предназначен для установки из cuda Версия обновлена ​​из Версия скомпилирована и взята из UCX из Cuda API Неисправность была обнаружена путем вызова асинхронного. Чтобы решить проблему, установите обновление из cuda Версияилииспользовать nvcc неуместно -arch варианты компиляции cuda двоичный файл. Видеть https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#virtual-architecture-feature-list Понятноразвязать-archперешел к nvcc неуместно Параметры。

Вопросы производительности

Поддерживает ли UCX нулевое копирование памяти графического процессора через RDMA?

Да.Для больших сообщений UCX Вы можете использовать протокол рандеву для использования нулевой копии. RDMA передача инфекции GPU Память.этонуждаться Загрузка связана GPU добрый тип из драйвера одноранговой памяти, или (из UCX v1.14.0 Старт) система на dmabuf поддерживать。

Уведомление:существуют в некоторых случаях,если RDMA сетьоборудованиеи GPU Нетсуществоватьтакой же NUMA На узле эта передача с нулевым копированием инфекция менее эффективна.

Что требуется для поддержки dmabuf?
  • UCX v1.14.0 или Дажевысокий Версия。
  • Linux Ядро >= 5.12 (напр. Ubuntu 22.04)。
  • Cuda 11.7 или более поздней версии: для установки используйте флаг «-m=kernel-open».

Уведомление:текущий UCX предположения кода dmabuf поддерживатьсуществовать Все доступно GPU оборудование унифицировано из.


самоанализ

Выбор протокола

Как узнать, какие протоколы и транспорты используются для связи?
  • настраиватьUCX_LOG_LEVEL=infoРаспечататьсвязанныйпередача инфекциииоборудованиеизбазовыйинформация: $ mpirun -x UCX_LOG_LEVEL=info -np 2 --map-by node osu_bw D D [1645203303.393917] [host1:42:0]  
  • использоватьпротоколv2час,настраиватьUCX_PROTO_INFO=yподробныйинформация: $ mpirun -x UCX_PROTO_ENABLE=y -x UCX_PROTO_INFO=y -np 2 --map-by node osu_bw D

Сяобин

блог: https://logread.cn | https://blog.csdn.net/ssbandjl | https://cloud.tencent.com/developer/user/5060293/articles

weixin: ssbandjl

Публичная учетная запись: Cloud Native Cloud

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose