故障排除指南

本文档收集 CUDA Kernel Academy 项目的常见问题及解决方案。

编译错误

nvcc: command not found

# 添加 CUDA 到 PATH
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

GCC 版本不兼容

CUDA 版本 支持的 GCC
CUDA 11.x GCC ≤ 10
CUDA 12.0-12.2 GCC ≤ 12
CUDA 12.3+ GCC ≤ 13
cmake .. -DCMAKE_CUDA_HOST_COMPILER=/usr/bin/g++-11

GPU 架构不匹配

# 查询 GPU 计算能力
nvidia-smi --query-gpu=compute_cap --format=csv

# 重新编译
cmake .. -DCMAKE_CUDA_ARCHITECTURES=86  # RTX 3090

运行时错误

CUDA error: out of memory

nvidia-smi  # 检查显存使用

CUDA error: illegal memory access

compute-sanitizer --tool memcheck ./your_program

常见原因:数组越界、使用已释放内存、线程索引错误。

设备端 assert 失败

export CUDA_LAUNCH_BLOCKING=1
./your_program

CMake 配置问题

Could not find CUDA

export CUDA_HOME=/usr/local/cuda
cmake .. -DCMAKE_CUDA_COMPILER=$CUDA_HOME/bin/nvcc

CMake 版本过低

sudo snap install cmake --classic  # Ubuntu

模块特定问题

03-hpc-advanced 编译失败

原因:需要 CUDA 12.0+ 和 C++20 支持。

nvcc --version  # 确认 CUDA 版本

04-inference-engine 链接错误

原因:依赖 tensorcraft-core。

cmake .. -DBUILD_TENSORCRAFT=ON

调试工具

工具 用途 命令
compute-sanitizer 内存检测 compute-sanitizer ./program
nsys 系统分析 nsys profile ./program
ncu Kernel 分析 ncu ./program

获取帮助

  1. 搜索 GitHub Issues
  2. 查看 NVIDIA Developer Forums
  3. 创建新 Issue,提供:错误信息、OS、CUDA 版本、GPU 型号

更多资源

results matching ""

    No results matching ""