NVIDIA / NVIDIA/cutlass

Issues with IDE Setup documentation and VSCode IntelliSense navigation in `__device__` code

Open
#2,793 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

? - Needs Triage documentation inactive-30d inactive-90d
Dominant language
C++
Stars
10.5k
Forks
2.1k
Avg merge
3d 11h
Merged PRs (30d)
7

Description

I am trying to set up my local development environment following the documentation at IDE Setup, but I have encountered a few issues regarding the configuration correctness and IDE features (VSCode + Nsight Visual Studio Code Edition + C/C++ extension).

1. Potential documentation error regarding nvcc flags
The documentation mentions configuration options that seem to include -xcuda with Compiler: /usr/local/cuda/bin/nvcc. However, nvcc does not appear to support the -xcuda flag.
Could you please verify if the documentation is outdated or if this flag is intended for a specific compiler setup that isn't clearly distinguished?

2. "Go to Definition" fails inside __device__ functions
I am using VSCode with the Nsight Visual Studio Code Edition plugin and have configured c_cpp_properties.json as suggested.

  • Working: I can successfully use Ctrl + Left Click (Go to Definition) on CuTe structures like TiledCopy and ThrCopy when they are used inside the main function (host code).
  • Not Working: The same "Go to Definition" feature fails when clicking on TiledCopy or ThrCopy inside __device__ functions or kernels. The IDE does not seem to resolve the definition correctly in the device context.

Request
Could you please share a working .vscode configuration (specifically c_cpp_properties.json or settings.json) that is verified to support full code navigation (Go to Definition) for CuTe/Cutlass structures within both host and device code? Here is my configuration:

// .vscode/c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/src/cutlass/include",
                "${workspaceFolder}/src/cutlass/tools/util/include",
                "${workspaceFolder}/src/cutlass/examples/common"
            ],
            "defines": [
                "__CUDACC__",
                "__NVCC__",
                "__clang__",
                "__CUDACC_VER_MAJOR__=12",
                "__CUDACC_VER_MINOR__=8",
                "__CUDA_ARCH__=890",
                "__CUDA_ARCH_FEAT_SM89_ALL"
            ],
            "compilerPath": "/usr/local/cuda/bin/nvcc",
            "cStandard": "gnu17",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

Thanks!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the IDE Setup documentation at docs.nvidia.com/cutlass/media/docs/cpp/ide_setup.html and the supplied .vscode/c_cpp_properties.json configuration. Verify whether -xcuda is valid with /usr/local/cuda/bin/nvcc, then reproduce Go to Definition for TiledCopy and ThrCopy in host and device code. Done means the documentation is corrected and a verified configuration or documented limitation is provided.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, vscode
Domain
developer-experience, documentation, tooling
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.