免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

NVIDIA CUDA Samples保姆级实战手册:5分钟跑通第一个GPU并行计算示例

NVIDIA CUDA Samples保姆级实战手册:5分钟跑通第一个GPU并行计算示例 NVIDIA CUDA Samples保姆级实战手册5分钟跑通第一个GPU并行计算示例【免费下载链接】cuda-samplesSamples for CUDA Developers which demonstrates features in CUDA Toolkit项目地址: https://gitcode.com/GitHub_Trending/cu/cuda-samples想让GPU替你干活多数人卡在同一关CUDA编程模型里的线程块到底怎么对应硬件kernel写出来怎么保证跑对NVIDIA CUDA Samples是CUDA Toolkit官方自带的示例集200多个GPU并行计算样例覆盖图像处理、线性代数、金融计算等场景每个都配README说明概念和依赖是读官方实现学CUDA性价比最高的路径。5分钟跑通装环境、构建、运行vectorAdd 前置两件事装好CUDA Toolkit本仓库对齐13.x版本用nvcc --version确认能输出版本号再装CMake 3.20及以上。然后克隆仓库git clone https://gitcode.com/GitHub_Trending/cu/cuda-samples在仓库根目录配置并构建mkdir build cd build cmake .. make -j$(nproc)顶层 CMakeLists.txt 已默认覆盖SM 75到120的多架构编译。个别样例缺第三方依赖FreeImage、Vulkan等时会自动跳过不阻塞整体构建。构建完成后在build/cpp/下找到vectorAdd可执行文件直接运行看到Test PASSED就是跑通了你的第一个GPU并行计算。Windows用户可用VS打开生成的CUDA_Samples.sln直接编译。想用cuda-gdb在GPU上调试cmake时加-DENABLE_CUDA_DEBUGTrue重建即可会明显降速生产构建别开。目录地图先看不看一张表说清 ️目录内容建议cpp/0_Introduction/vectorAdd、matrixMul、stream、共享内存等基础建议最先看cpp/1_Utilities/deviceQuery等硬件查询工具先跑一遍摸清楚自己的卡cpp/2_Concepts_and_Techniques/reduction、scan、histogram、DCT等经典技巧进阶核心cpp/3_CUDA_Features/CUDA Graphs、Tensor Core、动态并行追新特性cpp/4_CUDA_Libraries/cuBLAS、cuFFT、NPP、nvJPEG实战直接用库的看这里cpp/5_Domain_Specific/图像处理、金融、科学计算应用向开发cpp/6_Performance/transpose、统一内存等性能对比调优参考cpp/9_CUDA_Tile/最新CUDA Tile C模型前沿必读python/cuda.core Python示例不走CMake构建直接用python跑每个目录下还有一级README是更细的样例索引。精选示例深拆看官方怎么写kernel vectorAdd数据流的最小完整形态。解决什么问题两个向量逐元素相加。它是GPU编程的Hello World完整演示主机分配→拷到设备→启动kernel→拷回→校验闭环。关键是kernel里的grid-stride循环写法每个线程按步长负责一段下标向量无论多长代码都正确后面所有kernel都套这个模板。代码在 cpp/0_Introduction/vectorAdd/。matrixMul共享内存分块 vs cuBLAS。同一个矩阵乘法给了两套实现手写共享内存tiling展示把数据搬得快的原理另一套直接调cuBLAS展示官方库能快多少。计时部分用cudaEvent包kernel是测量GPU耗时的事实标准。建议先读手写版懂原理再看cuBLAS版学调用。代码在 cpp/0_Introduction/matrixMul/。DCT 8x8GPU上做图像压缩。解决什么问题JPEG编码核心步骤——8x8块离散余弦变换每个像素块由一个线程块并行处理。样例用到的余弦基函数如下图所示每个子图对应一个频率分量它还提供标准版、短代码版、量化版多种kernel写法可以对比不同实现风格对可读性和性能的影响。代码在 cpp/2_Concepts_and_Techniques/dct8x8/。进阶能力解锁基础打牢后往哪走 ⚡Tensor Core GEMMcpp/3_CUDA_Features/ 下bf16、tf32、imma、dmma系列样例演示低精度矩阵乘加速深度学习负载CUDA GraphssimpleCudaGraphs和jacobiCudaGraphs展示一次录制kernel序列、多次重放砍掉CPU反复launch的开销多GPUsimpleMultiGPU、p2pBandwidthLatencyTest演示P2P访问与带宽实测NVRTC运行时编译部分样例在运行期编译kernel源码适合插件化架构Python线python/1_GettingStarted/ 用cuda.core在Python里做运行时编译和kernel启动不进CMake构建进样例目录装requirements.txt后直接跑脚本生产实战从示例到工程落地 场景一GPU环境批量验收。仓库自带 run_tests.py按 test_args.json 的配置递归查找构建产物并逐个执行最后输出通过/失败清单。机器验收或CI里直接这样跑python3 run_tests.py --output ./test --dir ./build/cpp --config test_args.json场景二GPU加速图像管线。典型链路是nvJPEG解码→滤波处理→DCT压缩。下图是nvJPEG样例里的实拍输入照片由GPU硬件加速解码后交给下游处理解码看 cpp/4_CUDA_Libraries/nvJPEG/滤波实现看 cpp/5_Domain_Specific/bilateralFilter/。样例没覆盖、需要自己补的日志、异常兜底、批处理、多流并发下的负载控制。高频问题速查现象原因与解法cmake报找不到CUDAToolkit没装CUDA Toolkit或环境变量没生效先nvcc --version自查构建时大量样例被跳过缺FreeImage/Freeglut/Vulkan/MPI等第三方依赖样例自动waive装齐依赖后重新cmake老显卡报不支持每个样例README都列了支持的SM架构是硬件不支持不是bug想上GPU调kernelcmake加-DENABLE_CUDA_DEBUGTrue重建再用cuda-gdb想改安装位置cmake时指定-DCMAKE_INSTALL_PREFIX默认build/bin/下按架构/系统/构建类型分层学习路线三档行动清单 入门1-3天跑通vectorAdd和matrixMul用deviceQuery查自己GPU的算力与显存吃透malloc→memcpy→kernel三步数据流进阶1-2周把 cpp/2_Concepts_and_Techniques/ 的reduction、scan、histogram逐个过一遍重点看共享内存复用与合并访存写法精通长期CUDA Graphs、Tensor Core GEMM、多GPU P2P、NVRTC最后看CUDA Tile与Python线的新编程模型延伸阅读每个样例目录的README.md概念、涉及的CUDA API、支持架构与依赖说明是最权威的样例文档CHANGELOG.md仓库版本与修订历史cpp/ 各一级目录下的README.md分主题的样例索引根 README.md 的Dependencies章节第三方依赖与CUDA特性支持一览【免费下载链接】cuda-samplesSamples for CUDA Developers which demonstrates features in CUDA Toolkit项目地址: https://gitcode.com/GitHub_Trending/cu/cuda-samples创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表