質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Q&A

解決済

2回答

5858閲覧

CmakeでCUDAを有効にしたいです。

carnage0216

総合スコア194

CMake

CMakeはクロスプラットフォームで作動するオープンソースのビルドシステムです。コマンドライン又は組み込まれた開発環境で使うことができる元のmakefileとプロジェクトファイルを生成します。

CUDA

CUDAは並列計算プラットフォームであり、Nvidia GPU(Graphics Processing Units)向けのプログラミングモデルです。CUDAは様々なプログラミング言語、ライブラリ、APIを通してNvidiaにインターフェイスを提供します。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

0グッド

0クリップ

投稿2018/05/05 17:46

編集2018/05/07 22:02

<環境>

  • Windows10 64bit
  • visual studio 2017
  • Cmake 3.11.1
  • Opencv3.2 Opencv3.4.1
  • CUDA9.1.85

Cmakeではvisual studio 15 2017 win64でconfigureしました。

こちらにエラーをすべて載せたかったのですが、文字数が超えてしまいURLのみを貼らせていただきました。申し訳ありません。
こちらがエラーです。

https://pastebin.com/9gk7tMzc

<編集1>
Cmakeのエラーを解決できました。しかし、なぜ解決できたかわかりません。(Opencv3.4.1に変更したためかもしれませんがよくわかりません。)
またCUDA9.1はVS2017でも使えるようなので(自分のVS2017で確認しました)VS2017を使います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2018/05/05 23:09

なにをしたらそうなった?
episteme

2018/05/06 04:16

CUDAがちゃんとinstallできてるかも怪しいんよね...
carnage0216

2018/05/06 12:35

遅くなりました。CUDAのインストールはちゃんとできています。コマンドで確認しました。
carnage0216

2018/05/06 12:42

CUDA(とOpencv)にこだわったのは画像処理を行うためです。まずは形のあるものを作ろうと考えました。「小学校の運動会でこけまくるおやじ」。すいません。皮肉なのか悪口なのかわからず理解できませんでした。
episteme

2018/05/06 13:09 編集

「コマンドで確認しました」とは? ~.cuをnvccでコンパイル/実行できたってことですか? で、示されたエラーはCMakeのconfigureで出たものですか?
carnage0216

2018/05/06 13:12 編集

できました。そうです。CMakeのconfigureを実行して出てきたエラーです。
episteme

2018/05/06 13:13

再現できない。僕とこでは一発OKだった(OpenCV341, CUDA9,VS2015)。
carnage0216

2018/05/06 13:16

わざわざありがとうございます。では、epistemeさんの環境をこちらで再現します。
carnage0216

2018/05/06 13:26

あの、関係あるかわからないのですが、epistemeさんがダウンロードされたOpencv3.4.1はexeファイルですか?それともzipファイルでしょうか?
episteme

2018/05/06 13:27

当然ソースコード・パッケージ(zip)です。 exe形式のソースってあったっけ?
episteme

2018/05/06 13:31

それソースコード?
carnage0216

2018/05/06 13:33

ソースコードだと思います。過去にダウンロードした際に中身を見ましたがソースコードとヘッダフィルが入っていました。もしかしたら間違っているかもしれません。
episteme

2018/05/06 13:40 編集

ソースコード入ってるみたいすね。こいつでも問題なくConfigure/Generate(WITH_CUDA)できました。
carnage0216

2018/05/06 13:38

どうもありがとうございます。とりあえずZIPの方で行わせていただきます。
episteme

2018/05/08 09:56

generate/buildもできたのかな? 適宜"解決済"にしておくれ。
carnage0216

2018/05/09 02:09

質問は解決できたので解決済みにします。ビルドはしました。失敗しました。そのため以前にepistemeさんに頂いたソースとGitHubでビルド済みのライブラリを使用することにします。
YomogiKOBO

2018/05/09 03:55

ん?独自に解決できたのであれば、小生の提示した情報で解決されたわけではないのですよね。。なぜにベストアンサー??
episteme

2018/05/09 08:54

CUDAと絡めるつもりなら32bitはお薦めしないなー...
carnage0216

2018/05/10 00:34

そうなのですか。では64bit版を探してみます。ちなみになぜCUDAで32bitはおすすめしないのでしょうか?
episteme

2018/05/10 02:42 編集

やってりゃわかると思うんだが、CUDAのdrop-inライブラリの多くが64bit-only. 「では64bit版を探してみます」って、僕が供出したやつでは問題あるんか?
carnage0216

2018/05/10 12:45

ごめんなさい。epistemeさんから頂いたファイルを消してしまいました。大変申し訳ないのですがどうかもう一度 OpenCV 3.4.0 with CUDA 9.1 for Maxwell arch. Visual Studio 2015 x64 releaseのファイルを頂けないでしょうか?どうかお願いいたします。
episteme

2018/05/10 13:24

twitterにリンク投げといた。
carnage0216

2018/05/10 13:48

どうもありがとうございます。使わせていただきます。
carnage0216

2018/05/10 14:07

あ、よくよく考えたら過去のGPUを使うプログラムに関してはepistemeさんが改造したためlibはopencv_world341.libしか使っていないことを思い出しました。そのため今ビルドしたいGPUを使うプログラムはepistemeさんに書いていただいたプログラムを参考に改造しないといけないです。
episteme

2018/05/10 14:10

改造なんて大げさな作業は不要でしょう。#pragma comment ... いぢくるだけちゃうかな。
guest

回答2

0

CUDA9.1はVS2017でも使えるようなので(自分のVS2017で確認しました)VS2017を使います。

念のため確認。

// foo.cu #include <cuda_runtime.h> #include <device_launch_parameters.h> #include <stdio.h> __global__ void f() { printf("__global__ void f() #%d-%d\n", blockIdx.x, threadIdx.x); } int main() { f<<<2,2>>>(); }

に対し、コマンドプロンプトから
nvcc foo.cu -Xcompiler -wd4819
すると、a.exeが生成され、実行すると

__global__ void f() #0-0 __global__ void f() #0-1 __global__ void f() #1-0 __global__ void f() #1-1

が出力されますか?

投稿2018/05/10 23:02

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

carnage0216

2018/05/11 22:47

返信遅くなり申し訳ありません。 VS2017、2015両方ともc:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt/host_config.h(135): fatal error C1189: #error: -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported!のエラーがでてしまい実行ファイルを得ることができませんでした。 今、エラーを解決するため調べています。
carnage0216

2018/05/11 23:19

VS2015を再び再インストールしたら直りました。 C:\Users\Daito\Desktop>nvcc foo.cu -Xcompiler -wd4819 foo.cu ライブラリ a.lib とオブジェクト a.exp を作成中 C:\Users\Daito\Desktop>C:\Users\Daito\Desktop\a.exe __global__ void f() #0-0 __global__ void f() #0-1 __global__ void f() #1-0 __global__ void f() #1-1 はい。実行して出力されました。
episteme

2018/05/12 00:09

でしょ? 2017だとコケるでしょ? >(自分のVS2017で確認しました) って、一体なにを確認したの?
carnage0216

2018/05/12 09:30 編集

VS2017でNVIDIAのエディタが設定できたことが確認しました。 エディタを設定して使ってみましたがやはり使えませんでした。
episteme

2018/05/12 13:10 編集

そんなん確認して何になるんよ。 # てかNVIDIAのエディタてナニ? NSightのこと? OpenCVをbuildしようってんだからnvccがちゃんと動かんと意味ないやんか。
carnage0216

2018/05/13 07:00

>>NSightのこと? 説明不足ですいません。そうです。 おっしゃる通りです。VS2015を使います。
episteme

2018/05/13 20:08

で、OpenCVのbuildはできたのかしら?
carnage0216

2018/05/14 00:04

出来ました。ただ、正直、GPUでの並列処理とCPUでの並列処理どちらにしようか迷っています。 GPUは計算処理は速いですがCPUとのデータの転送で遅くなることもあったり、CPUで並列処理を行う方がGPUほど処理速度は出ないかもしれませんが、勉強になることが多いような気がして。 まあ、素直にGPU使った後で、CPUで並列処理したほうがいいのかもしれません。
guest

0

ベストアンサー

こちらで提示されている解決方法で解決できませんか。
Cmake Error

投稿2018/05/05 18:52

YomogiKOBO

総合スコア187

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問