スポンサーリンク

CUDAプログラムのdll化

普通のdll作成と何一つ変わらないので記事にするか迷ったのだが、一カ所だけわかりにくかったので念のためにまとめておく。

環境は Visual C++ 2017 + CUDA 9.2

 

手順は以下の通りである。

①VC++でCUDAプロジェクトを作成
②kernel.cuファイルの中身を普通に書く。ただし関数名はmain以外にする
③ヘッダファイルを作成し、_declspecを追加
④プロジェクトの構成をdllへ変更
⑤CUDA側が_declspec(dllexport)となるようにマクロを追加
⑥exeのプロジェクトを作成し、呼び出し

 

基本的に、普通のDLL生成と全く同じである。違いは、

A. dll側のプロジェクトのファイル名が、   (上記②,③)

  •  普通のプロジェクト ... function.c/function.h
  •  CUDAプロジェクト ... function.cu,function.h

 

B. _declspecの分岐のためのプリプロセッサを定義する場所が、   (上記⑤)

  •  普通のプロジェクト ... [C/C++]→[プリプロセッサ]→[プリプロセッサの定義]
  •  CUDAプロジェクト ... [CUDA C/C++]→[Host]→[Preprocessor Definitions]

 

の二点である。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: