CUDA: 6 шагов к быстрому и безопасному коду

источник ↗ ·

Пошаговое улучшение CUDA-программы от 6,8 с до 23 мс с помощью CCCL, Compute Sanitizer, Nsight Systems, CUB, pooled и pinned памяти, а также CUDA-streams.

privacy

Эта заметка участвует в semantic memory.

AI Summary

  1. Короткий обзор: NVIDIA публикует пошаговое руководство по модернизации CUDA-кода на примере image-processing pipeline (RGB→grayscale + tile-median). 🔑 Ключевые факты: Compute Sanitizer + CCCL-шаблоны устраняют out-of-bounds; NVTX даёт читаемый профиль; CUB заменяет ручные ядра; cuda::device_buffer и cuda::host_buffer убирают cudaMalloc/Free и ускоряют H2D; cuda::stream + cuda::copy_bytes позволяют параллелить три изображения. 📌 Важные детали: TILE_WIDTH=32, IMAGE_SIZE=250×32², 3 изображения; computeMedian падает с 2,1 с до 773 мкс; общий прирост 300× (6,8 с → 23 мс). 💡 Вывод и значение: никогда не использовать default stream; применять cuda::launch, mdspan, device/pinned буферы и CUB; код и Colab-пример доступны в репозитории NVIDIA.

Мои мысли

graph

Карта связей