🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CUDA

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

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Q&A

1回答

2807閲覧

cudaを使用した機能を持ったアプリケーションをGPU非搭載PCでも起動させる

makotoo

総合スコア0

CUDA

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

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

0グッド

0クリップ

投稿2021/01/19 17:54

一部の機能にcudaでの処理を使用したアプリケーションをvc++/NVCCで開発しているのですが、
cuda GPU非搭載PCでこのアプリケーションを実行すると、cuda対応ドライバーがインストールされていないため、
DLLエラーが出て起動させることができません。

cuda用とそれ以外用の実行ファイルのビルドを分けるのではなく、同一実行ファイルで、cuda搭載PCではフル機能使え、
cuda非搭載PCの場合cudaでの処理をCPUでの処理に切り替えて使用することができるようにしたいのですが、
どのようにすればよいのでしょうか。

アプリケーションを実行させれば、findCudaDevice処理を通じてcudaデバイスの有り無しを判別し、
GPUとCPUでの処理の切り替えをすることはできるのですが、そもそもアプリケーションを実行させることができないので困っています。
現在cudaのライブラリは、cudart_static.libをインクルードして使用しています。

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

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

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

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

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

jbpb0

2021/01/19 22:45 編集

Windowsに入ってるDLLには、32bit用と64bit用のDLLのファイル名が同じで、置いてるフォルダパスが違う、というものがあるので、別PCで不足してるDLLを探す際に気を付けてください DLLのファイル名で検索して見つかったのを安易に持っていっても、32bit用のDLLだと役に立たない DLLのbitの調べ方 https://qiita.com/bearbutler/items/b53e3d1fadb4ff4fd7c6 なお、CUDAのDLLは64bit用しかありません
makotoo

2021/01/20 00:41

geforceのドライバー関連dllや、cudaのdllは、単体での再配布は禁止されていると思うので、その方法はとれません。 世の中のアプリケーションを見ると、自分のやりたいような、デバイスの有り無しで、機能内容が変わるものが結構あるので、どうやるのかと思っているのですが。
jbpb0

2021/01/20 00:55

それでしたら、動かしたいPCにCUDAをインストールしたらどうでしょうか?? ドライバは入れられませんが、CUDA自体はインストールできるはず (以前入れたことあります) CUDAをインストールしてpathの設定をしたらDLL見つかるので、起動できるでしょう CUDA以外にVisual Studioのランタイムも要りますけど、それもMicrosoftのWebページからダウンロードして入れる
guest

回答1

0

【C++】C++で作成したDLLをC++で呼ぶ(動的)
の「動的にDLLを呼ぶ」のやり方にしたら、必要な時までDLLが読まれないので、起動時に無くてもエラー出ないかもしれません

投稿2021/02/28 13:41

jbpb0

総合スコア7653

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問