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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

CUDA

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

1299閲覧

NVCCを用いてGPUのプログラムをコンパイラして、ライブラリ a.lib とオブジェクト a.exp を作成中とでるのですが実行フィルが得られません。

carnage0216

総合スコア194

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

CUDA

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/02/20 11:00

編集2018/02/20 13:32

こちらのサイトhttp://nonbiri-tereka.hatenablog.com/entry/2017/04/11/081601を基にCUDAを使う入門プログラムを行いたいのですが、以下のエラーが出てしまうため実行ファイルが得られません。

<環境>
Windows10 64bit

以下がエラーです。

c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(2637): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(3492): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(4431): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(5345): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(6252): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(7142): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(7956): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 ライブラリ a.lib とオブジェクト a.exp を作成中

ファイル名はサイトと同じhello_world.cuにしました。
GCCでnvcc hello_world.cuでコンパイルするとデスクトップにa.lib 、a.expのファイルが得られます。

どうかよろしくお願いいたします。

(編集した内容)
コマンドプロンプトから以下のコマンドを入力しました。
nvcc C:\Users\Name\Desktop\hello_world.cu
以上のコマンドを打ったことで載せました警告が生成され、ライブラリ a.lib とオブジェクト a.exp は得られたのですが、実行ファイルは得られませんでした。

度々すいません。エラーメッセージを書き忘れていた部分がありました。

nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). hello_world.cu c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(2637): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(3492): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(4431): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(5345): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(6252): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(7142): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 c:\program files\nvidia gpu computing toolkit\cuda\v8.0\include\math_functions.h(7956): warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。 ライブラリ a.lib とオブジェクト a.exp を作成中

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

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

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

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

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

umyu

2018/02/20 11:45 編集

問題を再現させるために質問者様が行った「正確な手順」を質問文に追記してくださいな。 コマンドプロンプトより以下の様なコマンドを入力しましたなど。
episteme

2018/02/20 11:49

それerrorじゃないし。warningだし。
guest

回答2

0

参考に挙げられているURLはgccじゃなくてnvccのようですが・・・。

投稿2018/02/20 11:41

TaroToyotomi

総合スコア1430

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

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

0

ベストアンサー

gccでそんなメッセージ出るっけ? VC++じゃなくて? a.exe ができてない?

d:\work\trial>nvcc hello_world.cu -Xcompiler -wd4819 hello_world.cu ライブラリ a.lib とオブジェクト a.exp を作成中 d:\work\trial>dir ドライブ D のボリューム ラベルは workspace です ボリューム シリアル番号は FE9C-2E7A です d:\work\trial のディレクトリ 2018/02/20 22:14 <DIR> . 2018/02/20 22:14 <DIR> .. 2018/02/20 22:14 197,120 a.exe <------- できてるー! 2018/02/20 22:14 635 a.exp 2018/02/20 22:14 1,650 a.lib 2018/02/20 20:36 88 hello_world.cu 4 個のファイル 199,493 バイト 2 個のディレクトリ 24,624,955,392 バイトの空き領域 d:\work\trial>

[追記]

nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).

これもerrorじゃなくwarning。
「(デフォルトオプションで)指定されたGPUアーキテクチャ(ここではFermi)はいずれ使えなくなるからね」
と言うてます。

[さらに追記] ふたつめのサンプルも無問題

E:\ProgramData\work\trial\cuda>nvcc trial.cu -Xcompiler -wd4819 nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). trial.cu ライブラリ a.lib とオブジェクト a.exp を作成中 E:\ProgramData\work\trial\cuda>a.exe start cudaMalloc finish cudaMalloc start cudaMemcpy finish cudaMemcpy start kernel function finish kernel function E:\ProgramData\work\trial\cuda>

投稿2018/02/20 11:38

編集2018/02/21 05:02
episteme

総合スコア16614

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

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

carnage0216

2018/02/20 12:22

すいません。NVCCでした。a.exeではなくa.expなら得られました。
episteme

2018/02/20 13:08

っかしーなー... 僕とこではできたよ?
carnage0216

2018/02/20 13:43

あのnvcc C:\Users\Name\Desktop\hello_world.cを行うと実行ファイルのみが得られるのですが、 これはGPUを使ったやり方ではないのでしょうか?
episteme

2018/02/21 01:54 編集

待て。つまり解決したのか? # てか hello_world.c には GPU使うとこが見当たらんよ?
carnage0216

2018/02/21 16:49

やっとnvccでコンパイルできました。 cudart_static.libを指定していなかったためエラーが出ていたようです。
carnage0216

2018/02/21 16:50

どうもありがとうございました。
episteme

2018/02/22 00:40 編集

僕トコと挙動が異なるのが気になるなー... ともかく、 error と warning は区別しようね。
carnage0216

2018/02/22 12:43

言い忘れてしまい申し訳ありません。 プログラムはhello_word.cuにちゃんと書き直しコンパイルできました。なのでepistemeさんと同じやり方でできました。解決しました。 はい、気を付けます。 どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問