GDR D2H much slower than H2D and cudaMemcpy

Open
#315 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
c
Domain
performance

Research direction

Begin by reproducing the reported copy_bw measurements on an A100 SXM and compare H2D and D2H with cuMemcpy across transfer sizes. Done means identifying and documenting why large H2D transfers stall near 20 GB/s and why D2H remains slower; the issue names no source files or tests.

Written by the indexing model from the issue text.

Description

Problem: When I test copy_bw on A100 SXM,I noticed some issue that need some help on explaination:

  1. H2D is persistently faster than cuMemcpy in small data size as expected, while for large data size it fails to grow when reaches 20GB/s. What is the reason for this degradation?
  2. D2H is much slower than H2D and never reaches high bandwidth even when data size is large enough. I guess the reason for the first phenomenon is that CPU need another dispatch trip to let GPU starts D2H, while I have no idea for the second one.

Anyone could help with the above questions?

Image

Dominant language
C
Stars
1.4k
Forks
198
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from NVIDIA/gdrcopy

All issues in NVIDIA/gdrcopy

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.