Skip to content

MXXXXXS/helloCuda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CUDA project demo

Prerequisites

Installing tools using conda

  • cuda-toolkit(12)

  • gcc(12)

  • gxx(12)

  • cmake

    cuda-toolkit, gcc, gxx should be same major version

Config CMakeLists.txt

cmake_minimum_required(VERSION 3.26)

project(${project_name} LANGUAGES CXX CUDA) # Enable CUDA language

set(CMAKE_CUDA_ARCHITECTURES 75) # RTX20xx, depends on your gpu

find_package(CUDAToolkit REQUIRED) # Find CUDA toolkit

set(CMAKE_BUILD_TYPE Debug)

if(CMAKE_BUILD_TYPE STREQUAL "Debug")
  target_compile_options(${target_name} PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:-G>) # Enable kernel debug
endif()

add_executable(${target_name} ${file}) # Add target

target_link_libraries(${target_name} CUDA::cuda_driver) # Link CUDA libs

Debugging with vscode

Extensions

tasks.json

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build",
      "type": "shell",
      "command": "cmake",
      "args": [
        "--build",
        "./build",
        "--config",
        "Debug",
        "--target",
        "all",
        "-j",
        "10",
        "--"
      ],
      "group": "build",
      "presentation": {
        "reveal": "silent",
      },
      "problemMatcher": "$nvcc"
    }
  ]
}

launch.json

  "version": "0.2.0",
  "configurations": [
    {
      "name": "CUDA C++: Launch",
      "type": "cuda-gdb",
      "request": "launch",
      "program": "${workspaceFolder}/build/${fileBasenameNoExtension}",
      "preLaunchTask": "build"
    },
    {
      "name": "CUDA C++: Attach",
      "type": "cuda-gdb",
      "request": "attach"
    }
  ]

Just works!

Showcase

Releases

No releases published

Packages

No packages published