资讯动态

CUDA Samples 快速上手指南:在自己机器上跑通第一个 GPU 示例

发布时间:2026/9/18 3:28:30 来源:尧图企业网站定制
CUDA Samples 快速上手指南在自己机器上跑通第一个 GPU 示例【免费下载链接】cuda-samplesSamples for CUDA Developers which demonstrates features in CUDA Toolkit项目地址: https://gitcode.com/GitHub_Trending/cu/cuda-samplesCUDA Samples 是 NVIDIA 官方的开源示例代码库当前版本配套 CUDA Toolkit 13.3包含 100 多个 C 示例和 30 个 Python 示例覆盖 kernel 编写、纹理内存、多 GPU 通信等主题。这篇文章按编译 → 运行 → 改造的顺序带你把示例跑起来再挑一个典型例子讲怎么读、怎么改成自己的代码。第一步三条命令在 Linux 上完成构建前提只有两个装好 CUDA Toolkit终端执行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里把CMAKE_CUDA_ARCHITECTURES固定为75 80 86 87 89 90 100 110 120也就是说默认只为这些 SM 版本生成 kernel编译时间不会太长。Windows 上则在 Visual Studio 自带的 x64 Native Tools Command Prompt 里执行cmake .. -G Visual Studio 16 2019 -A x64再打开生成的CUDA_Samples.sln按 F7 构建。构建完成后可执行文件散落在build/cpp/分类/示例名/下执行make install会把它们集中到build/bin/x64/linux/release。构建完成后先跑 deviceQuery第一个要运行的程序是 cpp/1_Utilities/deviceQuery/。它调用 Driver API 的cuDeviceGetAttribute和 Runtime API 的cudaGetDeviceProperties枚举系统里所有支持 CUDA 的 GPU打印设备名、显存大小、计算能力、时钟频率等属性。./build/cpp/1_Utilities/deviceQuery/deviceQuery正常的输出末尾会出现类似cudaGetLastError() after cudaDeviceReset no error的字样说明你的驱动和运行时都能正常工作。如果程序启动即报错通常是显卡驱动版本低于 Toolkit 要求先升级驱动再谈编译问题。不想编译 C试试 Python 示例从 CUDA 13.2 版本开始仓库新增了一棵python/目录树共 30 个示例基于cuda.coreCUDA Python编写分四类1_GettingStarted、2_CoreConcepts、3_FrameworkInteropPyTorch/TensorFlow 互操作、4_DistributedComputing多 GPU 与 IPC。这些 Python 示例不走 CMake 构建直接进目录跑cd python/1_GettingStarted/vectorAdd pip install -r requirements.txt python vectorAdd.pyrequirements.txt里钉住了cuda-python13.0.0、cupy-cuda13x、numpy2.3.2要求 Python 3.10 以上。vectorAdd.py用字符串形式写出 kernel 源码运行时编译并启动向量加法核跑完会打印 C A B 的校验结果对习惯脚本写法的同学来说门槛最低。遇到编译报错先看这三处nvcc 找不到。根CMakeLists.txt里有一行find_package(CUDAToolkit REQUIRED)找不到就停在配置阶段。先确认/usr/local/cuda在PATH里如果你的场景是新 Toolkit 配旧驱动如 13.0 工具配 550 以下内核驱动按 README 的说法加上-DCMAKE_PREFIX_PATH/usr/local/cuda/lib64/stubs/使用 forward compatibility 模式。单个示例失败、其余正常。用make -j$(nproc) --ignore-errors继续构建日志里能看到具体哪个目录挂了也可以按 README 的示例把父级CMakeLists.txt里对应的add_subdirectory行注释掉跳过。依赖库缺失。5_Domain_Specific下的simpleGL、bilateralFilter这类示例依赖 OpenGL、Freeglut、GLEW部分还需要显示器输出无图形界面的服务器上会直接失败这属于预期行为。跑起来之后怎么读以 vectorAdd 为例读源码建议从 cpp/0_Introduction/vectorAdd/ 开始它就是这个仓库版的Hello WorldcudaMalloc分配设备内存cudaMemcpy拷入向量 A 和 B按元素各起一个线程计算 C A B结果拷回主机后与 CPU 结果比对。该目录的README.md列出了用到的全部 APIcudaMemcpy、cudaGetErrorString、cudaFree、cudaGetLastError、cudaMalloc。想写自己的代码时把整个目录拷走只改 kernel 内部逻辑保留分配 → 拷贝 → 启动 → 校验的骨架即可。Common/目录里的helper_cuda.h、nvVector.h等工具头文件已被各示例引用可以直接复用。下一步按目录挑你要的主题cpp/目录分成 9 段编号2_Concepts_and_Techniques里有reduction、scan、convolutionTexture、dct8x8等经典手法3_CUDA_Features集中了 Tensor Core GEMMcudaTensorCoreGemm等 4 种精度、CUDA Graphs、CDP 设备侧启动4_CUDA_Libraries是库的用法参考如cubDeviceFind、nvJPEG、simpleCUFFT5_Domain_Specific则给出完整应用比如bilateralFilter下图即其输入图片滤波后边缘保持得更好、marchingCubes、nbody。想批量验证所有示例是否都能跑通仓库根目录提供了run_tests.py配合test_args.json里的参数配置python3 run_tests.py --dir ./build/cpp --config test_args.json --output ./test --parallel 8现在你可以做的三件事跑一遍deviceQuery确认驱动正常把vectorAdd拷一份把加法改成你要的运算然后从2_Concepts_and_Techniques里挑一个和你项目最接近的示例开始读源码。【免费下载链接】cuda-samplesSamples for CUDA Developers which demonstrates features in CUDA Toolkit项目地址: https://gitcode.com/GitHub_Trending/cu/cuda-samples创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价