GPUのプログラミングする上での環境に関しての質問なのですが、
GPUのプログラミング環境で検索するとvisuals studio などを使うのはわかるのですがCmakeを使う理由がわかりません。
何故でしょうか?
また、Cmakeなしでもvisuals studio やヘッダファイル、ライブラリなどを使えばGPUを使ったプログラミングは出来るのでしょうか?
二つの質問ですがどうかよろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
こんにちは。
Cmakeを使う理由がわかりません。
ちょっと話が遠そうなので、かい摘んで説明してみます。
多数のソース・ファイルからビルドされるようなプロジェクトは結構あります。
それをデバッグする時、毎回全てのソース・ファイルをコンパイルしているとデバッグに時間がかかってどうしようもありません。(プロジェクトによってはビルドに1時間かかるようなものもそれなりにあります。)
それは避けたいので、修正したソース・ファイルだけコンパイルし、他のものは前回コンパイルした結果を使ってプロジェクトをビルドするのが一般的です。
複数のソースを修正することも頻繁ですので、修正したソース・ファイルを一々指定するのは面倒です。更に、ヘッダ・ファイルを修正した場合、それをインクルードしているソース・ファイルをコンパイルする必要があります。その依存関係を覚えていて、必要なソース・ファイルを手でコンパイルするのは悪夢です。
それを自動化するツールが、makeやMSBuildです。(後者はVisual Studioで使われているビルド自動化ツールです。)
それらは、設定ファイル(前者はmakefile、後者は*.projファイル等)を読み込んで必要な処理を行います。
さて、それらの設定ファイルを作るのは、これがまた実にたいへんです。私は手で作る根性は正直ありません。Visual StudioはGUIで設定しますが、似たようなプロジェクトを作る時本当に面倒です。また、makefileと*.projは構文も考え方も全く異なるので、gccとVisual C++の両方でビルドできるプロジェクトを作るのも正直悪夢です。
その悪夢を回避するツールがCMakeです。これを使うと、makefileや*.projに比べると簡単なCMakeLists.txtを書けば、makefileや*.projを自動生成できます。マルチプラット・フォームなプロジェクトを作る時には非常に重宝します。
Windowsだけの場合でも、GUIで一々設定するのはかなり大変ですからやはり重宝します。本当に便利ですよ。
無関係な項目もありますが、CMakeの基礎とTheolizerの組み込み方はCMakeの基本的な使い方の解説が大半ですので、参考にされると良いかも知れません。
また、Cmakeなしでもvisuals studio やヘッダファイル、ライブラリなどを使えばGPUを使ったプログラミングは出来るのでしょうか?
CMakeは便利ツールですので、なくても可能です。ただ単にたいへんなだけです。
例えば電卓がなくても家計簿計算はできると思います。CMakeはそのような位置付けです。時には複式簿記の処理を電卓なしでやるような差がでることもあると思います。
投稿2018/02/04 07:46
総合スコア23272
0
ベストアンサー
https://cmake.org
https://ja.m.wikipedia.org/wiki/CMake
興味を持つのは大変良いことですが、調べたらすぐにわかることを質問しても成長しません。
教えてもらうことで調べる時間は省けますが、それではエンジニアとして生きて行けません。
厳しくいっているように聞こえるかもしれませんが、結構重要なことなのでお許しください。
質問することは大事な素質でありますが。
オープンソースのコードは何のためにあるのか自分で説明します。
そうでないと他の人に使ってもらえません。
その説明を読んでもわからない場合、まだそのツールを使う段階ではないことを意味しています。
ただ最近は高度なツールがたくさんあって、歴史を勉強しないと理解するのは難しいかもしれません。
cmakeはビルド用のツールです。
依存関係を記述するための大量のコードをより少ない量のコードから生成します。
visuals studio などを使うのはわかるのですが
visuals studioは統合開発環境と呼ばれるものです。
https://ja.m.wikipedia.org/wiki/統合開発環境
ウィキペディアの説明のうち「統合開発環境の特徴」の「ビルド、デバッグ補助」の役割の一部をcmakeは担うことができます。
機械学習に興味があるようですが、
tensoflowは一般にcmakeではなくbazelを使います。
投稿2018/02/04 08:47
総合スコア8560
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/04 11:08
2018/02/04 11:18
2018/02/04 15:31
0
GPUのプログラミング環境で検索するとvisuals studio などを使うのはわかるのですがCmakeを使う理由がわかりません。
何故でしょうか?
CMakeならいろんなOS/環境に対応できますから。
また、Cmakeなしでもvisuals studio やヘッダファイル、ライブラリなどを使えばGPUを使ったプログラミングは出来るのでしょうか?
フツーにできますよ。CUDA/WindowsだとVisual Studio にbuilt-in されますし。
投稿2018/02/04 07:44
総合スコア16612
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/04 11:12