CLion 2026.2 Help

CUDA プロジェクト

CUDA(英語) (Compute Unified Device Architecture)は、NVidia による並列コンピューティングプラットフォームおよびプログラミングモデルです。 CUDA 対応の GPU を操作するための C/C++ 言語拡張機能と API を提供します。

CLion は CUDA C/C++ をサポートし、 コードインサイトを提供します。 また、 CLion は、新規プロジェクトウィザードを使用してCMake ベースの CUDA アプリケーションを作成できます。

CLion の CUDA プロジェクト

始める前に、必ず CUDA 開発ツールキット(英語)をインストールしてください。 インストール手順の詳細については、 公式ドキュメント(英語)を参照してください。

新しい CUDA プロジェクトを作成する

  1. メインメニューで、 ファイル | 新規プロジェクト に移動し、プロジェクトタイプとして CUDA 実行可能ファイル または CUDA ライブラリ を選択します。

  2. 必要に応じて、プロジェクトの場所、言語標準、ライブラリタイプを指定します。

    新しい CUDA プロジェクトを作成する

    選択した標準が CMAKE_CUDA_STANDARD 変数に設定されます。 別の標準の通常の C/C++ ファイルをプロジェクトに追加する場合は、 CMakeLists.txt スクリプトで CMAKE_C_STANDARD/CMAKE_CXX_STANDARD 変数を手動で設定する必要があります。

  3. 作成 をクリックすると、CLion はサンプル CMakeLists.txt および main.cu を使用してプロジェクトを生成します。

    テンプレート CUDA プロジェクト

既存の CUDA プロジェクトを開く

  • CMake ベースの CUDA プロジェクトは、 ファイル | オープン メニューまたは CLion 'ようこそ' 画面から通常の CMake アプリケーションとして くことができます。

  • 非 CMake CUDA プロジェクトの場合、 compilation database生成して CLion に ロードできます。

新しい .cu/ .cuh ファイルを追加する

  1. プロジェクトツリーで目的のフォルダーを右クリックし、 新規 | C/C++ ソースファイル または C/C++ ヘッダーファイル を選択します。

  2. タイプ フィールドで、CUDA ソースまたは CUDA ヘッダーにそれぞれ .cu または .cuh を選択します。

    新しいファイルを 1 つ以上の CMake ターゲットに自動的に追加する場合は、 ターゲットに追加 チェックボックスを選択し、リストから必要なターゲットを選択します。

    CUDA ソースファイルの追加

    オプションには、一般的な CMake ターゲットと cuda_add_executable/cuda_add_library で作成されたターゲットの両方が含まれます (CUDA CMake 言語を参照)。

CUDA コンパイラーを設定する

すべての .cu / .cuh ファイルは、LLVM ベースの CUDA コンパイラードライバーである NVCC(英語) を使用してコンパイルする必要があります。

NVCC を検出するには、CUDA ツールチェーンの場所を CMake に通知する必要があります。 次のいずれかのオプションを使用します。

  • システムPATH 変数に CUDA ツールチェーンパスを設定します。

    Linux では、 /etc/environment 構成ファイルで /usr/local/cuda-<version>/bin PATH に追加することをお勧めします。 こうすることで、ターミナルから作業している場合でも、デスクトップランチャーを使用している場合でも、リモート Linux マシンに接続している場合でも、CUDA Toolkit の場所が利用できるようになります。 詳細については、公式の Linux のインストールガイド(英語)を参照してください。

  • または、CMake で NVCC へのパスを指定します。 これを行う方法の 1 つは、 CMAKE_CUDA_COMPILER 変数を NVCC 実行可能ファイルの場所に設定することです。

    この変数を CMakeLists.txt に追加するか、 設定 | ビルド、実行、デプロイ | CMakeCMake のオプション フィールドを使用できます。 例: Windows の場合:

    CUDA プロジェクトの CMake 設定

デフォルト以外のホストコンパイラーを構成する

ホストコードをコンパイルするために、NVCC はシステムのデフォルトの C++ コンパイラー (Linux では gcc/g ++ 、Windows では cl.exe) を呼び出します。 サポートされているバージョンは、 Windows(英語) および Linux(英語) の公式ガイドで確認できます。

システムのデフォルトコンパイラーが CUDA ツールキットと互換性がない場合は、代わりに NVCC が使用するカスタムコンパイラー実行ファイルを指定できます。

次のオプションのいずれかを選択します。

  1. CUDAHOSTCXX 環境変数を使用する

    CUDAHOSTCXX=/path/to/compiler
    • 現在のプロジェクトのみに設定するには、 設定 | ビルド、実行、デプロイ | CMake環境 フィールドを使用します。

    • システム全体に設定するには、この変数を /etc/environment に追加します。

  2. CMake 変数を使用する

    • 言語としての CUDA を使用する CUDA プロジェクトの場合: CMAKE_CUDA_HOST_COMPILER および CMAKE_CUDA_FLAGS

    • find_package(CUDA) を使用する CUDA プロジェクトの場合: CUDA_HOST_COMPILER および CUDA_NVCC_FLAGS

    設定 | ビルド、実行、デプロイ | CMakeCMake のオプション フィールドに次の行を追加します。

    -DCMAKE_CUDA_HOST_COMPILER=/path/to/compiler -DCMAKE_CUDA_FLAGS="-ccbin /path/to/compiler"

    あるいは、 CMakeLists.txt に変数を設定します。

    set(CMAKE_CUDA_HOST_COMPILER "/path/to/compiler") set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -ccbin /path/to/compiler")

    ツールチェーンのコンパイラーを使用するには、パスを ${CMAKE_CXX_COMPILER} に置き換えます。

    set(CMAKE_CUDA_HOST_COMPILER "${CMAKE_CXX_COMPILER}") set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -ccbin ${CMAKE_CXX_COMPILER}")

Windows では、 MSVC ツールチェーンの Visual Studio インストールを切り替えると、ホストコンパイラーが自動的に変更されます。

    CUDA プロジェクト用の CMake

    CUDA 言語

    CUDA は、バージョン 3.8 以降、CMake の言語としてサポートされています。 CLion が新しい CUDA プロジェクト用に生成する CMakeLists.txt スクリプトの先頭にある次の行に注意してください。

    project(cuda_testprj CUDA)

    このコマンドでは、 LANGUAGES(英語) オプションに CUDA が指定されています(行を短くするために LANGUAGES キーワードはスキップされます)。

    例として、 project(project_name LANGUAGES CUDA CXX) を記述して、CUDA と C++ の両方をプロジェクト言語として有効にすることができます。

    NVCC コンパイラーオプション

    NVCC のコンパイラーフラグ(英語)を指定するには、 CMAKE_CUDA_FLAGS(英語) 変数を設定します。

    set(CMAKE_CUDA_FLAGS "-Wall")

    このようにして、フラグはすべてのターゲットに対してグローバルに使用されます。

    別のアプローチは、 target_compile_options(英語) コマンドを使用して特定のターゲットのフラグを設定することです。 例:

    target_compile_options( my_target PRIVATE $<$<COMPILE_LANGUAGE:CUDA>: --generate-line-info>)

    分離可能なコンパイル

    デフォルトでは、NVCC はプログラム全体のコンパイルアプローチを使用しますが、代わりに 分離可能なコンパイル(英語)を有効にすることができます。 このようにして、CUDA プロジェクトのコンポーネントは別々のオブジェクトにコンパイルされます。

    CMAKE_CUDA_SEPARABLE_COMPILATION(英語) 変数を使用して、分離可能なコンパイルを制御できます。

    • set(CMAKE_CUDA_SEPARABLE_COMPILATION ON) コマンドを追加して、グローバルにオンにします。

    • CUDA_SEPARABLE_COMPILATION(英語) プロパティを使用して、特定のターゲットに対して有効にします。

      set_target_properties( cuda_testprj PROPERTIES CUDA_SEPARABLE_COMPILATION ON)

    ターゲットを追加する

    CUDA が言語として有効になっている場合、通常の add_executable/add_library コマンドを使用して、CUDA コードを含む実行可能ファイルとライブラリを作成できます。

    add_executable(target_name cpp_file.cpp cuda_file.cu)

    もう 1 つのオプションは、新しいファイルを追加するときに CUDA ターゲットを追加することです。 新しいターゲットの追加 をクリックし、ドロップダウンリストから必要なコマンドを選択します。

    新しいファイルのターゲットの追加

    CMake は、ファイル拡張子に応じて適切なコンパイラーを呼び出します。

    CUDA C/C++ のコードインサイト

    CLion は CUDA コードを解析し正しくハイライトするため、 ナビゲーションクイックドキュメントやその他のコーディング支援機能が通常通り利用できます:

    CUDA コードのコードインサイト

    さらに、カーネルの呼び出しで山括弧を使う際に コード補完が利用できます。

    CUDA コードの補完

    cuda-gdb を使用したデバッグ

    Linux では、 cuda-gdb(英語) を使用して CUDA カーネルをデバッグできます。

    cuda-gdb をカスタムデバッガーとして設定する

    1. 設定 | ビルド、実行、デプロイ | ツールチェーン に移動し、現在のツールチェーンの デバッガー​ フィールドにパスを入力します。

    2. CUDA デバッグシンボルを追加するには、 -G コンパイラーオプションを使用します: add_compile_options(-G)。 このコマンドは、 CMake のオプションプロファイル CMakeLists.txt スクリプトに追加できます。

    既知の問題と制限

    • Windows では、CLion が MSVC ツールチェーン用にバンドルしている LLDB ベースのデバッガーで、CUDA コードに問題が発生する可能性があります。

    • macOS では、このプラットフォームはバージョン 10.13 から正式にサポートされていないため、CUDA プロジェクトに対する CLion のサポートはテストされていません。

    • 現在、 コードカバレッジValgrind MemcheckCPU プロファイリングツールは、CUDA プロジェクトで正常に動作しません。

    2026 年 7 月 15 日