OpenCVのCUDAによるCSBPとBPのサンプルコードが動作しない

投稿者: Anonymous 現在OpenCVのCUDA用ライブラリを利用してステレオマッチングを行おうとしています。 そこでOpenCV付属のサンプルコード(https://android.googlesource.com/platform/external/opencv3/+/master/samples/gpu/stereo_match.cppと同じもの)を動作させようとしているのですが、BMは正しく動作しているものの、CSBPとBPでは灰色の画面が表示されるだけで、深度の様なものは表示されません、サンプルの画像にはtsukubaを使用しています。 実行時のコマンドライン引数は次の通りです。[–right right.bmp –left left.bmp –method CSBP –ndisp 64] ndispに関しては何回かいじっているのですが一向に変化がありません。 何かご存知の方がいらっしゃいましたら教えていただけると助かります。 解決 同じところで詰まっていましたが、視差画像を表示する直前に cuda::drawColorDisp(d_disp, d_disp, p.ndisp); を追加したら動くようになりました。何故これで動くのかは分かっていません。 I have the same problem. I add cuda::drawColorDisp(d_disp, d_disp, p.ndisp); before showing disparity image It works for me. But I don’t know why. 回答者: Anonymous

cudnnがインストールされていることを確認する方法

投稿者: Anonymous cudnnについて、以下の3点を知りたいです。 cudnnが正常にインストールされていることを確認する方法 インストールされているcudnnのバージョンの確認 下記のようにdpkgコマンドでcudnnをインストールしたときに、/usr/local/cuda以下にcudnnのファイルが置かれるかどうか https://qiita.com/JeJeNeNo/items/a56be3be69dc88e6dfa4#cudnn-71%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB 以上、よろしくお願いします。 解決 dpkg -lと実行するとシステムにインストールされているパッケージの一覧が表示されるので、cudnnをキーワードにgrepをかけてみましょう。一覧の中にパッケージのバージョンも一緒に表示されるはずです。 $ dpkg -l | grep “cudnn” インストールされているパッケージ名を確認できたら、今度はdpkg -L <Package Name>でパッケージによってインストールされたファイルの一覧を確認できます。 $ dpkg -L <Package Name> 回答者: Anonymous

ChainerによるDeep-Learning

投稿者: Anonymous 実行環境はMAC OSX EL CAPITANでpyenvの上にanaconda2.4.0を導入したものです。 GPUはGeForceの下位モデルを搭載しており、CUDAは7.0です。 Chainerを用いてディープラーニングを行おうとしていますがうまく行きません。 http://qiita.com/hogefugabar/items/312707a09d29632e7288 を参考に、データを読み込みクラス数、データ数をだすところまではうまくいきました。 参考ページと同じコード、データを用いCNN.pyとanimeface.pyとmain.pyの3つを同じディレクトリに置きました。main.pyを実行すると AnimeFaceDataset instance has no attribute ‘read_data_target’ のエラーが出ます。 ちなみにmain.pyは from CNN import CNN from animeface import AnimeFaceDataset from chainer import cuda #cuda.init(0) cuda.check_cuda_available() print ‘load AnimeFace dataset’ dataset = AnimeFaceDataset() dataset.read_data_target() data = dataset.data target = dataset.target n_outputs = dataset.get_n_types_target() cnn = CNN(data=data, target=target, gpu=0,…(Continue Reading)

PythonにおけるCUDAを利用したGPU制御について

投稿者: Anonymous PythonにてTensorflow-gpuを利用したいと思い、CUDA ToolkitやcuDNNのインストールを行い、GPUを用いてプログラムを実行できていることを確認しました。 私のPCには、GPUが2台搭載されており、使用するGPUを指定したいと思っています。 プログラム内で具体的に with tf.device(~): と記述することで、使用するGPUを指定できることは確認しました。 それとは別に,プログラム実行時に、コマンドプロンプト上で CUDA_VISIBLE_DEVICES=1 python ~.py とすることで使用するGPUを制限できるというのを見かけました。 幾つかのWebサイトを見たのですが、上記のコマンドを実行すると ‘CUDA_VISIBLE_DEVICES’ は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と言われます。どうすればこのコマンドが使用できるようになりますか? PCのシステム面への知識不足だとは思うのですが、よろしくお願いします… 実行環境 : Windows 8.1 解決 参考にされた実行方法はLinux環境向けのコマンドですが、あなたが実際に実行しているのは恐らく Windows環境のように見えるので、以下の情報を参考にシステムの環境変数を設定してみてください。 http://www.e-em.co.jp/gpu/setup.htm 2.4 グラフィックスボードのデバイス番号 (3) 環境変数 CUDA_VISIBLE_DEVICES Windowsの[設定]→[システム]→[バージョン情報]→[システム情報]→[システムの詳細設定]を起動し、 [詳細設定]タブの[環境変数]をクリックし、[システム環境変数]の[新規]をクリックし、 [変数名]に”CUDA_VISIBLE_DEVICES”、[変数値]に以下のような適当な数値を入力してください。 0 : デバイス番号0のみを計算に使用する。 1 : デバイス番号1のみを計算に使用する。 回答者: Anonymous

nvcuda.dllが見つからない

投稿者: user4410 PhysXを利用するためにPhysX 3.3.1をインストールしたのですが、 “C:Program Files (x86)AGEIA TechnologiesSDKPhysX-3.3.1_PC_SDK_CoreBinwin64” 内のSamples.exeを実行すると、 コンピューターにnvcuda.dllがないため、プログラムを開始できません。この問題を解決するためには、プログラムを再インストールしてみてください。 と表示されます。 問題を解決するために、 再インストールやCUDAのインストールも行いました。けれど解決しませんでした。 CUDAからDLLをビルドする必要があるのでしょうか? 解決 英語版stackoverflowで検索してみると 結構いろいろ出てきます ね。 あまりに基本的なことなので書くのも躊躇われるのですが、 nvidia のグラフィックチップ/カードが搭載された PC 上で実行していますか? またそのドライバが正しくインストールされているでしょうか? 念のため確認してみてください。 (参考: Nvcuda.dll missing?) 回答者: Anonymous

CentOS 7にcudaを入れるとXが立ち上がらなくなる

投稿者: user25508 CentOS7にcudaを入れると、Xが立ち上がらなくなります。 cudaのインストールまでは成功します。 原因と対処法をご存知の方、ご教授お願いします。 環境 OS: CentOS Linux release 7.5.1804 (Core) CPU: Intel i5 2.8GHz (8th gen) GPU: NVIDIA Geforce 1070 GPUのドライバ: nouveauではなく、NDIVIAのものを使用 cuda 10(本来はver.9を入れたい) 追記 Knoppixを使って、/var/log/Xorg.0.log を取ることが出来ました。 コンソールからstart x を実行しています。 以下の通り、Segmentation fault が発生しています。 [ 41.821] (II) Loading sub module “fb” [ 41.821] (II) LoadModule: “fb” [ 41.845] (II) Loading /usr/lib64/xorg/modules/libfb.so [ 41.858] (II)…(Continue Reading)

OpenCVのカスケード物体認識の結果がCPU、OpenCL、CUDAで違くなってしまう。

投稿者: Anonymous タイトルの通りなのですが、CPUとOpenCLは大体同じになりますがCUDAですと持ってくる領域が大きくなります。 CPUと結果を合わせたいのですがコンパイルオプションとかそういうもので何とかする方法をご存知のかたいらっしゃいませんか? 解決 質問をするときは最低限のマナーとして、まず環境に関する情報を詳しく書くようにしてください。 OS、デバイスドライバー、IDE、SDK、ライブラリなどのバージョン、ハードウェアの型番など、提示すべき情報は多岐に渡ります。 技術系メーリングリストで質問するときのパターン・ランゲージ また、現象を再現することのできる実際のコードを可能な限り提示するべきです。回答者はエスパーではありません。 OpenCVのCascade Classifierは、CPUバージョンは改良・改善が続けられているものの、GPUバージョン(CUDA実装)は同等のメンテがなされずに実装が乖離しているらしいです。おそらく現時点での最新版OpenCV 3.4.1でも状況は同じものと思われます。 Different results of CascadeClasifier on CPU and GPU · Issue #6693 · opencv/opencv OpenCV内の他の画像処理関数に関しても、CUDA版はCPU版/OpenCL版と比べてサポートするフォーマットが限定されていたりと、積極的なメンテはされていません。そもそもCUDAはNVIDIAハードウェアしかサポートしないため、OpenCLをT-APIとして取り込んだ現在のOpenCVのクロスプラットフォーム設計方針とは相容れないからです。 ちなみにOpenCVはともかくとして、OpenCLはれっきとした規格名でありトレードマークなので、大文字・小文字をきっちり区別して正式名を書くようにしてください。 回答者: Anonymous

tensorflow-gpu の導入がうまくいきません [RTX 3070]

投稿者: Anonymous 1. まずNVIDIAのドライバーをインストールしました(使用GPU: RTX 3070) ドライバーの選択肢は1種類だったので、それをインストールしました +—————————————————————————–+ | NVIDIA-SMI 457.30 Driver Version: 457.30 CUDA Version: 11.1 | |——————————-+———————-+———————-+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 GeForce RTX 3070 WDDM…(Continue Reading)

GPUの使用率を確認するCUDAのAPIはありませんか?

投稿者: Anonymous デバイスで処理を実行させている時に、ホスト側でGPUの使用率を確認するAPIはありますか? 現在nvidia-smi.exeを使って確認しているのですが、できればプログラム内で確認したいです。 開発環境は以下です。 OS:Win7Pro VS:2012 CUDA:7.5 Device:GeForce GTX TITAN X よろしくお願いします。 解決 ググった程度の情報ですが、 nvidia-smi と同等の情報でよければ NVIDIA Management Library というAPIが、より詳細なパフォーマンスカウンタには PerfKit というAPIが使えそうに見えました。 GUIベースのプロファイラだと NSight や VisualProfiler といったツールがあるとか。 回答者: Anonymous

ブロック分割とサイクリック分割の違いを教えてください

投稿者: Anonymous データ並列化の用語のようですがブロック分割とサイクリック分割の違いを教えてください 解決 1次元のデータの分割方法です. 1次元配列を分割する例で示します. 長さNの配列aをMブロックに分割するとき m番目のブロックの要素が, a[i+N/M*m]で指定されるのがブロック分割, a[N/M*i+m]なのがサイクリック分割です. ここでiはどちらも0~N/M-1をとります.また簡単のためにNはMでわりきれると仮定しています. 図がわかりやすいのでのせます [0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4] //ブロック [0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,0,1,2,3,4,0,1,2,3,4] //サイクリック N=30,M=6の場合をのせました. 上がブロック分割,下がサイクリック分割です.ここで各色はブロックに対応しています. 画像処理やcudaでスレッドに分割する場合は2または3次元のデータを考える場合が多いですが,その場合には各次元それぞれブロックまたはサイクリックで分割します. 回答者: Anonymous