Memcpy latency and bandwidth

← All benchmarks · Chapter 6

Some of these measurements depend on the host as much as on the GPU: launch overhead is CPU dispatch cost, transfer rates are bounded by the host link and the host's memory system, and the CPU baselines run entirely on the host. Results for one GPU are reported separately per host architecture whenever it has been measured on more than one.

![Figure 6-4 (book): small host-to-device memcpy, book-era vs community hardware](/book/media/ch6/figure-6-4.svg) ![Figure 6-5 (book): small device-to-host memcpy, book-era vs community hardware](/book/media/ch6/figure-6-5.svg)

memcpy.dtoh.breakeven (us) -- concurrency/breakevenDtoHMemcpy.cu: time by size, 4K-64K step 4K

GPU 4096 8192 16384 20480 24576 32768 36864 45056 49152 53248 61440 65536 n
Ampere
GeForce RTX 3060 1.08 1.08 1.3 1.46 1.62 1.93 2.1 2.39 2.54 2.71 3.02 3.17 2

memcpy.dtoh.null-latency (us) -- concurrency/nullDtoHMemcpyAsync.cu: 0-byte device-to-host memcpy

GPU us n range
Ampere
GeForce RTX 3060 1.06 2 1.06--1.06

memcpy.dtoh.null-latency-sync (us) -- concurrency/nullDtoHMemcpySync.cu: 0-byte device-to-host memcpy + sync

GPU us n range
Ampere
GeForce RTX 3060 3.61 2 3.59--3.63

memcpy.dtoh.pinned-bandwidth (GB/s) -- memory/pinnedBandwidth.cu: 64MB pinned device-to-host, 100 iterations

GPU GB/s n range
Ampere
GeForce RTX 3060 26.8 2 26.8--26.81

memcpy.htod.breakeven (us) -- concurrency/breakevenHtoDMemcpy.cu: time by size, 4K-64K step 4K

GPU 4096 8192 16384 20480 24576 32768 36864 45056 49152 53248 61440 65536 n
Ampere
GeForce RTX 3060 1.3 1.46 1.71 1.92 2.01 2.33 2.46 2.78 2.92 3.09 3.39 3.55 2

memcpy.htod.null-latency (us) -- concurrency/nullHtoDMemcpyAsync.cu: 0-byte host-to-device memcpy

GPU us n range
Ampere
GeForce RTX 3060 1.51 2 1.49--1.53

memcpy.htod.pageable-staged (GB/s) -- concurrency/pageableMemcpyHtoD.cu: the book's staged pageable host-to-device memcpy (pinned double-buffer)

GPU GB/s n range
Ampere
GeForce RTX 3060 14.67 2 14.45--14.89

memcpy.htod.pinned-bandwidth (GB/s) -- memory/pinnedBandwidth.cu: 64MB pinned host-to-device, 100 iterations

GPU GB/s n range
Ampere
GeForce RTX 3060 26.8 2 26.8--26.81

Submissions

  • rtx-3060 · nwilt-2026-07-12-2.json -- Nicholas Wilt · driver 580.95.05 · CUDA 12.9
  • rtx-3060 · nwilt-2026-08-27.json -- Nicholas Wilt · driver 580.95.05 · CUDA 13.0