0Pricing
CUDA Academy · Урок

Прямой доступ к памяти между устройствами

Прямое копирование между GPU через NVLink

«Прямой доступ к памяти между устройствами» — бесплатный урок CUDA Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CUDA Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CUDA Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

The Slow Detour

Moving data from one GPU to another usually bounces through the CPU's memory first. That round trip is slow and wastes the host's bandwidth.

GPUs Talking Directly

Modern GPUs can skip the CPU entirely. Peer-to-peer access lets one GPU read and write another's memory over a direct link.

The NVLink Highway

The fast link between cards is often NVLink, far quicker than the shared PCIe bus. P2P transfers ride this highway when it is available.

Check Before You Trust

Not every pair of GPUs can do P2P. Ask first with cudaDeviceCanAccessPeer, which reports whether one device may reach another.

int can;
cudaDeviceCanAccessPeer(&can, 0, 1);

Turn On Access

Permission is off by default. While GPU 0 is current, call cudaDeviceEnablePeerAccess to let it reach into GPU 1's memory.

cudaSetDevice(0);
cudaDeviceEnablePeerAccess(1, 0);

Access Is One-Way

Enabling peer access grants only the direction you ask for. For GPU 1 to read GPU 0, you must enable that direction too, from device 1.

Copying Peer to Peer

To move a buffer directly between cards, use cudaMemcpyPeer. You name the destination pointer and device plus the source pointer and device.

cudaMemcpyPeer(dst, 1, src, 0, bytes);

Kernels Reading Across

With access enabled, a kernel on GPU 0 can dereference a pointer that lives on GPU 1. The hardware fetches it over the peer link transparently.

When P2P Is Not There

If two cards cannot peer, the runtime quietly falls back to staging through host memory. You still get a copy, just at the slower PCIe rate.

Async Peer Copies

Peer transfers can overlap other work. Pair cudaMemcpyPeerAsync with a stream so the copy runs while kernels keep computing.

cudaMemcpyPeerAsync(dst, 1, src, 0, bytes, stream);

Turn It Off When Done

Peer access uses resources, so release it when finished. cudaDeviceDisablePeerAccess tears down the link you opened earlier.

cudaDeviceDisablePeerAccess(1);

Quick Check

Recall the benefit of peer-to-peer access between two GPUs.

Recap

P2P lets GPUs share memory directly, ideally over NVLink. Check support, enable access per direction, then use cudaMemcpyPeer. Next: scaling with NCCL. ✨

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

Урок «Прямой доступ к памяти между устройствами» бесплатный?

Да — полный текст урока «Прямой доступ к памяти между устройствами» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CUDA Academy, подпишись на CoddyKit PRO. Курс CUDA Academy содержит 4 уроков всего.

Чему я научусь в уроке «Прямой доступ к памяти между устройствами»?

Прямое копирование между GPU через NVLink Ты практикуешь CUDA Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать CUDA Academy?

Предыдущий опыт не требуется. CUDA Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Прямой доступ к памяти между устройствами»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке CUDA Academy?

Да. Каждый урок CUDA Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Перечисление и выбор устройств
  2. Распределение работы между GPU
  3. Прямой доступ к памяти между устройствами
  4. Несколько GPU с NCCL
← Назад к CUDA Academy